diff options
author | Johannes Mueller <github@johannes-mueller.org> | 2017-07-03 14:30:05 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-12 16:15:03 +0200 |
commit | a5ba520f758b5be2a71f8a8a375ccc99ebe4b2f2 (patch) | |
tree | def74a150e55672634479fccfa5d893d9105cb9a /gtk2_ardour/template_dialog.h | |
parent | 6a973d5c42c7b8b9cd5a384379acc6519a0451d1 (diff) |
Also handle Route templates
Following measures:
* Split up into two classes
* TemplateDialog: the general dialog
* TemplateManager: A widget to rename and remove templates
* Make TemplateManager abstract and derive a class for session templates and
one for route templates. This is needed, as session templates and route
templates are stored in a different way. Thus we need different methods to
rename and remove them.
Diffstat (limited to 'gtk2_ardour/template_dialog.h')
-rw-r--r-- | gtk2_ardour/template_dialog.h | 55 |
1 files changed, 48 insertions, 7 deletions
diff --git a/gtk2_ardour/template_dialog.h b/gtk2_ardour/template_dialog.h index 7523213a58..2e7f2e454a 100644 --- a/gtk2_ardour/template_dialog.h +++ b/gtk2_ardour/template_dialog.h @@ -28,14 +28,27 @@ #include "ardour_dialog.h" +namespace ARDOUR { + struct TemplateInfo; +} + class TemplateDialog : public ArdourDialog { public: TemplateDialog (); ~TemplateDialog () {} +}; -private: - void setup_session_templates (); +class TemplateManager : public Gtk::HBox +{ +public: + virtual ~TemplateManager () {} + virtual void init () = 0; + +protected: + TemplateManager (); + + void setup_model (const std::vector<ARDOUR::TemplateInfo>& templates); void row_selection_changed (); void render_template_names (Gtk::CellRenderer* rnd, const Gtk::TreeModel::iterator& it); @@ -44,8 +57,8 @@ private: bool key_event (GdkEventKey* ev); - void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name); - void delete_selected_template (); + virtual void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name) = 0; + virtual void delete_selected_template () = 0; struct SessionTemplateColumns : public Gtk::TreeModel::ColumnRecord { SessionTemplateColumns () { @@ -57,10 +70,10 @@ private: Gtk::TreeModelColumn<std::string> path; }; - SessionTemplateColumns _session_template_columns; - Glib::RefPtr<Gtk::ListStore> _session_template_model; + SessionTemplateColumns _template_columns; + Glib::RefPtr<Gtk::ListStore> _template_model; - Gtk::TreeView _session_template_treeview; + Gtk::TreeView _template_treeview; Gtk::CellRendererText _validating_cellrenderer; Gtk::TreeView::Column _validated_column; @@ -68,4 +81,32 @@ private: Gtk::Button _rename_button; }; +class SessionTemplateManager : public TemplateManager +{ +public: + SessionTemplateManager () : TemplateManager () {} + ~SessionTemplateManager () {} + + void init (); + +private: + void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name); + void delete_selected_template (); +}; + + +class RouteTemplateManager : public TemplateManager +{ +public: + RouteTemplateManager () : TemplateManager () {} + ~RouteTemplateManager () {} + + void init (); + +private: + void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name); + void delete_selected_template (); +}; + + #endif /* __gtk2_ardour_template_dialog_h__ */ |