ui/gtk/button.c

changeset 115
e57ca2747782
parent 112
c3f2f16fa4b8
equal deleted inserted replaced
114:3da24640513a 115:e57ca2747782
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;

mercurial