Sun, 07 Dec 2025 11:59:21 +0100
add single-document-mode to UiContext
| ui/common/context.c | file | annotate | diff | comparison | revisions | |
| ui/common/context.h | file | annotate | diff | comparison | revisions | |
| ui/ui/toolkit.h | file | annotate | diff | comparison | revisions |
--- a/ui/common/context.c Sun Dec 07 11:51:01 2025 +0100 +++ b/ui/common/context.c Sun Dec 07 11:59:21 2025 +0100 @@ -97,6 +97,12 @@ } void uic_context_attach_document(UiContext *ctx, void *document) { + if(ctx->single_document_mode) { + if(ctx->document) { + uic_context_detach_document(ctx, ctx->document); + } + } + cxListAdd(ctx->documents, document); ctx->document = document; @@ -485,6 +491,14 @@ // public API +void* ui_context_get_document(UiContext *ctx) { + return ctx->document; +} + +void ui_context_single_attachment_mode(UiContext *ctx, UiBool enable) { + ctx->single_document_mode = enable; +} + void ui_attach_document(UiContext *ctx, void *document) { uic_context_attach_document(ctx, document); }
--- a/ui/common/context.h Sun Dec 07 11:51:01 2025 +0100 +++ b/ui/common/context.h Sun Dec 07 11:59:21 2025 +0100 @@ -84,8 +84,10 @@ GtkAccelGroup *accel_group; #endif #endif - - + + // allow only one document to be attached + // attaching a document will automatically detach the current document + UiBool single_document_mode; ui_callback close_callback; void *close_data;
--- a/ui/ui/toolkit.h Sun Dec 07 11:51:01 2025 +0100 +++ b/ui/ui/toolkit.h Sun Dec 07 11:59:21 2025 +0100 @@ -565,6 +565,8 @@ UIEXPORT UiContext* ui_document_context(void *doc); +UIEXPORT void* ui_context_get_document(UiContext *ctx); +UIEXPORT void ui_context_single_attachment_mode(UiContext *ctx, UiBool enable); UIEXPORT void ui_attach_document(UiContext *ctx, void *document); UIEXPORT void ui_detach_document(UiContext *ctx, void *document);