ui/gtk/container.c

changeset 115
e57ca2747782
parent 112
c3f2f16fa4b8
--- a/ui/gtk/container.c	Sun Dec 07 20:00:33 2025 +0100
+++ b/ui/gtk/container.c	Sat Dec 13 15:58:58 2025 +0100
@@ -112,6 +112,21 @@
     return add;
 }
 
+/* -------------------- Custom Container -------------------- */
+
+void ui_custom_container_add(UiContainerPrivate *ct, GtkWidget *widget, UiLayout *layout) {
+    UiCustomContainer *custom = (UiCustomContainer*)ct;
+    custom->add(custom->obj, ct->widget, widget, custom->userdata);
+}
+
+void ui_custom_container_create(UiObject *obj, UIWIDGET widget, ui_addwidget_func add_child, void *userdata) {
+    UiCustomContainer *container = cxZalloc(obj->ctx->allocator, sizeof(UiCustomContainer));
+    container->container.add = ui_custom_container_add;
+    container->container.widget = widget;
+    container->add = add_child;
+    container->userdata = userdata;
+    uic_object_push_container(obj, (UiContainerX*)container);
+}
 
 /* -------------------- Box Container -------------------- */
 UiContainerX* ui_box_container(UiObject *obj, GtkWidget *box, UiSubContainerType type) {
@@ -985,6 +1000,8 @@
             GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
             hb->centerbox = box;
             UI_HEADERBAR_SET_TITLE_WIDGET(ct->widget, box);
+            UI_HEADERBAR_SHOW_TITLE_WIDGET(ct->widget, TRUE);
+            UI_HEADERBAR_SETTINGS(ct->widget);
         }
         BOX_ADD(hb->centerbox, widget);
     }
@@ -1140,6 +1157,7 @@
 
 UiSplitPane* ui_create_splitpane_data(GtkWidget *pane, UiOrientation orientation, int max, int init) {
     UiSplitPane *ct = malloc(sizeof(UiSplitPane));
+    memset(ct, 0, sizeof(UiSplitPane));
     ct->current_pane = pane;
     ct->orientation = orientation;
     ct->max = max;

mercurial