| 67 W32Widget *cmdWidget = (W32Widget*)GetWindowLongPtr(hwndCtrl, GWLP_USERDATA); |
67 W32Widget *cmdWidget = (W32Widget*)GetWindowLongPtr(hwndCtrl, GWLP_USERDATA); |
| 68 if (cmdWidget && cmdWidget->wclass->eventproc) { |
68 if (cmdWidget && cmdWidget->wclass->eventproc) { |
| 69 cmdWidget->wclass->eventproc(cmdWidget, hwnd, uMsg, wParam, lParam); |
69 cmdWidget->wclass->eventproc(cmdWidget, hwnd, uMsg, wParam, lParam); |
| 70 } |
70 } |
| 71 } |
71 } |
| |
72 case WM_SIZE: { |
| |
73 int width = LOWORD(lParam); |
| |
74 int height = HIWORD(lParam); |
| |
75 if (widget->layout) { |
| |
76 widget->layout(widget->layoutmanager, width, height); |
| |
77 } |
| |
78 break; |
| |
79 } |
| 72 default: return DefWindowProc(hwnd, uMsg, wParam, lParam); |
80 default: return DefWindowProc(hwnd, uMsg, wParam, lParam); |
| 73 } |
81 } |
| 74 return 0; |
82 return 0; |
| 75 } |
83 } |
| 76 |
84 |
| 110 |
118 |
| 111 UpdateWindow(hwnd); |
119 UpdateWindow(hwnd); |
| 112 |
120 |
| 113 UiContainerX *container = ui_box_container_create(obj, hwnd, UI_BOX_VERTICAL, 0, INSETS_ZERO); |
121 UiContainerX *container = ui_box_container_create(obj, hwnd, UI_BOX_VERTICAL, 0, INSETS_ZERO); |
| 114 uic_object_push_container(obj, container); |
122 uic_object_push_container(obj, container); |
| |
123 UiBoxContainer *box = (UiBoxContainer*)container; |
| 115 |
124 |
| 116 UiWindow *widget = w32_widget_create(&w32_toplevel_widget_class, hwnd, sizeof(UiWindow)); |
125 UiWindow *widget = w32_widget_create(&w32_toplevel_widget_class, hwnd, sizeof(UiWindow)); |
| 117 widget->obj = obj; |
126 widget->obj = obj; |
| 118 widget->container = (UiBoxContainer *)container; |
127 widget->widget.layout = (W32LayoutFunc)ui_grid_layout; |
| |
128 widget->widget.layoutmanager = box->layout; |
| 119 obj->widget = (W32Widget*)widget; |
129 obj->widget = (W32Widget*)widget; |
| 120 obj->ref = 1; |
130 obj->ref = 1; |
| 121 |
131 |
| 122 return obj; |
132 return obj; |
| 123 } |
133 } |
| 126 return create_window(title, window_data, FALSE); |
136 return create_window(title, window_data, FALSE); |
| 127 } |
137 } |
| 128 |
138 |
| 129 |
139 |
| 130 void ui_window_widget_event(W32Widget *widget, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
140 void ui_window_widget_event(W32Widget *widget, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
| 131 UiWindow *window = (UiWindow*)widget; |
141 //UiWindow *window = (UiWindow*)widget; |
| 132 switch (uMsg) { |
|
| 133 case WM_SIZE: { |
|
| 134 int width = LOWORD(lParam); |
|
| 135 int height = HIWORD(lParam); |
|
| 136 ui_grid_layout(window->container->layout, width, height); |
|
| 137 break; |
|
| 138 } |
|
| 139 } |
|
| 140 } |
142 } |
| 141 |
143 |
| 142 void ui_window_widget_show(W32Widget *w, BOOLEAN show) { |
144 void ui_window_widget_show(W32Widget *w, BOOLEAN show) { |
| 143 ShowWindow(w->hwnd, show ? SW_SHOWNORMAL : SW_HIDE); |
145 ShowWindow(w->hwnd, show ? SW_SHOWNORMAL : SW_HIDE); |
| 144 } |
146 } |