Mon Jul 18 23:55:13 MET DST 1994 * [if1632/call.S] CallTo16(): added `mov %eax,%edx' just before lcall, to make sure that DX contain the DLL's hinstance when initialised. CallTo32_16() added, equal to CallTo32() except for one thing: it saves DX and * [tools/build.c] Added some code to support 16 and 32 bit return values. * [1632/{kernel,user}.spec] Changed most of the `pascal' style to pascal_16 when function returned a 16bit value. Tue Jul 19 18:40:25 1994 Alexandre Julliard (julliard@lamisun.epfl.ch) * [controls/menu.c] Reorganized sizing and drawing code to implement multi-line menus. Implemented MENUBREAK style. Use system colors to draw menus. * [objects/color.c] Bug fix in COLOR_IsSolid(). * [objects/font.c] Bug fix in FONT_GetMetrics(): calculate average character width only on existing chars (dialogs look much better). * [objects/text.c] Bug fix in DrawText(): use text color to underline mnemonic. * [windows/nonclient.c] Changed WM_NCHITTEST handling to cope with multi-line menu bars. * [windows/syscolor.c] Added system objects for menu colors. Mon Jul 18 19:32:08 PDT 1994 Andrew Lagodzinski (andrew@netcom.com) * [controls/menu.c] Fixed bug in SelectPrevItem that caused seperators to not be skipped when using the up arrow key.
66 lines
2.4 KiB
C
66 lines
2.4 KiB
C
/*
|
|
* Windows widgets (built-in window classes)
|
|
*
|
|
* Copyright 1993 Alexandre Julliard
|
|
*/
|
|
|
|
static char Copyright[] = "Copyright Alexandre Julliard, 1993";
|
|
|
|
#include "win.h"
|
|
#include "desktop.h"
|
|
#include "mdi.h"
|
|
#include "gdi.h"
|
|
|
|
LONG ButtonWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
LONG StaticWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
LONG ScrollBarWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
LONG ListBoxWndProc ( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
LONG ComboBoxWndProc ( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
LONG EditWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
LONG PopupMenuWndProc ( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
LONG DesktopWndProc ( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
LONG MDIClientWndProc ( HWND hwnd, WORD message, WORD wParam, LONG lParam );
|
|
|
|
|
|
static WNDCLASS WIDGETS_BuiltinClasses[] =
|
|
{
|
|
{ CS_GLOBALCLASS, (LONG(*)())ButtonWndProc, 0, 2,
|
|
0, 0, 0, 0, NULL, "BUTTON" },
|
|
{ CS_GLOBALCLASS, (LONG(*)())StaticWndProc, 0, 0,
|
|
0, 0, 0, 0, NULL, "STATIC" },
|
|
{ CS_GLOBALCLASS, (LONG(*)())ScrollBarWndProc, 0, 8,
|
|
0, 0, 0, 0, NULL, "SCROLLBAR" },
|
|
{ CS_GLOBALCLASS, (LONG(*)())ListBoxWndProc, 0, 8,
|
|
0, 0, 0, 0, NULL, "LISTBOX" },
|
|
{ CS_GLOBALCLASS, (LONG(*)())ComboBoxWndProc, 0, 8,
|
|
0, 0, 0, 0, NULL, "COMBOBOX" },
|
|
{ CS_GLOBALCLASS, (LONG(*)())EditWndProc, 0, 4,
|
|
0, 0, 0, 0, NULL, "EDIT" },
|
|
{ CS_GLOBALCLASS | CS_SAVEBITS, (LONG(*)())PopupMenuWndProc, 0, 8,
|
|
0, 0, 0, 0, NULL, POPUPMENU_CLASS_NAME },
|
|
{ CS_GLOBALCLASS, (LONG(*)())DesktopWndProc, 0, sizeof(DESKTOPINFO),
|
|
0, 0, 0, 0, NULL, DESKTOP_CLASS_NAME },
|
|
{ CS_GLOBALCLASS, (LONG(*)())DefDlgProc, 0, DLGWINDOWEXTRA,
|
|
0, 0, 0, 0, NULL, DIALOG_CLASS_NAME },
|
|
{ CS_GLOBALCLASS, (LONG(*)())MDIClientWndProc, 0, sizeof(MDICLIENTINFO),
|
|
0, 0, 0, STOCK_LTGRAY_BRUSH, NULL, "MDICLIENT" }
|
|
};
|
|
|
|
#define NB_BUILTIN_CLASSES \
|
|
(sizeof(WIDGETS_BuiltinClasses)/sizeof(WIDGETS_BuiltinClasses[0]))
|
|
|
|
|
|
/***********************************************************************
|
|
* WIDGETS_Init
|
|
*
|
|
* Initialize the built-in window classes.
|
|
*/
|
|
BOOL WIDGETS_Init(void)
|
|
{
|
|
int i;
|
|
for (i = 0; i < NB_BUILTIN_CLASSES; i++)
|
|
{
|
|
if (!RegisterClass(&WIDGETS_BuiltinClasses[i])) return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|