161 |
161 |
162 |
162 |
163 |
163 |
164 |
164 |
165 |
165 |
166 UIWIDGET ui_radiobutton_var(UiObject *obj, char *label, UiVar *var) { |
166 UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs args) { |
|
167 UiObject* current = uic_current_obj(obj); |
|
168 |
167 GSList *rg = NULL; |
169 GSList *rg = NULL; |
168 UiInteger *rgroup; |
170 UiInteger *rgroup; |
|
171 |
|
172 UiVar* var = NULL; |
|
173 if (args.value) { |
|
174 var = uic_create_value_var(current->ctx, args.value); |
|
175 } else if (args.varname) { |
|
176 var = uic_create_var(obj->ctx, args.varname, UI_VAR_INTEGER); |
|
177 } |
169 |
178 |
170 if(var) { |
179 if(var) { |
171 rgroup = var->value; |
180 rgroup = var->value; |
172 rg = rgroup->obj; |
181 rg = rgroup->obj; |
173 } |
182 } |
174 |
183 |
175 GtkWidget *rbutton = gtk_radio_button_new_with_label(rg, label); |
184 GtkWidget *rbutton = gtk_radio_button_new_with_label(rg, args.label ? args.label : ""); |
176 rg = gtk_radio_button_get_group(GTK_RADIO_BUTTON(rbutton)); |
185 rg = gtk_radio_button_get_group(GTK_RADIO_BUTTON(rbutton)); |
177 |
186 |
178 if(rgroup) { |
187 if(rgroup) { |
179 rgroup->obj = rg; |
188 rgroup->obj = rg; |
180 rgroup->get = ui_radiobutton_get; |
189 rgroup->get = ui_radiobutton_get; |
201 |
210 |
202 UiContainer *ct = uic_get_current_container(obj); |
211 UiContainer *ct = uic_get_current_container(obj); |
203 ct->add(ct, rbutton, FALSE); |
212 ct->add(ct, rbutton, FALSE); |
204 |
213 |
205 return rbutton; |
214 return rbutton; |
206 } |
|
207 |
|
208 UIWIDGET ui_radiobutton_deprecated(UiObject *obj, char *label, UiInteger *rgroup) { |
|
209 UiVar *var = NULL; |
|
210 if(rgroup) { |
|
211 var = malloc(sizeof(UiVar)); |
|
212 var->value = rgroup; |
|
213 var->type = UI_VAR_SPECIAL; |
|
214 } |
|
215 return ui_radiobutton_var(obj, label, var); |
|
216 } |
|
217 |
|
218 UIWIDGET ui_radiobutton_nv(UiObject *obj, char *label, char *varname) { |
|
219 UiVar *var = uic_create_var(obj->ctx, varname, UI_VAR_INTEGER); |
|
220 return ui_radiobutton_var(obj, label, var); |
|
221 } |
215 } |
222 |
216 |
223 void ui_radio_obs(GtkToggleToolButton *widget, UiVarEventData *event) { |
217 void ui_radio_obs(GtkToggleToolButton *widget, UiVarEventData *event) { |
224 UiInteger *i = event->var->value; |
218 UiInteger *i = event->var->value; |
225 |
219 |