| 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) { |