ui/common/context.c

changeset 113
dde28a806552
parent 112
c3f2f16fa4b8
equal deleted inserted replaced
112:c3f2f16fa4b8 113:dde28a806552
547 uic_add_group_widget(ctx, widget, enable, groups); 547 uic_add_group_widget(ctx, widget, enable, groups);
548 548
549 cxListFree(groups); 549 cxListFree(groups);
550 } 550 }
551 551
552 void ui_widget_set_groups2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, int *groups, int ngroups) { 552 void ui_widget_set_groups2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, const int *groups, int ngroups) {
553 if(enable == NULL) { 553 if(enable == NULL) {
554 enable = (ui_enablefunc)ui_set_enabled; 554 enable = (ui_enablefunc)ui_set_enabled;
555 } 555 }
556 CxList *ls = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), ngroups); 556 CxList *ls = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), ngroups);
557 for(int i=0;i<ngroups;i++) { 557 for(int i=0;i<ngroups;i++) {
559 } 559 }
560 uic_add_group_widget(ctx, widget, enable, ls); 560 uic_add_group_widget(ctx, widget, enable, ls);
561 cxListFree(ls); 561 cxListFree(ls);
562 } 562 }
563 563
564 void ui_widget_set_visibility_states(UiContext *ctx, UIWIDGET widget, int *states, int nstates) { 564 void ui_widget_set_visibility_states(UiContext *ctx, UIWIDGET widget, const int *states, int nstates) {
565 ui_widget_set_groups2(ctx, widget, (ui_enablefunc)ui_set_visible, states, nstates); 565 ui_widget_set_groups2(ctx, widget, (ui_enablefunc)ui_set_visible, states, nstates);
566 } 566 }
567 567
568 size_t uic_group_array_size(const int *groups) { 568 size_t uic_group_array_size(const int *groups) {
569 int i; 569 int i;
620 620
621 void* ui_realloc(UiContext *ctx, void *ptr, size_t size) { 621 void* ui_realloc(UiContext *ctx, void *ptr, size_t size) {
622 return ctx ? cxRealloc(ctx->allocator, ptr, size) : NULL; 622 return ctx ? cxRealloc(ctx->allocator, ptr, size) : NULL;
623 } 623 }
624 624
625 UIEXPORT char* ui_strdup(UiContext *ctx, const char *str) { 625 char* ui_strdup(UiContext *ctx, const char *str) {
626 if(!ctx) { 626 if(!ctx) {
627 return NULL; 627 return NULL;
628 } 628 }
629 cxstring s = cx_str(str); 629 cxstring s = cx_str(str);
630 cxmutstr d = cx_strdup_a(ctx->allocator, s); 630 cxmutstr d = cx_strdup_a(ctx->allocator, s);
631 return d.ptr; 631 return d.ptr;
632 } 632 }
633
634 void ui_reg_destructor(UiContext *ctx, void *data, ui_destructor_func destr) {
635 cxMempoolRegister(ctx->mp, data, (cx_destructor_func)destr);
636 }
637
638 void ui_set_destructor(void *mem, ui_destructor_func destr) {
639 cxMempoolSetDestructor(mem, (cx_destructor_func)destr);
640 }

mercurial