178 #else |
178 #else |
179 return ui_checkbox_create(obj, args); |
179 return ui_checkbox_create(obj, args); |
180 #endif |
180 #endif |
181 } |
181 } |
182 |
182 |
183 |
183 #if GTK_MAJOR_VERSION >= 4 |
184 |
184 #define RADIO_GROUP GtkCheckButton |
185 |
185 #define RADIOBUTTON_NEW(group, label) gtk_check_button_new_with_label(label) |
186 |
186 #define RADIOBUTTON_SET_GROUP(button, group) |
|
187 #define RADIOBUTTON_GET_GROUP(button) GTK_CHECK_BUTTON(button) |
|
188 #else |
|
189 #define RADIO_GROUP GSList |
|
190 #define RADIOBUTTON_NEW(group, label) gtk_radio_button_new_with_label(group, label) |
|
191 #define RADIOBUTTON_SET_GROUP(button, group) /* noop */ |
|
192 #define RADIOBUTTON_GET_GROUP(button) gtk_radio_button_get_group(GTK_RADIO_BUTTON(button)) |
|
193 #endif |
187 |
194 |
188 UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs args) { |
195 UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs args) { |
189 UiObject* current = uic_current_obj(obj); |
196 UiObject* current = uic_current_obj(obj); |
190 |
197 |
191 GSList *rg = NULL; |
198 RADIO_GROUP *rg = NULL; |
192 UiInteger *rgroup; |
199 UiInteger *rgroup; |
193 |
200 |
194 UiVar* var = NULL; |
201 UiVar* var = NULL; |
195 if (args.value) { |
202 if (args.value) { |
196 var = uic_create_value_var(current->ctx, args.value); |
203 var = uic_create_value_var(current->ctx, args.value); |
242 ct->add(ct, rbutton, FALSE); |
249 ct->add(ct, rbutton, FALSE); |
243 |
250 |
244 return rbutton; |
251 return rbutton; |
245 } |
252 } |
246 |
253 |
247 void ui_radio_obs(GtkToggleToolButton *widget, UiVarEventData *event) { |
254 void ui_radio_obs(GtkToggleButton *widget, UiVarEventData *event) { |
248 UiInteger *i = event->var->value; |
255 UiInteger *i = event->var->value; |
249 |
256 |
250 UiEvent e; |
257 UiEvent e; |
251 e.obj = event->obj; |
258 e.obj = event->obj; |
252 e.window = event->obj->window; |
259 e.window = event->obj->window; |