| 540 gw->enable(gw->widget, enable); |
540 gw->enable(gw->widget, enable); |
| 541 } |
541 } |
| 542 } |
542 } |
| 543 |
543 |
| 544 void ui_widget_set_groups(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, ...) { |
544 void ui_widget_set_groups(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, ...) { |
| |
545 if(enable == NULL) { |
| |
546 enable = (ui_enablefunc)ui_set_enabled; |
| |
547 } |
| 545 // get groups |
548 // get groups |
| 546 CxList *groups = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), 16); |
549 CxList *groups = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), 16); |
| 547 va_list ap; |
550 va_list ap; |
| 548 va_start(ap, enable); |
551 va_start(ap, enable); |
| 549 int group; |
552 int group; |
| 555 uic_add_group_widget(ctx, widget, enable, groups); |
558 uic_add_group_widget(ctx, widget, enable, groups); |
| 556 |
559 |
| 557 cxListFree(groups); |
560 cxListFree(groups); |
| 558 } |
561 } |
| 559 |
562 |
| |
563 void ui_widget_set_groups2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, int *groups, int ngroups) { |
| |
564 if(enable == NULL) { |
| |
565 enable = (ui_enablefunc)ui_set_enabled; |
| |
566 } |
| |
567 CxList *ls = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), ngroups); |
| |
568 for(int i=0;i<ngroups;i++) { |
| |
569 cxListAdd(ls, groups+i); |
| |
570 } |
| |
571 uic_add_group_widget(ctx, widget, enable, ls); |
| |
572 cxListFree(ls); |
| |
573 } |
| |
574 |
| |
575 void ui_widget_set_visibility_states(UiContext *ctx, UIWIDGET widget, int *states, int nstates) { |
| |
576 ui_widget_set_groups2(ctx, widget, (ui_enablefunc)ui_set_visible, states, nstates); |
| |
577 } |
| |
578 |
| 560 size_t uic_group_array_size(const int *groups) { |
579 size_t uic_group_array_size(const int *groups) { |
| 561 int i; |
580 int i; |
| 562 for(i=0;groups[i] >= 0;i++) { } |
581 for(i=0;groups[i] >= 0;i++) { } |
| 563 return i; |
582 return i; |
| 564 } |
583 } |