Mon, 15 Sep 2025 15:58:18 +0200
implement splitpane value/varname args (GTK)
| ui/gtk/container.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/container.h | file | annotate | diff | comparison | revisions |
--- a/ui/gtk/container.c Sun Sep 14 18:32:26 2025 +0200 +++ b/ui/gtk/container.c Mon Sep 15 15:58:18 2025 +0200 @@ -1085,6 +1085,17 @@ g_object_set_data(G_OBJECT(pane0), "ui_splitpane", newobj->container); + UiVar *var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_INTEGER); + if(var) { + UiSplitPaneContainer *s = (UiSplitPaneContainer*)newobj->container; + UiInteger *i = var->value; + s->initial_position = i->value; + + i->obj = s; + i->get = ui_splitpane_get; + i->set = ui_splitpane_set; + } + return pane0; } @@ -1140,6 +1151,18 @@ } } +int64_t ui_splitpane_get(UiInteger *i) { + UiSplitPaneContainer *s = i->obj; + i->value = gtk_paned_get_position(GTK_PANED(s->container.widget)); + return i->value; +} + +void ui_splitpane_set(UiInteger *i, int64_t value) { + UiSplitPaneContainer *s = i->obj; + i->value = value; + gtk_paned_set_position(GTK_PANED(s->container.widget), (int)value); +} + UIEXPORT void ui_splitpane_set_visible(UIWIDGET splitpane, int child_index, UiBool visible) { UiSplitPaneContainer *ct = g_object_get_data(G_OBJECT(splitpane), "ui_splitpane"); if(!ct) {
--- a/ui/gtk/container.h Sun Sep 14 18:32:26 2025 +0200 +++ b/ui/gtk/container.h Mon Sep 15 15:58:18 2025 +0200 @@ -197,6 +197,8 @@ UiContainer* ui_splitpane_container(UiObject *obj, GtkWidget *pane, UiOrientation orientation, int max, int init); void ui_splitpane_container_add(UiContainer *ct, GtkWidget *widget); +int64_t ui_splitpane_get(UiInteger *i); +void ui_splitpane_set(UiInteger *i, int64_t value); UiGtkTabView* ui_widget_get_tabview_data(UIWIDGET tabview);