diff options
author | Robin Gareus <robin@gareus.org> | 2018-12-20 16:56:34 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-12-20 16:56:49 +0100 |
commit | 9594e12c5254a053982cfea6e9cfa2fbdbbd16de (patch) | |
tree | dc33e7e64a681e75ebbb42b2107073dfef8b63f1 /gtk2_ardour/plugin_presets_ui.h | |
parent | a48d6a37b3ea11e411d79632856af68cfe555ef6 (diff) |
Add a plugin-preset list/selector GUI
This is currently only used for "Preset only" plugins, generic UI.
And also depends on plugin-presets having a description.
Diffstat (limited to 'gtk2_ardour/plugin_presets_ui.h')
-rw-r--r-- | gtk2_ardour/plugin_presets_ui.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gtk2_ardour/plugin_presets_ui.h b/gtk2_ardour/plugin_presets_ui.h new file mode 100644 index 0000000000..ad9e4b785c --- /dev/null +++ b/gtk2_ardour/plugin_presets_ui.h @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2018 Robin Gareus <robin@gareus.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef _gtkardour_plugin_presets_ui_h_ +#define _gtkardour_plugin_presets_ui_h_ + +#include <gtkmm/label.h> +#include <gtkmm/liststore.h> +#include <gtkmm/scrolledwindow.h> +#include <gtkmm/table.h> +#include <gtkmm/textview.h> +#include <gtkmm/treemodel.h> +#include <gtkmm/treestore.h> +#include <gtkmm/treeview.h> + +#include "widgets/ardour_button.h" + +#include "ardour/plugin_insert.h" + +class PluginPresetsUI : public Gtk::Table +{ +public: + PluginPresetsUI (boost::shared_ptr<ARDOUR::PluginInsert>); + +private: + void update_preset_list (); + void preset_selected (); + void load_preset (); + + boost::shared_ptr<ARDOUR::PluginInsert> _insert; + PBD::ScopedConnectionList _preset_connections; + + struct PluginPresetModelColumns : public Gtk::TreeModel::ColumnRecord { + PluginPresetModelColumns () { + add (name); + add (description); + add (plugin_preset); + } + + Gtk::TreeModelColumn<std::string> name; + Gtk::TreeModelColumn<std::string> description; + Gtk::TreeModelColumn<ARDOUR::Plugin::PresetRecord> plugin_preset; + }; + + ArdourWidgets::ArdourButton _load_button; + + PluginPresetModelColumns _plugin_preset_columns; + Gtk::TreeView _plugin_preset_display; + Glib::RefPtr<Gtk::TreeStore> _plugin_preset_model; + Gtk::ScrolledWindow _preset_scroller; + Gtk::TextView _preset_desc; +}; + +#endif |