ui/gtk/button.c

branch
newapi
changeset 258
a252f68c665a
parent 257
a334f9ebc5d0
child 259
8cce275d2847
equal deleted inserted replaced
257:a334f9ebc5d0 258:a252f68c665a
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

mercurial