summaryrefslogtreecommitdiff
path: root/gtk2_ardour/template_dialog.h
diff options
context:
space:
mode:
authorJohannes Mueller <github@johannes-mueller.org>2017-07-03 14:30:05 +0200
committerRobin Gareus <robin@gareus.org>2017-07-12 16:15:03 +0200
commita5ba520f758b5be2a71f8a8a375ccc99ebe4b2f2 (patch)
treedef74a150e55672634479fccfa5d893d9105cb9a /gtk2_ardour/template_dialog.h
parent6a973d5c42c7b8b9cd5a384379acc6519a0451d1 (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.h55
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__ */