| 115 case WM_DESTROY: { |
115 case WM_DESTROY: { |
| 116 PostQuitMessage(0); |
116 PostQuitMessage(0); |
| 117 break; |
117 break; |
| 118 } |
118 } |
| 119 case WM_COMMAND: { |
119 case WM_COMMAND: { |
| |
120 UiWindow *win = ui_widget2window(widget); |
| |
121 if (win) { |
| |
122 uint64_t id = LOWORD(wParam); |
| |
123 UiCommand *cmd = cxMapGet(win->obj->ctx->command_map, id); |
| |
124 if (cmd) { |
| |
125 cmd->callback(win->obj, cmd->userdata); |
| |
126 break; |
| |
127 } |
| |
128 } |
| |
129 |
| 120 HWND hwndCtrl = (HWND)lParam; |
130 HWND hwndCtrl = (HWND)lParam; |
| 121 W32Widget *cmdWidget = (W32Widget*)GetWindowLongPtr(hwndCtrl, GWLP_USERDATA); |
131 W32Widget *cmdWidget = (W32Widget*)GetWindowLongPtr(hwndCtrl, GWLP_USERDATA); |
| 122 if (cmdWidget && cmdWidget->wclass->eventproc) { |
132 if (cmdWidget && cmdWidget->wclass->eventproc) { |
| 123 cmdWidget->wclass->eventproc(cmdWidget, hwnd, uMsg, wParam, lParam); |
133 cmdWidget->wclass->eventproc(cmdWidget, hwnd, uMsg, wParam, lParam); |
| 124 } |
134 } |