diff --git a/gtk2_ardour/icons/favorite-no.png b/gtk2_ardour/icons/favorite-no.png new file mode 100644 index 0000000000..540b421944 Binary files /dev/null and b/gtk2_ardour/icons/favorite-no.png differ diff --git a/gtk2_ardour/icons/favorite-yes.png b/gtk2_ardour/icons/favorite-yes.png new file mode 100644 index 0000000000..6d9cc44950 Binary files /dev/null and b/gtk2_ardour/icons/favorite-yes.png differ diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc index dbc9dfb608..0fcc70331f 100644 --- a/gtk2_ardour/plugin_selector.cc +++ b/gtk2_ardour/plugin_selector.cc @@ -41,6 +41,7 @@ #include #include +#include "gtkmm2ext/cell_renderer_pixbuf_multi.h" #include "gtkmm2ext/utils.h" #include "widgets/tooltips.h" @@ -58,6 +59,7 @@ #include "plugin_utils.h" #include "gui_thread.h" #include "ui_config.h" +#include "utils.h" #include "pbd/i18n.h" @@ -94,7 +96,26 @@ PluginSelector::PluginSelector (PluginManager& mgr) plugin_model = Gtk::ListStore::create (plugin_columns); plugin_display.set_model (plugin_model); - plugin_display.append_column (S_("Favorite|Fav"), plugin_columns.favorite); + + { + Gtkmm2ext::CellRendererPixbufMulti* cell; + Gtk::TreeViewColumn* tvc; + + cell = manage (new Gtkmm2ext::CellRendererPixbufMulti ()); + cell->signal_changed().connect (sigc::mem_fun (*this, &PluginSelector::favorite_changed)); + cell->set_pixbuf (Gtkmm2ext::Off, ARDOUR_UI_UTILS::get_icon ("favorite-no")); + cell->set_pixbuf (Gtkmm2ext::ExplicitActive, ARDOUR_UI_UTILS::get_icon ("favorite-yes")); + + tvc = manage (new Gtk::TreeViewColumn (S_("Favorite|Fav"), *cell)); + tvc->add_attribute (cell->property_state (), plugin_columns.favorite); + tvc->set_sizing (Gtk::TREE_VIEW_COLUMN_AUTOSIZE); + tvc->set_alignment (Gtk::ALIGN_CENTER); + tvc->set_expand (false); + tvc->set_resizable (false); + + plugin_display.append_column (*tvc); + } + plugin_display.append_column (_("Name"), plugin_columns.name); plugin_display.append_column (_("Tags"), plugin_columns.tags); plugin_display.append_column (_("Creator"), plugin_columns.creator); @@ -115,10 +136,6 @@ PluginSelector::PluginSelector (PluginManager& mgr) plugin_display.signal_row_activated().connect_notify (sigc::mem_fun(*this, &PluginSelector::row_activated)); plugin_display.get_selection()->signal_changed().connect (sigc::mem_fun(*this, &PluginSelector::display_selection_changed)); - CellRendererToggle* fav_cell = dynamic_cast(plugin_display.get_column_cell_renderer (0)); - fav_cell->property_activatable() = true; - fav_cell->signal_toggled().connect (sigc::mem_fun (*this, &PluginSelector::favorite_changed)); - scroller.set_border_width(10); scroller.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); scroller.add(plugin_display);