# HG changeset patch # User Olaf Wintermann # Date 1760901441 -7200 # Node ID 4bed9458d355f003021e88f461d6aa090a7850d4 # Parent 9cf0c29dde27fa568c0aacf68429af320a96b7ea add ui_splitview_window_set_visible (GTK) diff -r 9cf0c29dde27 -r 4bed9458d355 ui/gtk/window.c --- a/ui/gtk/window.c Sun Oct 19 21:04:49 2025 +0200 +++ b/ui/gtk/window.c Sun Oct 19 21:17:21 2025 +0200 @@ -435,6 +435,23 @@ splitview_window_use_prop = enable; } +UIEXPORT void ui_splitview_window_set_visible(UiObject *obj, int pane, UiBool visible) { + GtkWidget *splitview = g_object_get_data(G_OBJECT(obj->widget), "ui_window_splitview"); + GtkWidget *panel = NULL; + if(pane == 0) { + panel = g_object_get_data(G_OBJECT(obj->widget), "ui_left_panel"); + } else if(pane == 1) { + panel = g_object_get_data(G_OBJECT(obj->widget), "ui_right_panel"); + } + + if(panel == NULL) { + fprintf(stderr, "Error: obj is not a splitview window or invalid pane %d specified\n", pane); + return; + } + + gtk_widget_set_visible(panel, visible); +} + #ifdef UI_LIBADWAITA static void dialog_response(AdwAlertDialog *self, gchar *response, UiEventData *data) { diff -r 9cf0c29dde27 -r 4bed9458d355 ui/ui/window.h --- a/ui/ui/window.h Sun Oct 19 21:04:49 2025 +0200 +++ b/ui/ui/window.h Sun Oct 19 21:17:21 2025 +0200 @@ -88,6 +88,7 @@ UIEXPORT int ui_splitview_window_get_pos(UiObject *obj); UIEXPORT void ui_splitview_window_set_default_pos(int pos); UIEXPORT void ui_splitview_window_use_property(UiBool enable); +UIEXPORT void ui_splitview_window_set_visible(UiObject *obj, int pane, UiBool visible); #define ui_dialog(parent, ...) ui_dialog_create(parent, &(UiDialogArgs){ __VA_ARGS__ } )