|
|
1.1 root 1: /* Copyright (C) 2004 TrueCrypt Team, truecrypt.org
2: This product uses components written by Paul Le Roux <[email protected]> */
3:
4: #include "TCdefs.h"
5: #include "redtick.h"
6:
7: LRESULT CALLBACK
8: RedTick (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
9: {
10: if (uMsg == WM_CREATE)
11: {
12: }
13: else if (uMsg == WM_DESTROY)
14: {
15: }
16: else if (uMsg == WM_TIMER)
17: {
18: }
19: else if (uMsg == WM_PAINT)
20: {
21: PAINTSTRUCT tmp;
22: HPEN hPen;
23: HDC hDC;
24: BOOL bEndPaint;
25: RECT Rect;
26:
27: if (GetUpdateRect (hwnd, NULL, FALSE))
28: {
29: hDC = BeginPaint (hwnd, &tmp);
30: bEndPaint = TRUE;
31: if (hDC == NULL)
32: return DefWindowProc (hwnd, uMsg, wParam, lParam);
33: }
34: else
35: {
36: hDC = GetDC (hwnd);
37: bEndPaint = FALSE;
38: }
39:
40: GetClientRect (hwnd, &Rect);
41:
42: hPen = CreatePen (PS_SOLID, 2, RGB (0, 255, 0));
43: if (hPen != NULL)
44: {
45: HGDIOBJ hObj = SelectObject (hDC, hPen);
46: WORD bx = LOWORD (GetDialogBaseUnits ());
47: WORD by = HIWORD (GetDialogBaseUnits ());
48:
49: MoveToEx (hDC, (Rect.right - Rect.left) / 2, Rect.bottom, NULL);
50: LineTo (hDC, Rect.right, Rect.top);
51: MoveToEx (hDC, (Rect.right - Rect.left) / 2, Rect.bottom, NULL);
52:
53: LineTo (hDC, (3 * bx) / 4, (2 * by) / 8);
54:
55: SelectObject (hDC, hObj);
56: DeleteObject (hPen);
57: }
58:
59: if (bEndPaint == TRUE)
60: EndPaint (hwnd, &tmp);
61: else
62: ReleaseDC (hwnd, hDC);
63:
64: return TRUE;
65: }
66:
67: return DefWindowProc (hwnd, uMsg, wParam, lParam);
68: }
69:
70: BOOL
71: RegisterRedTick (HINSTANCE hInstance)
72: {
73: WNDCLASS wc;
74: ULONG rc;
75:
76: memset(&wc, 0 , sizeof wc);
77:
78: wc.style = CS_HREDRAW | CS_VREDRAW;
79: wc.cbClsExtra = 0;
80: wc.cbWndExtra = 4;
81: wc.hInstance = hInstance;
82: wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
83: wc.hCursor = NULL;
84: wc.hbrBackground = GetStockObject (LTGRAY_BRUSH);
85: wc.lpszClassName = "REDTICK";
86: wc.lpfnWndProc = &RedTick;
87:
88: rc = (ULONG) RegisterClass (&wc);
89:
90: return rc == 0 ? FALSE : TRUE;
91: }
92:
93: BOOL
94: UnregisterRedTick (HINSTANCE hInstance)
95: {
96: return UnregisterClass ("REDTICK", hInstance);
97: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.