| 104 } |
104 } |
| 105 |
105 |
| 106 UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) { |
106 UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) { |
| 107 GtkWidget *button = ui_create_button(obj, args->label, args->icon, args->tooltip, args->onclick, args->onclickdata, 0, FALSE); |
107 GtkWidget *button = ui_create_button(obj, args->label, args->icon, args->tooltip, args->onclick, args->onclickdata, 0, FALSE); |
| 108 ui_set_name_and_style(button, args->name, args->style_class); |
108 ui_set_name_and_style(button, args->name, args->style_class); |
| 109 ui_set_widget_groups(obj->ctx, button, args->groups); |
109 ui_set_widget_states(obj->ctx, button, args->states); |
| 110 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
110 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 111 UiLayout layout = UI_ARGS2LAYOUT(args); |
111 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 112 ct->add(ct, button, &layout); |
112 ct->add(ct, button, &layout); |
| 113 return button; |
113 return button; |
| 114 } |
114 } |
| 172 event->callback(&e, event->userdata); |
172 event->callback(&e, event->userdata); |
| 173 } |
173 } |
| 174 |
174 |
| 175 static void ui_togglebutton_enable_state_callback(GtkToggleButton *widget, UiEventData *event) { |
175 static void ui_togglebutton_enable_state_callback(GtkToggleButton *widget, UiEventData *event) { |
| 176 if(gtk_toggle_button_get_active(widget)) { |
176 if(gtk_toggle_button_get_active(widget)) { |
| 177 ui_set_group(event->obj->ctx, event->value); |
177 ui_set_state(event->obj->ctx, event->value); |
| 178 } else { |
178 } else { |
| 179 ui_unset_group(event->obj->ctx, event->value); |
179 ui_unset_state(event->obj->ctx, event->value); |
| 180 } |
180 } |
| 181 } |
181 } |
| 182 |
182 |
| 183 void ui_setup_togglebutton( |
183 void ui_setup_togglebutton( |
| 184 UiObject *obj, |
184 UiObject *obj, |
| 306 args->tooltip, |
306 args->tooltip, |
| 307 args->varname, |
307 args->varname, |
| 308 args->value, |
308 args->value, |
| 309 args->onchange, |
309 args->onchange, |
| 310 args->onchangedata, |
310 args->onchangedata, |
| 311 args->enable_group); |
311 args->enable_state); |
| 312 ui_set_name_and_style(widget, args->name, args->style_class); |
312 ui_set_name_and_style(widget, args->name, args->style_class); |
| 313 ui_set_widget_groups(obj->ctx, widget, args->groups); |
313 ui_set_widget_states(obj->ctx, widget, args->states); |
| 314 |
314 |
| 315 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
315 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 316 UiLayout layout = UI_ARGS2LAYOUT(args); |
316 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 317 ct->add(ct, widget, &layout); |
317 ct->add(ct, widget, &layout); |
| 318 |
318 |
| 349 event->callback(&e, event->userdata); |
349 event->callback(&e, event->userdata); |
| 350 } |
350 } |
| 351 |
351 |
| 352 static void ui_checkbox_enable_state(GtkCheckButton *widget, UiEventData *event) { |
352 static void ui_checkbox_enable_state(GtkCheckButton *widget, UiEventData *event) { |
| 353 if(gtk_check_button_get_active(widget)) { |
353 if(gtk_check_button_get_active(widget)) { |
| 354 ui_set_group(event->obj->ctx, event->value); |
354 ui_set_state(event->obj->ctx, event->value); |
| 355 } else { |
355 } else { |
| 356 ui_unset_group(event->obj->ctx, event->value); |
356 ui_unset_state(event->obj->ctx, event->value); |
| 357 } |
357 } |
| 358 } |
358 } |
| 359 |
359 |
| 360 UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) { |
360 UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) { |
| 361 GtkWidget *widget = gtk_check_button_new_with_label(args->label); |
361 GtkWidget *widget = gtk_check_button_new_with_label(args->label); |
| 368 args->value, |
368 args->value, |
| 369 (ui_toggled_func)ui_checkbox_callback, |
369 (ui_toggled_func)ui_checkbox_callback, |
| 370 args->onchange, |
370 args->onchange, |
| 371 args->onchangedata, |
371 args->onchangedata, |
| 372 (ui_toggled_func)ui_checkbox_enable_state, |
372 (ui_toggled_func)ui_checkbox_enable_state, |
| 373 args->enable_group); |
373 args->enable_state); |
| 374 |
374 |
| 375 ui_set_name_and_style(widget, args->name, args->style_class); |
375 ui_set_name_and_style(widget, args->name, args->style_class); |
| 376 ui_set_widget_groups(obj->ctx, widget, args->groups); |
376 ui_set_widget_states(obj->ctx, widget, args->states); |
| 377 |
377 |
| 378 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
378 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 379 UiLayout layout = UI_ARGS2LAYOUT(args); |
379 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 380 ct->add(ct, widget, &layout); |
380 ct->add(ct, widget, &layout); |
| 381 |
381 |
| 417 } |
417 } |
| 418 |
418 |
| 419 UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs *args) { |
419 UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs *args) { |
| 420 GtkWidget *widget = gtk_switch_new(); |
420 GtkWidget *widget = gtk_switch_new(); |
| 421 ui_set_name_and_style(widget, args->name, args->style_class); |
421 ui_set_name_and_style(widget, args->name, args->style_class); |
| 422 ui_set_widget_groups(obj->ctx, widget, args->groups); |
422 ui_set_widget_states(obj->ctx, widget, args->states); |
| 423 |
423 |
| 424 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); |
424 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); |
| 425 if(var) { |
425 if(var) { |
| 426 UiInteger *value = var->value; |
426 UiInteger *value = var->value; |
| 427 value->obj = widget; |
427 value->obj = widget; |
| 539 } |
539 } |
| 540 } |
540 } |
| 541 |
541 |
| 542 GtkWidget *rbutton = RADIOBUTTON_NEW(rg, args->label); |
542 GtkWidget *rbutton = RADIOBUTTON_NEW(rg, args->label); |
| 543 ui_set_name_and_style(rbutton, args->name, args->style_class); |
543 ui_set_name_and_style(rbutton, args->name, args->style_class); |
| 544 ui_set_widget_groups(obj->ctx, rbutton, args->groups); |
544 ui_set_widget_states(obj->ctx, rbutton, args->states); |
| 545 if(rgroup) { |
545 if(rgroup) { |
| 546 #if GTK_MAJOR_VERSION >= 4 |
546 #if GTK_MAJOR_VERSION >= 4 |
| 547 if(rg) { |
547 if(rg) { |
| 548 gtk_check_button_set_group(GTK_CHECK_BUTTON(rbutton), rg->data); |
548 gtk_check_button_set_group(GTK_CHECK_BUTTON(rbutton), rg->data); |
| 549 } |
549 } |
| 893 str->get = ui_linkbutton_get; |
893 str->get = ui_linkbutton_get; |
| 894 str->set = ui_linkbutton_set; |
894 str->set = ui_linkbutton_set; |
| 895 } |
895 } |
| 896 |
896 |
| 897 ui_set_name_and_style(button, args->name, args->style_class); |
897 ui_set_name_and_style(button, args->name, args->style_class); |
| 898 ui_set_widget_groups(obj->ctx, button, args->groups); |
898 ui_set_widget_states(obj->ctx, button, args->states); |
| 899 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
899 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 900 UiLayout layout = UI_ARGS2LAYOUT(args); |
900 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 901 ct->add(ct, button, &layout); |
901 ct->add(ct, button, &layout); |
| 902 |
902 |
| 903 return button; |
903 return button; |