/* * X toolkit functions * * Copyright 1993 Alexandre Julliard */ static char Copyright[] = "Copyright Alexandre Julliard, 1993"; #include #include #include #include #include #include #include "message.h" #include "callback.h" #include "win.h" #include "class.h" #include "gdi.h" #ifdef __NetBSD__ #define HZ 100 #endif Display * XT_display; Screen * XT_screen; XtAppContext XT_app_context; static Widget topLevelWidget; /*********************************************************************** * main */ void main(int argc, char **argv) { topLevelWidget = XtVaAppInitialize(&XT_app_context, "XWine", /* Application class */ NULL, 0, /* Option list */ &argc, argv, /* Command line args */ NULL, /* Fallback resources */ NULL ); XT_display = XtDisplay( topLevelWidget ); XT_screen = XtScreen( topLevelWidget ); _WinMain( argc, argv ); } /*********************************************************************** * DefWindowProc (USER.107) */ LONG DefWindowProc( HWND hwnd, WORD msg, WORD wParam, LONG lParam ) { WND * wndPtr; CLASS * classPtr; #ifdef DEBUG_MESSAGE printf( "DefWindowProc: %d %d %d %08x\n", hwnd, msg, wParam, lParam ); #endif switch(msg) { case WM_PAINT: { PAINTSTRUCT paintstruct; BeginPaint( hwnd, &paintstruct ); EndPaint( hwnd, &paintstruct ); return 0; } case WM_CREATE: return 0; case WM_CLOSE: DestroyWindow( hwnd ); return 0; case WM_ERASEBKGND: case WM_ICONERASEBKGND: { if (!(wndPtr = WIN_FindWndPtr( hwnd ))) return 1; if (!(classPtr = CLASS_FindClassPtr( wndPtr->hClass ))) return 1; if (!classPtr->wc.hbrBackground) return 1; FillWindow( wndPtr->hwndParent, hwnd, (HDC)wParam, classPtr->wc.hbrBackground ); GlobalUnlock( hwnd ); return 0; } } return 0; } /******************************************************************** * * Miscellaneous partially implemented functions. * */ int MessageBox( HWND hwnd, LPSTR str, LPSTR title, WORD type ) { printf( "MessageBox: '%s'\n", str ); } void MessageBeep( WORD i ) { printf( "MessageBeep: %d\n", i ); } WORD RegisterWindowMessage( LPSTR str ) { printf( "RegisterWindowMessage: '%s'\n", str ); return 0xc000; } /*********************************************************************** * GetTickCount (USER.13) */ DWORD GetTickCount() { struct tms dummy; return times(&dummy) / (1000 / HZ); } int GetSystemMetrics( short index ) { printf( "GetSystemMetrics: %d\n", index ); switch(index) { case SM_CXSCREEN: return DisplayWidth( XT_display, DefaultScreen( XT_display )); case SM_CYSCREEN: return DisplayHeight( XT_display, DefaultScreen( XT_display )); default: return 0; } } void AdjustWindowRect( LPRECT rect, DWORD style, BOOL menu ) { printf( "AdjustWindowRect: (%d,%d)-(%d,%d) %d %d\n", rect->left, rect->top, rect->right, rect->bottom, style, menu ); } BOOL IsIconic( HWND hwnd ) { printf( "IsIconic: returning FALSE\n" ); return FALSE; } HMENU CreateMenu() { } BOOL AppendMenu( HMENU hmenu, WORD flags, WORD id, LPSTR text ) { }