Sat, 06 Dec 2025 18:04:06 +0100
implement splitview window for gtk3
| ui/gtk/window.c | file | annotate | diff | comparison | revisions |
--- a/ui/gtk/window.c Sat Dec 06 15:24:13 2025 +0100 +++ b/ui/gtk/window.c Sat Dec 06 18:04:06 2025 +0100 @@ -337,14 +337,31 @@ GtkWidget *content_box = ui_gtk_vbox_new(0); WINDOW_SET_CONTENT(obj->widget, vbox); - if(sidebar) { + if(sidebar || splitview) { GtkWidget *paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); - GtkWidget *sidebar_vbox = ui_gtk_vbox_new(0); - gtk_paned_add1(GTK_PANED(paned), sidebar_vbox); - gtk_paned_add2(GTK_PANED(paned), content_box); + if(sidebar) { + GtkWidget *sidebar_vbox = ui_gtk_vbox_new(0); + gtk_paned_add1(GTK_PANED(paned), sidebar_vbox); + g_object_set_data(G_OBJECT(obj->widget), "ui_sidebar", sidebar_vbox); + gtk_paned_set_position(GTK_PANED(paned), 200); + } + + if(splitview) { + GtkWidget *content_paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); + gtk_paned_add2(GTK_PANED(paned), content_paned); + + GtkWidget *right_content_box = ui_gtk_vbox_new(0); + gtk_paned_add1(GTK_PANED(content_paned), content_box); + gtk_paned_add1(GTK_PANED(content_paned), right_content_box); + + g_object_set_data(G_OBJECT(obj->widget), "ui_window_splitview", content_paned); + g_object_set_data(G_OBJECT(obj->widget), "ui_left_panel", content_box); + g_object_set_data(G_OBJECT(obj->widget), "ui_right_panel", right_content_box); + } else { + gtk_paned_add2(GTK_PANED(paned), content_box); + } + BOX_ADD_EXPAND(GTK_BOX(vbox), paned); - g_object_set_data(G_OBJECT(obj->widget), "ui_sidebar", sidebar_vbox); - gtk_paned_set_position (GTK_PANED(paned), 200); } else { BOX_ADD_EXPAND(GTK_BOX(vbox), content_box); }