From 8b1d37dca549d4c451539eda8174bceebb9e41a4 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 23 Dec 2019 14:16:39 -0300 Subject: [PATCH] Adding support for toolbar separators. --- src/include/pw3270/actions.h | 1 + src/objects/actions/view.c | 19 +++++++++++++++++++ src/objects/toolbar/settings.c | 7 ++++++- src/objects/window/header.c | 2 +- 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/include/pw3270/actions.h b/src/include/pw3270/actions.h index 84fbf16..377d3f6 100644 --- a/src/include/pw3270/actions.h +++ b/src/include/pw3270/actions.h @@ -263,6 +263,7 @@ void pw3270_action_list_free(Pw3270ActionList *action_list); void pw3270_action_view_set_actions(GtkWidget *view, Pw3270ActionList *list); void pw3270_action_view_move_selected(GtkWidget *from, GtkWidget *to); + void pw3270_action_view_append(GtkWidget *widget, const gchar *label, GdkPixbuf *pixbuf, const gchar *action_name, gint flags); Pw3270ActionList * pw3270_action_list_move_action(Pw3270ActionList *action_list, const gchar *action_name, GtkWidget *view); diff --git a/src/objects/actions/view.c b/src/objects/actions/view.c index ff3f319..4a71bf5 100644 --- a/src/objects/actions/view.c +++ b/src/objects/actions/view.c @@ -106,6 +106,25 @@ return view; } + void pw3270_action_view_append(GtkWidget *widget, const gchar *label, GdkPixbuf *pixbuf, const gchar *action_name, gint flags) { + + GtkListStore * store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(widget))); + + GtkTreeIter iter; + gtk_list_store_append(store, &iter); + gtk_list_store_set( + store, + &iter, + COLUMN_PIXBUF, pixbuf, + COLUMN_LABEL, label, + COLUMN_ACTION_NAME, action_name, + COLUMN_FLAGS, flags, + -1 + ); + + + } + static void pw3270_action_view_append_element(GtkListStore * store, struct ListElement * element) { size_t ix; diff --git a/src/objects/toolbar/settings.c b/src/objects/toolbar/settings.c index 6d89ae0..6c6b49e 100644 --- a/src/objects/toolbar/settings.c +++ b/src/objects/toolbar/settings.c @@ -59,8 +59,12 @@ // It's an action action_list = pw3270_action_list_move_action(action_list,actions[ix],((ToolbarSettingsPage *) pg)->views[0]); - } + } else { + + // It's a separator + pw3270_action_view_append(((ToolbarSettingsPage *) pg)->views[0], _( "Separator"), NULL, "separator", 2); + } } @@ -68,6 +72,7 @@ // Load available actions. pw3270_action_view_set_actions(((ToolbarSettingsPage *) pg)->views[1], action_list); + pw3270_action_view_append(((ToolbarSettingsPage *) pg)->views[1], _( "Separator"), NULL, "separator", 1); pw3270_action_list_free(action_list); diff --git a/src/objects/window/header.c b/src/objects/window/header.c index 9ad03b6..43d578a 100644 --- a/src/objects/window/header.c +++ b/src/objects/window/header.c @@ -146,7 +146,7 @@ for(item = children;item;item = g_list_next(item)) { - if(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(item->data),"header-position-id") != id)) + if(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(item->data),"header-position-id")) != id) continue; if(sep) -- libgit2 0.21.2