| 122 } |
122 } |
| 123 |
123 |
| 124 void ui_show(UiObject *obj) { |
124 void ui_show(UiObject *obj) { |
| 125 ui_set_visible(obj->widget, TRUE); |
125 ui_set_visible(obj->widget, TRUE); |
| 126 } |
126 } |
| |
127 |
| |
128 LRESULT CALLBACK ui_default_eventproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
| |
129 W32Widget *widget = (W32Widget*)GetWindowLongPtr(hwnd, GWLP_USERDATA); |
| |
130 if (widget && widget->wclass->eventproc) { |
| |
131 widget->wclass->eventproc(widget, hwnd, uMsg, wParam, lParam); |
| |
132 } |
| |
133 switch(uMsg) { |
| |
134 case WM_DESTROY: { |
| |
135 PostQuitMessage(0); |
| |
136 break; |
| |
137 } |
| |
138 case WM_COMMAND: { |
| |
139 HWND hwndCtrl = (HWND)lParam; |
| |
140 W32Widget *cmdWidget = (W32Widget*)GetWindowLongPtr(hwndCtrl, GWLP_USERDATA); |
| |
141 if (cmdWidget && cmdWidget->wclass->eventproc) { |
| |
142 cmdWidget->wclass->eventproc(cmdWidget, hwnd, uMsg, wParam, lParam); |
| |
143 } |
| |
144 } |
| |
145 case WM_SIZE: { |
| |
146 int width = LOWORD(lParam); |
| |
147 int height = HIWORD(lParam); |
| |
148 if (widget->layout) { |
| |
149 widget->layout(widget->layoutmanager, width, height); |
| |
150 } |
| |
151 break; |
| |
152 } |
| |
153 default: return DefWindowProc(hwnd, uMsg, wParam, lParam); |
| |
154 } |
| |
155 return 0; |
| |
156 } |