tAll non-toplevel windows (i.e. dialogs) under Win32 are now created using the … | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit ebe3f9ffc55e1ed790df4595d3cbd1de6a6efd7b | |
parent e45ebe6c4ada3efb0306cb766a7d7635dcc42c8f | |
Author: Ben Webb <[email protected]> | |
Date: Sat, 2 Mar 2002 18:52:18 +0000 | |
All non-toplevel windows (i.e. dialogs) under Win32 are now created using | |
tthe "proper" Win32 function, CreateDialog, and no longer have window menus. | |
Diffstat: | |
M src/dopewars.rc | 8 ++++++++ | |
M src/gtkport/gtkport.c | 42 +++++++++++++++++++++--------… | |
2 files changed, 37 insertions(+), 13 deletions(-) | |
--- | |
diff --git a/src/dopewars.rc b/src/dopewars.rc | |
t@@ -1 +1,9 @@ | |
+#include <windows.h> | |
+ | |
mainicon ICON pill.ico | |
+ | |
+gtkdialog DIALOG 40, 40, 40, 40 | |
+STYLE WS_POPUP | WS_CAPTION | WS_THICKFRAME | DS_MODALFRAME | |
+CAPTION "" | |
+BEGIN | |
+END | |
diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c | |
t@@ -902,6 +902,8 @@ gboolean gtk_window_wndproc(GtkWidget *widget, UINT msg, W… | |
alloc.height = rect.bottom - rect.top; | |
gtk_window_handle_user_size(GTK_WINDOW(widget), &alloc); | |
gtk_widget_set_size(widget, &alloc); | |
+ InvalidateRect(widget->hWnd, NULL, TRUE); | |
+ UpdateWindow(widget->hWnd); | |
return FALSE; | |
case WM_GETMINMAXINFO: | |
gtk_window_handle_minmax_size(GTK_WINDOW(widget), (LPMINMAXINFO)lParam); | |
t@@ -937,7 +939,7 @@ gboolean gtk_window_wndproc(GtkWidget *widget, UINT msg, W… | |
return TRUE; | |
} | |
-LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, UINT wParam, LONG lParam) | |
+static BOOL HandleWinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |
{ | |
GtkWidget *widget; | |
GtkClass *klass; | |
t@@ -1024,12 +1026,28 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, UINT… | |
case WM_TIMER: | |
DispatchTimeoutEvent((UINT)wParam); | |
return FALSE; | |
- default: | |
- return DefWindowProc(hwnd, msg, wParam, lParam); | |
} | |
return FALSE; | |
} | |
+LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |
+{ | |
+ if (!HandleWinMessage(hwnd, msg, wParam, lParam)) { | |
+ return DefWindowProc(hwnd, msg, wParam, lParam); | |
+ } else { | |
+ return TRUE; | |
+ } | |
+} | |
+ | |
+BOOL APIENTRY MainDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |
+{ | |
+ if (msg == WM_INITDIALOG) { | |
+ return TRUE; | |
+ } else { | |
+ return HandleWinMessage(hwnd, msg, wParam, lParam); | |
+ } | |
+} | |
+ | |
LRESULT APIENTRY EntryWndProc(HWND hwnd, UINT msg, WPARAM wParam, | |
LPARAM lParam) | |
{ | |
t@@ -1083,7 +1101,7 @@ void win32_init(HINSTANCE hInstance, HINSTANCE hPrevInst… | |
mainIcon = LoadIcon(NULL, IDI_APPLICATION); | |
} | |
if (!hPrevInstance) { | |
- wc.style = CS_HREDRAW | CS_VREDRAW; | |
+ wc.style = 0; | |
wc.lpfnWndProc = MainWndProc; | |
wc.cbClsExtra = 0; | |
wc.cbWndExtra = 0; | |
t@@ -1095,7 +1113,7 @@ void win32_init(HINSTANCE hInstance, HINSTANCE hPrevInst… | |
wc.lpszClassName = "mainwin"; | |
RegisterClass(&wc); | |
- wc.style = CS_HREDRAW | CS_VREDRAW; | |
+ wc.style = 0; | |
wc.lpfnWndProc = MainWndProc; | |
wc.cbClsExtra = 0; | |
wc.cbWndExtra = 0; | |
t@@ -1107,7 +1125,7 @@ void win32_init(HINSTANCE hInstance, HINSTANCE hPrevInst… | |
wc.lpszClassName = WC_GTKDIALOG; | |
RegisterClass(&wc); | |
- wc.style = CS_HREDRAW | CS_VREDRAW; | |
+ wc.style = 0; | |
wc.lpfnWndProc = GtkPanedProc; | |
wc.cbClsExtra = 0; | |
wc.cbWndExtra = 0; | |
t@@ -1119,7 +1137,7 @@ void win32_init(HINSTANCE hInstance, HINSTANCE hPrevInst… | |
wc.lpszClassName = WC_GTKHPANED; | |
RegisterClass(&wc); | |
- wc.style = CS_HREDRAW | CS_VREDRAW; | |
+ wc.style = 0; | |
wc.lpfnWndProc = GtkPanedProc; | |
wc.cbClsExtra = 0; | |
wc.cbWndExtra = 0; | |
t@@ -1131,7 +1149,7 @@ void win32_init(HINSTANCE hInstance, HINSTANCE hPrevInst… | |
wc.lpszClassName = WC_GTKVPANED; | |
RegisterClass(&wc); | |
- wc.style = CS_HREDRAW | CS_VREDRAW; | |
+ wc.style = 0; | |
wc.lpfnWndProc = GtkSepProc; | |
wc.cbClsExtra = 0; | |
wc.cbWndExtra = 0; | |
t@@ -1143,7 +1161,7 @@ void win32_init(HINSTANCE hInstance, HINSTANCE hPrevInst… | |
wc.lpszClassName = WC_GTKSEP; | |
RegisterClass(&wc); | |
- wc.style = CS_HREDRAW | CS_VREDRAW; | |
+ wc.style = 0; | |
wc.lpfnWndProc = GtkUrlProc; | |
wc.cbClsExtra = 0; | |
wc.cbWndExtra = 0; | |
t@@ -2272,10 +2290,8 @@ void gtk_window_realize(GtkWidget *widget) | |
if (!TopLevel) | |
TopLevel = widget->hWnd; | |
} else { | |
- widget->hWnd = CreateWindow(WC_GTKDIALOG, win->title, | |
- WS_CAPTION | WS_SYSMENU | CS_HREDRAW | | |
- CS_VREDRAW | resize, CW_USEDEFAULT, 0, 0, | |
- 0, Parent, NULL, hInst, NULL); | |
+ widget->hWnd = CreateDialog(hInst, "gtkdialog", Parent, MainDlgProc); | |
+ SetWindowText(widget->hWnd, win->title); | |
} | |
WindowList = g_slist_append(WindowList, (gpointer)win); | |
gtk_set_default_font(widget->hWnd); |