From: Olaf Wintermann Date: Fri, 7 Mar 2025 21:39:14 +0000 (+0100) Subject: fix splitpane initial position X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=0a0443b5aff0cf88974ddf6b951481dd2301146c;p=note.git fix splitpane initial position --- diff --git a/application/window.c b/application/window.c index d6faaf3..10a1d48 100644 --- a/application/window.c +++ b/application/window.c @@ -53,7 +53,7 @@ void window_create() { } } - ui_hsplitpane_w(obj, wdata->splitpane, .initial_position = 200) { + ui_hsplitpane_w(obj, wdata->splitpane, .initial_position = 500) { // splitpane left: table UiModel* model = ui_model(obj->ctx, UI_STRING, "Name", UI_STRING_FREE, "Last Modified", -1); model->columnsize[0] = -1; diff --git a/ui/gtk/container.c b/ui/gtk/container.c index 74d1f6b..1508bc0 100644 --- a/ui/gtk/container.c +++ b/ui/gtk/container.c @@ -1030,7 +1030,7 @@ static UIWIDGET splitpane_create(UiObject *obj, UiOrientation orientation, UiSpl 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 @@ UIWIDGET ui_vsplitpane_create(UiObject *obj, UiSplitPaneArgs args) { 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 @@ void ui_splitpane_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill) 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 --git a/ui/gtk/container.h b/ui/gtk/container.h index fcb5a54..e7734ad 100644 --- a/ui/gtk/container.h +++ b/ui/gtk/container.h @@ -134,6 +134,7 @@ typedef struct UiSplitPaneContainer { int pos; int max; int nchildren; + int initial_position; } UiSplitPaneContainer; typedef struct UiHeaderbarContainer { @@ -200,7 +201,7 @@ void ui_scrolledwindow_container_add(UiContainer *ct, GtkWidget *widget, UiBool 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);