implement remaining toolbar item positions (GTK3)

Sat, 27 Dec 2025 22:18:48 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 27 Dec 2025 22:18:48 +0100
changeset 1028
925a345ea298
parent 1027
9613f7726032
child 1029
0b3b2b650bd7

implement remaining toolbar item positions (GTK3)

ui/gtk/toolbar.c file | annotate | diff | comparison | revisions
ui/gtk/toolbar.h file | annotate | diff | comparison | revisions
ui/gtk/window.c file | annotate | diff | comparison | revisions
--- a/ui/gtk/toolbar.c	Sat Dec 27 22:05:02 2025 +0100
+++ b/ui/gtk/toolbar.c	Sat Dec 27 22:18:48 2025 +0100
@@ -44,7 +44,7 @@
 
 #if UI_GTK2 || UI_GTK3
 
-GtkWidget* ui_create_toolbar(UiObject *obj) {
+GtkWidget* ui_create_toolbar(UiObject *obj, UiBool sidebar) {
     GtkWidget *toolbar = gtk_toolbar_new();
 #ifdef UI_GTK3
     gtk_style_context_add_class(
@@ -56,25 +56,24 @@
     CxList *left_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_LEFT);
     CxList *center_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_CENTER);
     CxList *right_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHT);
+    CxList *sidebar_left = uic_get_toolbar_defaults(UI_TOOLBAR_SIDEBAR_LEFT);
+    CxList *sidebar_right = uic_get_toolbar_defaults(UI_TOOLBAR_SIDEBAR_RIGHT);
+    CxList *rightpanel_left = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHTPANEL_LEFT);
+    CxList *rightpanel_center = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHTPANEL_CENTER);
+    CxList *rightpanel_right = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHTPANEL_RIGHT);
+    
+    if(sidebar) {
+        ui_toolbar_add_items(obj, toolbar, items, sidebar_left);
+        ui_toolbar_add_items(obj, toolbar, items, sidebar_right);
+    }
     
     ui_toolbar_add_items(obj, toolbar, items, left_defaults);
     ui_toolbar_add_items(obj, toolbar, items, center_defaults);
     ui_toolbar_add_items(obj, toolbar, items, right_defaults);
     
-    /*
-    GtkToolbar *tb = GTK_TOOLBAR(toolbar);
-    CxIterator i = cxListIterator(defaults);
-    cx_foreach(char *, def, i) {
-        UiToolItemI *item = cxMapGet(toolbar_items, def);
-        if(item) {
-            item->add_to(tb, item, obj);
-        } else if(!strcmp(def, "@separator")) {
-            gtk_toolbar_insert(tb, gtk_separator_tool_item_new(), -1);
-        } else {
-            fprintf(stderr, "UI Error: Unknown toolbar item: %s\n", def);
-        }
-    }
-    */
+    ui_toolbar_add_items(obj, toolbar, items, rightpanel_left);
+    ui_toolbar_add_items(obj, toolbar, items, rightpanel_center);
+    ui_toolbar_add_items(obj, toolbar, items, rightpanel_right);
     
     return toolbar;
 }
--- a/ui/gtk/toolbar.h	Sat Dec 27 22:05:02 2025 +0100
+++ b/ui/gtk/toolbar.h	Sat Dec 27 22:18:48 2025 +0100
@@ -113,7 +113,7 @@
         void *userdata,
         va_list ap);
 
-GtkWidget* ui_create_toolbar(UiObject *obj);
+GtkWidget* ui_create_toolbar(UiObject *obj, UiBool sidebar);
 
 void ui_toolbar_add_items(UiObject *obj, GtkWidget *toolbar, CxMap *items, CxList *defaults);
 
--- a/ui/gtk/window.c	Sat Dec 27 22:05:02 2025 +0100
+++ b/ui/gtk/window.c	Sat Dec 27 22:18:48 2025 +0100
@@ -309,7 +309,7 @@
         // TODO: gtk4 toolbar
 #else
         if(uic_toolbar_isenabled()) {
-            GtkWidget *tb = ui_create_toolbar(obj);
+            GtkWidget *tb = ui_create_toolbar(obj, sidebar);
             if(tb) {
                 BOX_ADD(vbox, tb);
             }

mercurial