diff options
Diffstat (limited to 'gtk2_ardour/plugin_presets_ui.h')
-rw-r--r-- | gtk2_ardour/plugin_presets_ui.h | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/gtk2_ardour/plugin_presets_ui.h b/gtk2_ardour/plugin_presets_ui.h index e87c92d80c..b40f825901 100644 --- a/gtk2_ardour/plugin_presets_ui.h +++ b/gtk2_ardour/plugin_presets_ui.h @@ -39,13 +39,40 @@ public: private: void update_preset_list (); + void filter_presets (); void preset_selected (); - void row_activated (Gtk::TreeModel::Path, Gtk::TreeViewColumn*); + void preset_row_activated (Gtk::TreeModel::Path, Gtk::TreeViewColumn*); void load_preset (); boost::shared_ptr<ARDOUR::PluginInsert> _insert; PBD::ScopedConnectionList _preset_connections; + struct PluginPreset { + PluginPreset (ARDOUR::Plugin::PresetRecord const& p, std::string const& b = "", std::string const& t = "") + : _preset_record (p) + , _bank (b) + , _type (t) + { } + ARDOUR::Plugin::PresetRecord _preset_record; + std::string _bank; + std::string _type; + + bool operator< (PluginPreset const& o) const { + return _preset_record.label < o._preset_record.label; + } + }; + + std::vector<PluginPreset> _pps; + + struct TagFilterModelColumns : public Gtk::TreeModel::ColumnRecord { + TagFilterModelColumns () { + add (name); + add (count); + } + Gtk::TreeModelColumn<std::string> name; + Gtk::TreeModelColumn<size_t> count; + }; + struct PluginPresetModelColumns : public Gtk::TreeModel::ColumnRecord { PluginPresetModelColumns () { add (name); @@ -58,12 +85,22 @@ private: Gtk::TreeModelColumn<ARDOUR::Plugin::PresetRecord> plugin_preset; }; - ArdourWidgets::ArdourButton _load_button; + TagFilterModelColumns _filter_banks_columns; + Gtk::TreeView _filter_banks_display; + Glib::RefPtr<Gtk::TreeStore> _filter_banks_model; + Gtk::ScrolledWindow _banks_scroller; + + TagFilterModelColumns _filter_types_columns; + Gtk::TreeView _filter_types_display; + Glib::RefPtr<Gtk::TreeStore> _filter_types_model; + Gtk::ScrolledWindow _types_scroller; PluginPresetModelColumns _plugin_preset_columns; Gtk::TreeView _plugin_preset_display; Glib::RefPtr<Gtk::TreeStore> _plugin_preset_model; Gtk::ScrolledWindow _preset_scroller; + + ArdourWidgets::ArdourButton _load_button; Gtk::TextView _preset_desc; }; |