Sat, 27 Dec 2025 22:18:48 +0100
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); }