ui/common/document.c

changeset 1196
296b8b6eaae6
parent 1195
6ec3c71ba298
--- a/ui/common/document.c	Sat Jun 13 17:08:09 2026 +0200
+++ b/ui/common/document.c	Sat Jun 13 17:19:59 2026 +0200
@@ -87,14 +87,34 @@
     return ctx->obj;
 }
 
-void  ui_document_onattach(void *doc, ui_callback cb, void *data) {
+void ui_document_onattach(void *doc, ui_callback cb, void *data) {
     UiContext *ctx = ui_document_context(doc);
     ctx->onattach = cb;
     ctx->onattachdata = data;
 }
 
-void  ui_document_ondetach(void *doc, ui_callback cb, void *data) {
+void ui_document_ondetach(void *doc, ui_callback cb, void *data) {
     UiContext *ctx = ui_document_context(doc);
     ctx->ondetach = cb;
     ctx->ondetachdata = data;
 }
+
+static void attachment_action_callback(UiEvent *event, void *action) {
+    if(event->document) {
+        UiContext *ctx = ui_document_context(event->document);
+        ui_call_action_on(ctx, action);
+    }
+}
+
+void ui_document_onattach_action(void *doc, const char *action) {
+    UiContext *ctx = ui_document_context(doc);
+    ctx->onattach = attachment_action_callback;
+    ctx->onattachdata = ui_strdup(ctx, action);
+}
+
+void ui_document_ondetach_action(void *doc, const char *action) {
+    UiContext *ctx = ui_document_context(doc);
+    ctx->ondetach = attachment_action_callback;
+    ctx->ondetachdata = ui_strdup(ctx, action);
+}
+

mercurial