ui/common/context.c

changeset 1131
5e9bc6428bac
parent 1097
d44c895e9ee9
equal deleted inserted replaced
1130:f0def0c24ae6 1131:5e9bc6428bac
95 handler.destructor = func; 95 handler.destructor = func;
96 handler.data = data; 96 handler.data = data;
97 cxListAdd(ctx->destroy_handler, &handler); 97 cxListAdd(ctx->destroy_handler, &handler);
98 } 98 }
99 99
100 void uic_context_remove_destructor(UiContext *ctx, void *data) {
101 CxIterator i = cxListIterator(ctx->destroy_handler);
102 cx_foreach(UiDestroyHandler *, handler, i) {
103 if(handler->data == data) {
104 cxIteratorFlagRemoval(i);
105 }
106 }
107 }
108
100 void uic_context_prepare_close(UiContext *ctx) { 109 void uic_context_prepare_close(UiContext *ctx) {
101 cxListClear(ctx->states); 110 cxListClear(ctx->states);
102 cxListClear(ctx->state_widgets); 111 cxListClear(ctx->state_widgets);
103 } 112 }
104 113
731 void ui_reg_destructor(UiContext *ctx, void *data, ui_destructor_func destr) { 740 void ui_reg_destructor(UiContext *ctx, void *data, ui_destructor_func destr) {
732 //cxMempoolRegister(ctx->mp, data, (cx_destructor_func)destr); 741 //cxMempoolRegister(ctx->mp, data, (cx_destructor_func)destr);
733 uic_context_add_destructor(ctx, destr, data); 742 uic_context_add_destructor(ctx, destr, data);
734 } 743 }
735 744
745 void ui_remove_destructor(UiContext *ctx, void *data) {
746 uic_context_remove_destructor(ctx, data);
747 }
748
736 void ui_set_destructor(void *mem, ui_destructor_func destr) { 749 void ui_set_destructor(void *mem, ui_destructor_func destr) {
737 cxMempoolSetDestructor(mem, (cx_destructor_func)destr); 750 cxMempoolSetDestructor(mem, (cx_destructor_func)destr);
738 } 751 }
739 752
740 void ui_var_set_int(UiContext *ctx, const char *name, int64_t value) { 753 void ui_var_set_int(UiContext *ctx, const char *name, int64_t value) {

mercurial