ui/gtk/container.h

changeset 51
e324291ca9f8
parent 44
473954dc6b74
--- a/ui/gtk/container.h	Sun Oct 06 18:43:06 2024 +0200
+++ b/ui/gtk/container.h	Sun Oct 20 21:24:13 2024 +0200
@@ -33,6 +33,8 @@
 #include "../ui/container.h"
 #include <string.h>
 
+#include <cx/allocator.h>
+
 #ifdef	__cplusplus
 extern "C" {
 #endif
@@ -92,6 +94,7 @@
 #endif
 } UiGridContainer;
 
+/*
 typedef struct UiPanedContainer {
     UiContainer container;
     GtkWidget *current_pane;
@@ -99,11 +102,35 @@
     int max;
     int cur;
 } UiPanedContainer;
+*/
 
 typedef struct UiTabViewContainer {
     UiContainer container;
 } UiTabViewContainer;
 
+typedef void (*ui_select_tab_func)(UIWIDGET widget, int tab);
+typedef void (*ui_add_tab_func)(UIWIDGET widget, int index, const char *name, UIWIDGET child);
+
+typedef struct UiGtkTabView {
+    UiObject *obj;
+    GtkWidget *widget;
+    ui_select_tab_func select_tab;
+    ui_select_tab_func remove_tab;
+    ui_add_tab_func add_tab;
+    UiSubContainerType subcontainer;
+    int margin;
+    int spacing;
+    int columnspacing;
+    int rowspacing;
+} UiGtkTabView;
+
+typedef struct UiHeaderbarContainer {
+    UiContainer container;
+    GtkWidget *centerbox;
+    int part;
+    UiHeaderbarAlternative alternative; /* only used by fallback headerbar */
+} UiHeaderbarContainer;
+
 GtkWidget* ui_gtk_vbox_new(int spacing);
 GtkWidget* ui_gtk_hbox_new(int spacing);
 
@@ -129,10 +156,17 @@
 void ui_split_container_add1(UiContainer *ct, GtkWidget *widget, UiBool fill);
 void ui_split_container_add2(UiContainer *ct, GtkWidget *widget, UiBool fill);
 
+UiGtkTabView* ui_widget_get_tabview_data(UIWIDGET tabview);
 
-UiObject* ui_add_document_tab(UiDocumentView *view);
-void ui_tab_set_document(UiContext *ctx, void *document);
-void ui_tab_detach_document(UiContext *ctx);
+void ui_gtk_notebook_select_tab(GtkWidget *widget, int tab);
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+UiContainer* ui_headerbar_container(UiObject *obj, GtkWidget *headerbar);
+void ui_headerbar_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
+#endif
+
+UiContainer* ui_headerbar_fallback_container(UiObject *obj, GtkWidget *headerbar);
+void ui_headerbar_fallback_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
 
 #ifdef	__cplusplus
 }

mercurial