simplify gtk3/4 code in create_window

Tue, 16 Dec 2025 17:48:14 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 16 Dec 2025 17:48:14 +0100
changeset 1013
5d8822279684
parent 1012
f2b535f6e597
child 1014
83c83a7aa552

simplify gtk3/4 code in create_window

ui/gtk/window.c file | annotate | diff | comparison | revisions
--- a/ui/gtk/window.c	Tue Dec 16 17:42:24 2025 +0100
+++ b/ui/gtk/window.c	Tue Dec 16 17:48:14 2025 +0100
@@ -294,45 +294,27 @@
     if(!simple) {
         ui_fill_headerbar(obj, headerbar_sidebar, headerbar_main, headerbar_right);
     }
-#elif GTK_MAJOR_VERSION >= 4
-    GtkWidget *content_box = ui_gtk_vbox_new(0);
-    WINDOW_SET_CONTENT(obj->widget, vbox);
+#else
     if(!simple) {
+        // menu
         if(uic_get_menu_list()) {
             GtkWidget *mb = ui_create_menubar(obj);
             if(mb) {
                 BOX_ADD(vbox, mb);
             }
         }
-    }
-    if(sidebar) {
-        GtkWidget *paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
-        GtkWidget *sidebar_vbox = ui_gtk_vbox_new(0);
-        gtk_paned_set_start_child(GTK_PANED(paned), sidebar_vbox);
-        gtk_paned_set_end_child(GTK_PANED(paned), content_box);
-        BOX_ADD_EXPAND(GTK_BOX(vbox), paned);
-        g_object_set_data(G_OBJECT(obj->widget), "ui_sidebar", sidebar_vbox);
-    } else {
-        BOX_ADD_EXPAND(GTK_BOX(vbox), content_box);
-    }
-#else
-    if(!simple) {
-        // menu
-        if(uic_get_menu_list()) {
-            GtkWidget *mb = ui_create_menubar(obj);
-            if(mb) {
-                gtk_box_pack_start(GTK_BOX(vbox), mb, FALSE, FALSE, 0);
-            }
-        }
 
         // toolbar
+#if GTK_MAJOR_VERSION >= 4
+        // TODO: gtk4 toolbar
+#else
         if(uic_toolbar_isenabled()) {
             GtkWidget *tb = ui_create_toolbar(obj);
             if(tb) {
-                gtk_box_pack_start(GTK_BOX(vbox), tb, FALSE, FALSE, 0);
+                BOX_ADD(vbox, tb);
             }
         }
-        
+#endif
         //GtkWidget *hb = ui_create_headerbar(obj);
         //gtk_window_set_titlebar(GTK_WINDOW(obj->widget), hb);
     }
@@ -343,7 +325,7 @@
         GtkWidget *paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
         if(sidebar) {
             GtkWidget *sidebar_vbox = ui_gtk_vbox_new(0);
-            gtk_paned_add1(GTK_PANED(paned), sidebar_vbox);
+            PANED_SET_CHILD1(paned, sidebar_vbox);
             g_object_set_data(G_OBJECT(obj->widget), "ui_sidebar", sidebar_vbox);
             gtk_paned_set_position(GTK_PANED(paned), 200);
         }
@@ -351,17 +333,17 @@
         if(splitview) {
             GtkWidget *content_paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
             gtk_paned_set_position(GTK_PANED(content_paned), splitview_pos);
-            gtk_paned_add2(GTK_PANED(paned), content_paned);
+            PANED_SET_CHILD2(paned, content_paned);
             
             GtkWidget *right_content_box = ui_gtk_vbox_new(0);
-            gtk_paned_add1(GTK_PANED(content_paned), content_box);
-            gtk_paned_add2(GTK_PANED(content_paned), right_content_box);
+            PANED_SET_CHILD1(content_paned, content_box);
+            PANED_SET_CHILD2(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);
+            PANED_SET_CHILD2(paned, content_box);
         }
         
         BOX_ADD_EXPAND(GTK_BOX(vbox), paned);

mercurial