2 * Windows widgets (built-in window classes)
4 * Copyright 1993 Alexandre Julliard
7 static char Copyright
[] = "Copyright Alexandre Julliard, 1993";
12 static LONG
WIDGETS_ButtonWndProc( HWND hwnd
, WORD message
,
13 WORD wParam
, LONG lParam
);
14 static LONG
WIDGETS_StaticWndProc( HWND hwnd
, WORD message
,
15 WORD wParam
, LONG lParam
);
17 #define NB_BUILTIN_CLASSES 2
19 static WNDCLASS WIDGETS_BuiltinClasses
[NB_BUILTIN_CLASSES
] =
21 { 0, WIDGETS_ButtonWndProc
, 0, 0, 0, 0, 0, 0, NULL
, "BUTTON" },
22 { 0, WIDGETS_StaticWndProc
, 0, 0, 0, 0, 0, 0, NULL
, "STATIC" }
25 static FARPROC WndProc32
[NB_BUILTIN_CLASSES
];
28 /***********************************************************************
31 * Initialize the built-in window classes.
36 WNDCLASS
* pClass
= WIDGETS_BuiltinClasses
;
38 for (i
= 0; i
< NB_BUILTIN_CLASSES
; i
++, pClass
++)
40 WndProc32
[i
] = pClass
->lpfnWndProc
;
41 pClass
->lpfnWndProc
= (FARPROC
) i
+1;
42 if (!RegisterClass(pClass
)) return FALSE
;
48 /**********************************************************************
49 * WIDGETS_Call32WndProc
51 * Call the window procedure of a built-in class.
53 LONG
WIDGETS_Call32WndProc( FARPROC func
, HWND hwnd
, WORD message
,
54 WORD wParam
, LONG lParam
)
56 unsigned int i
= (unsigned int) func
;
57 if (!i
|| (i
> NB_BUILTIN_CLASSES
)) return 0;
58 return (*WndProc32
[i
-1])( hwnd
, message
, wParam
, lParam
);
62 /***********************************************************************
63 * WIDGETS_ButtonWndProc
65 static LONG
WIDGETS_ButtonWndProc( HWND hwnd
, WORD message
,
66 WORD wParam
, LONG lParam
)
79 hdc
= BeginPaint( hwnd
, &ps
);
80 GetClientRect( hwnd
, &rect
);
81 DrawText(hdc
, "Button", -1, &rect
,
82 DT_SINGLELINE
| DT_CENTER
| DT_VCENTER
);
83 EndPaint( hwnd
, &ps
);
88 return DefWindowProc( hwnd
, message
, wParam
, lParam
);
93 /***********************************************************************
94 * WIDGETS_StaticWndProc
96 static LONG
WIDGETS_StaticWndProc( HWND hwnd
, WORD message
,
97 WORD wParam
, LONG lParam
)
110 hdc
= BeginPaint( hwnd
, &ps
);
111 GetClientRect( hwnd
, &rect
);
112 DrawText(hdc
, "Static", -1, &rect
,
113 DT_SINGLELINE
| DT_CENTER
| DT_VCENTER
);
114 EndPaint( hwnd
, &ps
);
119 return DefWindowProc( hwnd
, message
, wParam
, lParam
);