| 44 UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs *args) { |
44 UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs *args) { |
| 45 Arg xargs[16]; |
45 Arg xargs[16]; |
| 46 int n = 0; |
46 int n = 0; |
| 47 |
47 |
| 48 UiContainerPrivate *ctn = ui_obj_container(obj); |
48 UiContainerPrivate *ctn = ui_obj_container(obj); |
| 49 UI_APPLY_LAYOUT(ctn->layout, args); |
49 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 50 |
50 |
| 51 Widget parent = ctn->prepare(ctn, xargs, &n); |
51 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n); |
| 52 |
52 |
| 53 XmString label = NULL; |
53 XmString label = NULL; |
| 54 if(args->label) { |
54 if(args->label) { |
| 55 label = XmStringCreateLocalized((char*)args->label); |
55 label = XmStringCreateLocalized((char*)args->label); |
| 56 XtSetArg(xargs[n], XmNlabelString, label); n++; |
56 XtSetArg(xargs[n], XmNlabelString, label); n++; |
| 57 } |
57 } |
| 58 |
58 |
| 59 char *name = args->name ? (char*)args->name : "button"; |
59 char *name = args->name ? (char*)args->name : "button"; |
| 60 Widget button = XmCreatePushButton(parent, name, xargs, n); |
60 Widget button = XmCreatePushButton(parent, name, xargs, n); |
| 61 XtManageChild(button); |
61 XtManageChild(button); |
| 62 ctn->add(ctn, button); |
62 ui_container_add(ctn, button); |
| 63 |
63 |
| 64 ui_set_widget_groups(obj->ctx, button, args->groups); |
64 ui_set_widget_groups(obj->ctx, button, args->groups); |
| 65 |
65 |
| 66 if(args->onclick) { |
66 if(args->onclick) { |
| 67 UiEventData *eventdata = malloc(sizeof(UiEventData)); |
67 UiEventData *eventdata = malloc(sizeof(UiEventData)); |
| 99 UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs *args) { |
99 UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs *args) { |
| 100 Arg xargs[16]; |
100 Arg xargs[16]; |
| 101 int n = 0; |
101 int n = 0; |
| 102 |
102 |
| 103 UiContainerPrivate *ctn = ui_obj_container(obj); |
103 UiContainerPrivate *ctn = ui_obj_container(obj); |
| 104 UI_APPLY_LAYOUT(ctn->layout, args); |
104 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 105 |
105 |
| 106 Widget parent = ctn->prepare(ctn, xargs, &n); |
106 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n); |
| 107 XtSetArg(xargs[n], XmNfillOnSelect, True); n++; |
107 XtSetArg(xargs[n], XmNfillOnSelect, True); n++; |
| 108 XtSetArg(xargs[n], XmNindicatorOn, False); n++; |
108 XtSetArg(xargs[n], XmNindicatorOn, False); n++; |
| 109 |
109 |
| 110 XmString label = NULL; |
110 XmString label = NULL; |
| 111 if(args->label) { |
111 if(args->label) { |
| 114 } |
114 } |
| 115 |
115 |
| 116 char *name = args->name ? (char*)args->name : "togglebutton"; |
116 char *name = args->name ? (char*)args->name : "togglebutton"; |
| 117 Widget button = XmCreateToggleButton(parent, name, xargs, n); |
117 Widget button = XmCreateToggleButton(parent, name, xargs, n); |
| 118 XtManageChild(button); |
118 XtManageChild(button); |
| 119 ctn->add(ctn, button); |
119 ui_container_add(ctn, button); |
| 120 |
120 |
| 121 ui_set_widget_groups(obj->ctx, button, args->groups); |
121 ui_set_widget_groups(obj->ctx, button, args->groups); |
| 122 |
122 |
| 123 ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_group); |
123 ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_group); |
| 124 |
124 |
| 129 UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) { |
129 UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) { |
| 130 Arg xargs[16]; |
130 Arg xargs[16]; |
| 131 int n = 0; |
131 int n = 0; |
| 132 |
132 |
| 133 UiContainerPrivate *ctn = ui_obj_container(obj); |
133 UiContainerPrivate *ctn = ui_obj_container(obj); |
| 134 UI_APPLY_LAYOUT(ctn->layout, args); |
134 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 135 |
135 |
| 136 Widget parent = ctn->prepare(ctn, xargs, &n); |
136 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n); |
| 137 |
137 |
| 138 XmString label = NULL; |
138 XmString label = NULL; |
| 139 if(args->label) { |
139 if(args->label) { |
| 140 label = XmStringCreateLocalized((char*)args->label); |
140 label = XmStringCreateLocalized((char*)args->label); |
| 141 XtSetArg(xargs[n], XmNlabelString, label); n++; |
141 XtSetArg(xargs[n], XmNlabelString, label); n++; |
| 142 } |
142 } |
| 143 |
143 |
| 144 char *name = args->name ? (char*)args->name : "button"; |
144 char *name = args->name ? (char*)args->name : "button"; |
| 145 Widget button = XmCreateToggleButton(parent, name, xargs, n); |
145 Widget button = XmCreateToggleButton(parent, name, xargs, n); |
| 146 XtManageChild(button); |
146 XtManageChild(button); |
| 147 ctn->add(ctn, button); |
147 ui_container_add(ctn, button); |
| 148 |
148 |
| 149 ui_set_widget_groups(obj->ctx, button, args->groups); |
149 ui_set_widget_groups(obj->ctx, button, args->groups); |
| 150 |
150 |
| 151 ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_group); |
151 ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_group); |
| 152 |
152 |
| 348 UIWIDGET ui_radiobutton_create(UiObject* obj, UiToggleArgs *args) { |
348 UIWIDGET ui_radiobutton_create(UiObject* obj, UiToggleArgs *args) { |
| 349 Arg xargs[16]; |
349 Arg xargs[16]; |
| 350 int n = 0; |
350 int n = 0; |
| 351 |
351 |
| 352 UiContainerPrivate *ctn = ui_obj_container(obj); |
352 UiContainerPrivate *ctn = ui_obj_container(obj); |
| 353 UI_APPLY_LAYOUT(ctn->layout, args); |
353 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 354 |
354 |
| 355 Widget parent = ctn->prepare(ctn, xargs, &n); |
355 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n); |
| 356 XtSetArg(xargs[n], XmNindicatorType, XmONE_OF_MANY_ROUND); n++; |
356 XtSetArg(xargs[n], XmNindicatorType, XmONE_OF_MANY_ROUND); n++; |
| 357 XmString label = NULL; |
357 XmString label = NULL; |
| 358 if(args->label) { |
358 if(args->label) { |
| 359 label = XmStringCreateLocalized((char*)args->label); |
359 label = XmStringCreateLocalized((char*)args->label); |
| 360 XtSetArg(xargs[n], XmNlabelString, label); n++; |
360 XtSetArg(xargs[n], XmNlabelString, label); n++; |
| 361 } |
361 } |
| 362 |
362 |
| 363 char *name = args->name ? (char*)args->name : "button"; |
363 char *name = args->name ? (char*)args->name : "button"; |
| 364 Widget button = XmCreateToggleButton(parent, name, xargs, n); |
364 Widget button = XmCreateToggleButton(parent, name, xargs, n); |
| 365 XtManageChild(button); |
365 XtManageChild(button); |
| 366 ctn->add(ctn, button); |
366 ui_container_add(ctn, button); |
| 367 |
367 |
| 368 ui_set_widget_groups(obj->ctx, button, args->groups); |
368 ui_set_widget_groups(obj->ctx, button, args->groups); |
| 369 |
369 |
| 370 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); |
370 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); |
| 371 if(var) { |
371 if(var) { |