| 523 } |
523 } |
| 524 } |
524 } |
| 525 } |
525 } |
| 526 |
526 |
| 527 static void stateful_action_notify_group(UiMenuRadioGroup *group, UiInteger *i) { |
527 static void stateful_action_notify_group(UiMenuRadioGroup *group, UiInteger *i) { |
| |
528 int intval = ui_get(i); |
| |
529 |
| 528 UiEvent event; |
530 UiEvent event; |
| 529 event.obj = group->obj; |
531 event.obj = group->obj; |
| 530 event.window = event.obj->window; |
532 event.window = event.obj->window; |
| 531 event.document = event.obj->ctx->document; |
533 event.document = event.obj->ctx->document; |
| 532 event.eventdata = NULL; |
534 event.eventdata = NULL; |
| 533 event.eventdatatype = 0; |
535 event.eventdatatype = 0; |
| 534 event.intval = (int)i->value; |
|
| 535 event.set = ui_get_setop(); |
536 event.set = ui_get_setop(); |
| 536 |
537 |
| 537 CxIterator iter = cxListIterator(group->callbacks); |
538 CxIterator iter = cxListIterator(group->callbacks); |
| 538 cx_foreach(UiCallbackData *, cb, iter) { |
539 cx_foreach(UiCallbackData *, cb, iter) { |
| |
540 event.intval = intval == iter.index; |
| 539 if(cb->callback) { |
541 if(cb->callback) { |
| 540 cb->callback(&event, cb->userdata); |
542 cb->callback(&event, cb->userdata); |
| 541 } |
543 } |
| 542 } |
544 } |
| 543 |
545 |
| |
546 event.intval = intval; |
| 544 UiObserver *obs = i->observers; |
547 UiObserver *obs = i->observers; |
| 545 while(obs) { |
548 while(obs) { |
| 546 if(obs->callback) { |
549 if(obs->callback) { |
| 547 obs->callback(&event, obs->data); |
550 obs->callback(&event, obs->data); |
| 548 } |
551 } |