ui/common/context.c

changeset 786
150a1180f7ec
parent 775
c39e71be2e18
child 793
f33f05cd0548
equal deleted inserted replaced
785:b943e3d618f0 786:150a1180f7ec
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 }

mercurial