| 505 } |
505 } |
| 506 } |
506 } |
| 507 } |
507 } |
| 508 |
508 |
| 509 static void ui_action_set_state(UiInteger *i, int64_t value) { |
509 static void ui_action_set_state(UiInteger *i, int64_t value) { |
| 510 |
510 UiMenuRadioGroup *group = i->obj; |
| |
511 i->value = value; |
| |
512 char buf[32]; |
| |
513 snprintf(buf, 32, "%d", (int)value); |
| |
514 GVariant *state = g_variant_new_string(buf); |
| |
515 g_action_change_state(G_ACTION(group->action), state); |
| 511 } |
516 } |
| 512 |
517 |
| 513 static int64_t ui_action_get_state(UiInteger *i) { |
518 static int64_t ui_action_get_state(UiInteger *i) { |
| 514 return 0; |
519 return i->value; |
| 515 } |
520 } |
| 516 |
521 |
| 517 static UiMenuRadioGroup* create_radio_group(UiObject *obj, UiMenuRadioItem *item, GSimpleAction *action) { |
522 static UiMenuRadioGroup* create_radio_group(UiObject *obj, UiMenuRadioItem *item, GSimpleAction *action) { |
| 518 UiMenuRadioGroup *group = cxZalloc(obj->ctx->allocator, sizeof(UiMenuRadioGroup)); |
523 UiMenuRadioGroup *group = cxZalloc(obj->ctx->allocator, sizeof(UiMenuRadioGroup)); |
| 519 group->callbacks = cxArrayListCreate(obj->ctx->allocator, NULL, sizeof(UiCallbackData), 8); |
524 group->callbacks = cxArrayListCreate(obj->ctx->allocator, NULL, sizeof(UiCallbackData), 8); |
| 562 event.window = event.obj->window; |
567 event.window = event.obj->window; |
| 563 event.document = event.obj->ctx->document; |
568 event.document = event.obj->ctx->document; |
| 564 event.eventdata = NULL; |
569 event.eventdata = NULL; |
| 565 event.eventdatatype = 0; |
570 event.eventdatatype = 0; |
| 566 event.intval = v; |
571 event.intval = v; |
| 567 event.set = 0; |
572 event.set = ui_get_setop(); |
| 568 |
573 |
| 569 CxIterator iter = cxListIterator(group->callbacks); |
574 CxIterator iter = cxListIterator(group->callbacks); |
| 570 cx_foreach(UiCallbackData *, cb, iter) { |
575 cx_foreach(UiCallbackData *, cb, iter) { |
| 571 if(cb->callback) { |
576 if(cb->callback) { |
| 572 cb->callback(&event, cb->userdata); |
577 cb->callback(&event, cb->userdata); |