| 85 |
85 |
| 86 UiObject* ui_context_obj(UiContext *ctx) { |
86 UiObject* ui_context_obj(UiContext *ctx) { |
| 87 return ctx->obj; |
87 return ctx->obj; |
| 88 } |
88 } |
| 89 |
89 |
| 90 void ui_document_onattach(void *doc, ui_callback cb, void *data) { |
90 void ui_document_onattach(void *doc, ui_callback cb, void *data) { |
| 91 UiContext *ctx = ui_document_context(doc); |
91 UiContext *ctx = ui_document_context(doc); |
| 92 ctx->onattach = cb; |
92 ctx->onattach = cb; |
| 93 ctx->onattachdata = data; |
93 ctx->onattachdata = data; |
| 94 } |
94 } |
| 95 |
95 |
| 96 void ui_document_ondetach(void *doc, ui_callback cb, void *data) { |
96 void ui_document_ondetach(void *doc, ui_callback cb, void *data) { |
| 97 UiContext *ctx = ui_document_context(doc); |
97 UiContext *ctx = ui_document_context(doc); |
| 98 ctx->ondetach = cb; |
98 ctx->ondetach = cb; |
| 99 ctx->ondetachdata = data; |
99 ctx->ondetachdata = data; |
| 100 } |
100 } |
| |
101 |
| |
102 static void attachment_action_callback(UiEvent *event, void *action) { |
| |
103 if(event->document) { |
| |
104 UiContext *ctx = ui_document_context(event->document); |
| |
105 ui_call_action_on(ctx, action); |
| |
106 } |
| |
107 } |
| |
108 |
| |
109 void ui_document_onattach_action(void *doc, const char *action) { |
| |
110 UiContext *ctx = ui_document_context(doc); |
| |
111 ctx->onattach = attachment_action_callback; |
| |
112 ctx->onattachdata = ui_strdup(ctx, action); |
| |
113 } |
| |
114 |
| |
115 void ui_document_ondetach_action(void *doc, const char *action) { |
| |
116 UiContext *ctx = ui_document_context(doc); |
| |
117 ctx->ondetach = attachment_action_callback; |
| |
118 ctx->ondetachdata = ui_strdup(ctx, action); |
| |
119 } |
| |
120 |