| 56 W32Widget *widget = (W32Widget*)GetWindowLongPtr(hwnd, GWLP_USERDATA); |
56 W32Widget *widget = (W32Widget*)GetWindowLongPtr(hwnd, GWLP_USERDATA); |
| 57 if (widget && widget->wclass->eventproc) { |
57 if (widget && widget->wclass->eventproc) { |
| 58 widget->wclass->eventproc(widget, hwnd, uMsg, wParam, lParam); |
58 widget->wclass->eventproc(widget, hwnd, uMsg, wParam, lParam); |
| 59 } |
59 } |
| 60 switch(uMsg) { |
60 switch(uMsg) { |
| 61 case WM_DESTROY: |
61 case WM_DESTROY: { |
| 62 PostQuitMessage(0); |
62 PostQuitMessage(0); |
| 63 break; |
63 break; |
| 64 default: |
64 } |
| 65 return DefWindowProc(hwnd, uMsg, wParam, lParam); |
65 case WM_COMMAND: { |
| |
66 HWND hwndCtrl = (HWND)lParam; |
| |
67 W32Widget *cmdWidget = (W32Widget*)GetWindowLongPtr(hwndCtrl, GWLP_USERDATA); |
| |
68 if (cmdWidget && cmdWidget->wclass->eventproc) { |
| |
69 cmdWidget->wclass->eventproc(cmdWidget, hwnd, uMsg, wParam, lParam); |
| |
70 } |
| |
71 } |
| |
72 default: return DefWindowProc(hwnd, uMsg, wParam, lParam); |
| 66 } |
73 } |
| 67 return 0; |
74 return 0; |
| 68 } |
75 } |
| 69 |
76 |
| 70 void ui_window_init(void) { |
77 void ui_window_init(void) { |