# HG changeset patch # User Olaf Wintermann <olaf.wintermann@gmail.com> # Date 1741383705 -3600 # Node ID b045c70d7c0256ebea94d98a0b9327c0e3e32ebd # Parent f74d46ffaca12c5f6c11aa415083238baeeb47ce implement splitpane initial_position (GTK) diff -r f74d46ffaca1 -r b045c70d7c02 ui/gtk/container.c --- a/ui/gtk/container.c Fri Mar 07 22:33:38 2025 +0100 +++ b/ui/gtk/container.c Fri Mar 07 22:41:45 2025 +0100 @@ -1030,7 +1030,7 @@ int max = args.max_panes == 0 ? 2 : args.max_panes; UiObject *newobj = uic_object_new(obj, pane0); - newobj->container = ui_splitpane_container(obj, pane0, orientation, max); + newobj->container = ui_splitpane_container(obj, pane0, orientation, max, args.initial_position); uic_obj_add(obj, newobj); g_object_set_data(G_OBJECT(pane0), "ui_splitpane", newobj->container); @@ -1046,13 +1046,14 @@ return splitpane_create(obj, UI_VERTICAL, args); } -UiContainer* ui_splitpane_container(UiObject *obj, GtkWidget *pane, UiOrientation orientation, int max) { +UiContainer* ui_splitpane_container(UiObject *obj, GtkWidget *pane, UiOrientation orientation, int max, int init) { UiSplitPaneContainer *ct = ui_calloc(obj->ctx, 1, sizeof(UiSplitPaneContainer)); ct->container.widget = pane; ct->container.add = ui_splitpane_container_add; ct->current_pane = pane; ct->orientation = orientation; ct->max = max; + ct->initial_position = init; ct->children = cxArrayListCreateSimple(CX_STORE_POINTERS, 4); return (UiContainer*)ct; } @@ -1069,6 +1070,9 @@ if(s->pos == 0) { PANED_SET_CHILD1(s->current_pane, widget); + if(s->initial_position > 0) { + gtk_paned_set_position(GTK_PANED(s->current_pane), s->initial_position); + } s->pos++; s->nchildren++; } else { diff -r f74d46ffaca1 -r b045c70d7c02 ui/gtk/container.h --- a/ui/gtk/container.h Fri Mar 07 22:33:38 2025 +0100 +++ b/ui/gtk/container.h Fri Mar 07 22:41:45 2025 +0100 @@ -134,6 +134,7 @@ int pos; int max; int nchildren; + int initial_position; } UiSplitPaneContainer; typedef struct UiHeaderbarContainer { @@ -200,7 +201,7 @@ UiContainer* ui_tabview_container(UiObject *obj, GtkWidget *tabview); void ui_tabview_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill); -UiContainer* ui_splitpane_container(UiObject *obj, GtkWidget *pane, UiOrientation orientation, int max); +UiContainer* ui_splitpane_container(UiObject *obj, GtkWidget *pane, UiOrientation orientation, int max, int init); void ui_splitpane_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);