| 98 size.height = sz.cy; |
98 size.height = sz.cy; |
| 99 } |
99 } |
| 100 return size; |
100 return size; |
| 101 } |
101 } |
| 102 |
102 |
| 103 void ui_button_eventproc(W32Widget *widget, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
103 int ui_button_eventproc(W32Widget *widget, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
| 104 UiWidget *w = (UiWidget*)widget; |
104 UiWidget *w = (UiWidget*)widget; |
| 105 |
105 |
| 106 if (uMsg != WM_COMMAND) { |
106 if (uMsg != WM_COMMAND) { |
| 107 return; |
107 return 0; |
| 108 } |
108 } |
| 109 |
109 |
| 110 UiEvent e; |
110 UiEvent e; |
| 111 e.obj = w->obj; |
111 e.obj = w->obj; |
| 112 e.document = e.obj->ctx->document; |
112 e.document = e.obj->ctx->document; |
| 117 e.set = ui_get_setop(); |
117 e.set = ui_get_setop(); |
| 118 |
118 |
| 119 if (w->callback) { |
119 if (w->callback) { |
| 120 w->callback(&e, w->callbackdata); |
120 w->callback(&e, w->callbackdata); |
| 121 } |
121 } |
| |
122 |
| |
123 return 0; |
| 122 } |
124 } |
| 123 |
125 |
| 124 static UIWIDGET create_togglebutton(UiObject *obj, UiToggleArgs *args, unsigned long type) { |
126 static UIWIDGET create_togglebutton(UiObject *obj, UiToggleArgs *args, unsigned long type) { |
| 125 HINSTANCE hInstance = GetModuleHandle(NULL); |
127 HINSTANCE hInstance = GetModuleHandle(NULL); |
| 126 UiContainerPrivate *container = ui_obj_container(obj); |
128 UiContainerPrivate *container = ui_obj_container(obj); |
| 185 WPARAM state = v ? BST_CHECKED : BST_UNCHECKED; |
187 WPARAM state = v ? BST_CHECKED : BST_UNCHECKED; |
| 186 SendMessage(btn->widget.hwnd, BM_SETCHECK, state, 0); |
188 SendMessage(btn->widget.hwnd, BM_SETCHECK, state, 0); |
| 187 i->value = v; |
189 i->value = v; |
| 188 } |
190 } |
| 189 |
191 |
| 190 void ui_togglebutton_eventproc(W32Widget *widget, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
192 int ui_togglebutton_eventproc(W32Widget *widget, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
| 191 if (uMsg != WM_COMMAND) { |
193 if (uMsg != WM_COMMAND) { |
| 192 return; |
194 return 0; |
| 193 } |
195 } |
| 194 UiWidget *w = (UiWidget*)widget; |
196 UiWidget *w = (UiWidget*)widget; |
| 195 |
197 |
| 196 UiEvent e; |
198 UiEvent e; |
| 197 e.obj = w->obj; |
199 e.obj = w->obj; |
| 203 e.set = ui_get_setop(); |
205 e.set = ui_get_setop(); |
| 204 |
206 |
| 205 if (w->callback) { |
207 if (w->callback) { |
| 206 w->callback(&e, w->callbackdata); |
208 w->callback(&e, w->callbackdata); |
| 207 } |
209 } |
| |
210 |
| |
211 return 0; |
| 208 } |
212 } |
| 209 |
213 |
| 210 |
214 |
| 211 UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs *args) { |
215 UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs *args) { |
| 212 HINSTANCE hInstance = GetModuleHandle(NULL); |
216 HINSTANCE hInstance = GetModuleHandle(NULL); |
| 254 btn->callbackdata = args->onchangedata; |
258 btn->callbackdata = args->onchangedata; |
| 255 |
259 |
| 256 return widget; |
260 return widget; |
| 257 } |
261 } |
| 258 |
262 |
| 259 void ui_radiobutton_eventproc(W32Widget *widget, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
263 int ui_radiobutton_eventproc(W32Widget *widget, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { |
| 260 if (uMsg != WM_COMMAND) { |
264 if (uMsg != WM_COMMAND) { |
| 261 return; |
265 return 0; |
| 262 } |
266 } |
| 263 UiWidget *w = (UiWidget*)widget; |
267 UiWidget *w = (UiWidget*)widget; |
| 264 |
268 |
| 265 int checked = SendMessage(w->widget.hwnd, BM_GETCHECK, 0, 0); |
269 int checked = SendMessage(w->widget.hwnd, BM_GETCHECK, 0, 0); |
| 266 if (!checked) { |
270 if (!checked) { |
| 267 return; // ignore uncheck events |
271 return 0; // ignore uncheck events |
| 268 } |
272 } |
| 269 |
273 |
| 270 int b = 0; |
274 int b = 0; |
| 271 if (w->var) { |
275 if (w->var) { |
| 272 UiInteger *i = w->var->value; |
276 UiInteger *i = w->var->value; |