ui/win32/toolkit.c

changeset 113
dde28a806552
parent 112
c3f2f16fa4b8
equal deleted inserted replaced
112:c3f2f16fa4b8 113:dde28a806552
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 }

mercurial