Release 0.2.0
Tue Jul 13 20:31:31 1993 Bob Amstadt (bob at pooh)
* [global.c]
Completed global memory pool API
Sun Jul 11 16:59:52 1993 Alexandre Julliard
* [message.c] [user.c] [user.spec] [windows.h]
Added emulation of Windows message queue.
Thu Jul 8 19:29:27 1993 Bob Amstadt (bob at pooh)
* [build.c] Original by Bob Amstadt
* [callback.c] Original by Bob Amstadt, updates by
Alexandre Julliard
* [dump.c] Original by Bob Amstadt
* [global.c] Original by Bob Amstadt
* [heap.c] Original by Bob Amstadt
* [kernel.c] Original by Bob Amstadt
* [ldt.c] Original by Bob Amstadt
* [ldtlib.c] Original by Bob Amstadt
* [relay.c] Original by Bob Amstadt
* [resource.c] Original by Bob Amstadt, updates by
Alexandre Juliard
* [selector.c] Original by Bob Amstadt, updates by Eric Youngdale
* [user.c] Original by Bob Amstadt
* [wine.c] Original by Bob Amstadt, updates by Eric Youngdale and
Alexandre Julliard
* [wintcl.c] Original by Regents of the University of California,
updates by Peter MacDonald and Alexandre Julliard
* [callback.h] Original by Bob Amstadt
* [dlls.h] Original by Bob Amstadt
* [heap.h] Original by Bob Amstadt
* [neexe.h] Original by Bob Amstadt
* [prototypes.h] Original by Bob Amstadt, updates by
Eric Youngdale
* [segmem.h] Original by Bob Amstadt
* [tkInt.h] Original by Regents of the University of California
* [windows.h] Original by Peter MacDonald, updates by
Alexandre Julliard and Bob Amstadt
* [wine.h] Original by Eric Youngdale
* [kernel.spec] Original by Bob Amstadt, updates by
Alexandre Julliard
* [gdi.spec] Original by Bob Amstadt, updates by
Alexandre Julliard
* [shell.spec] Original by Bob Amstadt
* [unixlib.spec] Original by Bob Amstadt
* [user.spec] Original by Bob Amstadt, updates by Alexandre Julliard
* [win87em.spec] Original by Bob Amstadt
* [Windows.tcl] Original by Peter MacDonald, updates by
Alexandre Julliard
* [build-spec.txt] Original by Bob Amstadt
* [if1632.S] Original by Bob Amstadt, updates by Eric Youngdale
diff --git a/widgets.c b/widgets.c
new file mode 100644
index 0000000..f80a23e
--- /dev/null
+++ b/widgets.c
@@ -0,0 +1,121 @@
+/*
+ * Windows widgets (built-in window classes)
+ *
+ * Copyright 1993 Alexandre Julliard
+ */
+
+static char Copyright[] = "Copyright Alexandre Julliard, 1993";
+
+#include "windows.h"
+
+
+static LONG WIDGETS_ButtonWndProc( HWND hwnd, WORD message,
+ WORD wParam, LONG lParam );
+static LONG WIDGETS_StaticWndProc( HWND hwnd, WORD message,
+ WORD wParam, LONG lParam );
+
+#define NB_BUILTIN_CLASSES 2
+
+static WNDCLASS WIDGETS_BuiltinClasses[NB_BUILTIN_CLASSES] =
+{
+ { 0, WIDGETS_ButtonWndProc, 0, 0, 0, 0, 0, 0, NULL, "BUTTON" },
+ { 0, WIDGETS_StaticWndProc, 0, 0, 0, 0, 0, 0, NULL, "STATIC" }
+};
+
+static FARPROC WndProc32[NB_BUILTIN_CLASSES];
+
+
+/***********************************************************************
+ * WIDGETS_Init
+ *
+ * Initialize the built-in window classes.
+ */
+BOOL WIDGETS_Init()
+{
+ int i;
+ WNDCLASS * pClass = WIDGETS_BuiltinClasses;
+
+ for (i = 0; i < NB_BUILTIN_CLASSES; i++, pClass++)
+ {
+ WndProc32[i] = pClass->lpfnWndProc;
+ pClass->lpfnWndProc = (FARPROC) i+1;
+ if (!RegisterClass(pClass)) return FALSE;
+ }
+ return TRUE;
+}
+
+
+/**********************************************************************
+ * WIDGETS_Call32WndProc
+ *
+ * Call the window procedure of a built-in class.
+ */
+LONG WIDGETS_Call32WndProc( FARPROC func, HWND hwnd, WORD message,
+ WORD wParam, LONG lParam )
+{
+ unsigned int i = (unsigned int) func;
+ if (!i || (i > NB_BUILTIN_CLASSES)) return 0;
+ return (*WndProc32[i-1])( hwnd, message, wParam, lParam );
+}
+
+
+/***********************************************************************
+ * WIDGETS_ButtonWndProc
+ */
+static LONG WIDGETS_ButtonWndProc( HWND hwnd, WORD message,
+ WORD wParam, LONG lParam )
+{
+ switch(message)
+ {
+ case WM_CREATE:
+ return 0;
+
+ case WM_PAINT:
+ {
+ HDC hdc;
+ PAINTSTRUCT ps;
+ RECT rect;
+
+ hdc = BeginPaint( hwnd, &ps );
+ GetClientRect( hwnd, &rect );
+ DrawText(hdc, "Button", -1, &rect,
+ DT_SINGLELINE | DT_CENTER | DT_VCENTER );
+ EndPaint( hwnd, &ps );
+ return 0;
+ }
+
+ default:
+ return DefWindowProc( hwnd, message, wParam, lParam );
+ }
+}
+
+
+/***********************************************************************
+ * WIDGETS_StaticWndProc
+ */
+static LONG WIDGETS_StaticWndProc( HWND hwnd, WORD message,
+ WORD wParam, LONG lParam )
+{
+ switch(message)
+ {
+ case WM_CREATE:
+ return 0;
+
+ case WM_PAINT:
+ {
+ HDC hdc;
+ PAINTSTRUCT ps;
+ RECT rect;
+
+ hdc = BeginPaint( hwnd, &ps );
+ GetClientRect( hwnd, &rect );
+ DrawText(hdc, "Static", -1, &rect,
+ DT_SINGLELINE | DT_CENTER | DT_VCENTER );
+ EndPaint( hwnd, &ps );
+ return 0;
+ }
+
+ default:
+ return DefWindowProc( hwnd, message, wParam, lParam );
+ }
+}