ui/win32/window.c

changeset 841
651cf2c59dd9
parent 825
1bac7e45712b
child 880
9c99ff36513f
equal deleted inserted replaced
840:f74250eda598 841:651cf2c59dd9
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 }

mercurial