Moved everything out of windows.h.
[wine] / dlls / comctl32 / nativefont.c
1 /*
2  * Native Font control
3  *
4  * Copyright 1998 Eric Kohl
5  *
6  * NOTES
7  *   This is just a dummy control. An author is needed! Any volunteers?
8  *   I will only improve this control once in a while.
9  *     Eric <ekohl@abo.rhein-zeitung.de>
10  *
11  * TODO:
12  *   - All messages.
13  *   - All notifications.
14  */
15
16 #include "windows.h"
17 #include "commctrl.h"
18 #include "nativefont.h"
19 #include "win.h"
20 #include "debug.h"
21
22
23 #define NATIVEFONT_GetInfoPtr(wndPtr) ((NATIVEFONT_INFO *)wndPtr->wExtra[0])
24
25
26
27
28 static LRESULT
29 NATIVEFONT_Create (WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
30 {
31     NATIVEFONT_INFO *infoPtr;
32
33     /* allocate memory for info structure */
34     infoPtr = (NATIVEFONT_INFO *)COMCTL32_Alloc (sizeof(NATIVEFONT_INFO));
35     wndPtr->wExtra[0] = (DWORD)infoPtr;
36
37     if (infoPtr == NULL) {
38         ERR (listview, "could not allocate info memory!\n");
39         return 0;
40     }
41
42     if ((NATIVEFONT_INFO*)wndPtr->wExtra[0] != infoPtr) {
43         ERR (listview, "pointer assignment error!\n");
44         return 0;
45     }
46
47     /* initialize info structure */
48
49
50     return 0;
51 }
52
53
54 static LRESULT
55 NATIVEFONT_Destroy (WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
56 {
57     NATIVEFONT_INFO *infoPtr = NATIVEFONT_GetInfoPtr(wndPtr);
58
59
60
61
62     /* free comboex info data */
63     COMCTL32_Free (infoPtr);
64
65     return 0;
66 }
67
68
69
70 LRESULT WINAPI
71 NATIVEFONT_WindowProc (HWND32 hwnd, UINT32 uMsg, WPARAM32 wParam, LPARAM lParam)
72 {
73     WND *wndPtr = WIN_FindWndPtr(hwnd);
74
75     switch (uMsg)
76     {
77
78         case WM_CREATE:
79             return NATIVEFONT_Create (wndPtr, wParam, lParam);
80
81         case WM_DESTROY:
82             return NATIVEFONT_Destroy (wndPtr, wParam, lParam);
83
84         default:
85             ERR (nativefont, "unknown msg %04x wp=%08x lp=%08lx\n",
86                      uMsg, wParam, lParam);
87             return DefWindowProc32A (hwnd, uMsg, wParam, lParam);
88     }
89     return 0;
90 }
91
92
93 VOID
94 NATIVEFONT_Register (VOID)
95 {
96     WNDCLASS32A wndClass;
97
98     if (GlobalFindAtom32A (WC_NATIVEFONTCTL32A)) return;
99
100     ZeroMemory (&wndClass, sizeof(WNDCLASS32A));
101     wndClass.style         = CS_GLOBALCLASS;
102     wndClass.lpfnWndProc   = (WNDPROC32)NATIVEFONT_WindowProc;
103     wndClass.cbClsExtra    = 0;
104     wndClass.cbWndExtra    = sizeof(NATIVEFONT_INFO *);
105     wndClass.hCursor       = LoadCursor32A (0, IDC_ARROW32A);
106     wndClass.hbrBackground = (HBRUSH32)(COLOR_WINDOW + 1);
107     wndClass.lpszClassName = WC_NATIVEFONTCTL32A;
108  
109     RegisterClass32A (&wndClass);
110 }
111
112
113 VOID
114 NATIVEFONT_Unregister (VOID)
115 {
116     if (GlobalFindAtom32A (WC_NATIVEFONTCTL32A))
117         UnregisterClass32A (WC_NATIVEFONTCTL32A, (HINSTANCE32)NULL);
118 }
119