ui/gtk/button.c

changeset 56
294d5515583a
parent 51
e324291ca9f8
child 58
0d25f15e2625
equal deleted inserted replaced
55:1ce14068ef31 56:294d5515583a
57 GtkWidget* ui_create_button( 57 GtkWidget* ui_create_button(
58 UiObject *obj, 58 UiObject *obj,
59 const char *label, 59 const char *label,
60 const char *icon, 60 const char *icon,
61 ui_callback onclick, 61 ui_callback onclick,
62 void *userdata) 62 void *userdata,
63 int event_value)
63 { 64 {
64 GtkWidget *button = gtk_button_new_with_label(label); 65 GtkWidget *button = gtk_button_new_with_label(label);
65 ui_button_set_icon_name(button, icon); 66 ui_button_set_icon_name(button, icon);
66 67
67 if(onclick) { 68 if(onclick) {
68 UiEventData *event = malloc(sizeof(UiEventData)); 69 UiEventData *event = malloc(sizeof(UiEventData));
69 event->obj = obj; 70 event->obj = obj;
70 event->userdata = userdata; 71 event->userdata = userdata;
71 event->callback = onclick; 72 event->callback = onclick;
72 event->value = 0; 73 event->value = event_value;
73 event->customdata = NULL; 74 event->customdata = NULL;
74 75
75 g_signal_connect( 76 g_signal_connect(
76 button, 77 button,
77 "clicked", 78 "clicked",
87 return button; 88 return button;
88 } 89 }
89 90
90 UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs args) { 91 UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs args) {
91 UiObject* current = uic_current_obj(obj); 92 UiObject* current = uic_current_obj(obj);
92 GtkWidget *button = ui_create_button(obj, args.label, args.icon, args.onclick, args.onclickdata); 93 GtkWidget *button = ui_create_button(obj, args.label, args.icon, args.onclick, args.onclickdata, 0);
93 ui_set_name_and_style(button, args.name, args.style_class); 94 ui_set_name_and_style(button, args.name, args.style_class);
95 ui_set_widget_groups(obj->ctx, button, args.groups);
94 UI_APPLY_LAYOUT1(current, args); 96 UI_APPLY_LAYOUT1(current, args);
95 current->container->add(current->container, button, FALSE); 97 current->container->add(current->container, button, FALSE);
96 return button; 98 return button;
97 } 99 }
98 100
230 static UIWIDGET togglebutton_create(UiObject *obj, GtkWidget *widget, UiToggleArgs args) { 232 static UIWIDGET togglebutton_create(UiObject *obj, GtkWidget *widget, UiToggleArgs args) {
231 UiObject* current = uic_current_obj(obj); 233 UiObject* current = uic_current_obj(obj);
232 234
233 ui_setup_togglebutton(current, widget, args.label, args.icon, args.varname, args.value, args.onchange, args.onchangedata); 235 ui_setup_togglebutton(current, widget, args.label, args.icon, args.varname, args.value, args.onchange, args.onchangedata);
234 ui_set_name_and_style(widget, args.name, args.style_class); 236 ui_set_name_and_style(widget, args.name, args.style_class);
237 ui_set_widget_groups(obj->ctx, widget, args.groups);
235 238
236 UI_APPLY_LAYOUT1(current, args); 239 UI_APPLY_LAYOUT1(current, args);
237 current->container->add(current->container, widget, FALSE); 240 current->container->add(current->container, widget, FALSE);
238 241
239 return widget; 242 return widget;
280 args.value, 283 args.value,
281 (ui_toggled_func)ui_checkbox_callback, 284 (ui_toggled_func)ui_checkbox_callback,
282 args.onchange, 285 args.onchange,
283 args.onchangedata); 286 args.onchangedata);
284 287
288 ui_set_name_and_style(widget, args.name, args.style_class);
289 ui_set_widget_groups(obj->ctx, widget, args.groups);
290
285 UI_APPLY_LAYOUT1(current, args); 291 UI_APPLY_LAYOUT1(current, args);
286 current->container->add(current->container, widget, FALSE); 292 current->container->add(current->container, widget, FALSE);
287 293
288 return widget; 294 return widget;
289 } 295 }
341 } 347 }
342 } 348 }
343 349
344 GtkWidget *rbutton = RADIOBUTTON_NEW(rg, args.label); 350 GtkWidget *rbutton = RADIOBUTTON_NEW(rg, args.label);
345 ui_set_name_and_style(rbutton, args.name, args.style_class); 351 ui_set_name_and_style(rbutton, args.name, args.style_class);
352 ui_set_widget_groups(obj->ctx, rbutton, args.groups);
346 if(rgroup) { 353 if(rgroup) {
347 #if GTK_MAJOR_VERSION >= 4 354 #if GTK_MAJOR_VERSION >= 4
348 if(rg) { 355 if(rg) {
349 gtk_check_button_set_group(GTK_CHECK_BUTTON(rbutton), rg->data); 356 gtk_check_button_set_group(GTK_CHECK_BUTTON(rbutton), rg->data);
350 } 357 }

mercurial