eb09a965bba3222eefbe8e3cb683392925ef62a4
[reactos.git] / rosapps / taskmgr / font.cpp
1 /*
2 * ReactOS Task Manager
3 *
4 * font.cpp
5 *
6 * Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23 #ifdef _MSC_VER
24 #include "stdafx.h"
25 #else
26 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
27 #include <windows.h>
28 #include <commctrl.h>
29 #include <stdlib.h>
30 #include <malloc.h>
31 #include <memory.h>
32 #include <tchar.h>
33 #include <process.h>
34 #include <stdio.h>
35 #endif
36
37 #include "taskmgr.h"
38 #include "font.h"
39
40 void Font_DrawText(HDC hDC, LPCTSTR lpszText, int x, int y)
41 {
42 HDC hFontDC;
43 HBITMAP hFontBitmap;
44 HBITMAP hOldBitmap;
45 int i;
46
47 hFontDC = CreateCompatibleDC(hDC);
48 hFontBitmap = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_FONT));
49 hOldBitmap = (HBITMAP)SelectObject(hFontDC, hFontBitmap);
50
51 for (i = 0; i < (int)_tcslen(lpszText); i++) {
52 if ((lpszText[i] >= '0') && (lpszText[i] <= '9')) {
53 BitBlt(hDC, x + (i * 8), y, 8, 11, hFontDC, (lpszText[i] - '0') * 8, 0, SRCCOPY);
54 }
55 else if (lpszText[i] == 'K')
56 {
57 BitBlt(hDC, x + (i * 8), y, 8, 11, hFontDC, 80, 0, SRCCOPY);
58 }
59 else if (lpszText[i] == '%')
60 {
61 BitBlt(hDC, x + (i * 8), y, 8, 11, hFontDC, 88, 0, SRCCOPY);
62 }
63 }
64 SelectObject(hFontDC, hOldBitmap);
65 DeleteObject(hFontBitmap);
66 DeleteDC(hFontDC);
67 }
68