X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Foption_editor.h;h=53c671287831a4288383490cf2abd5a933715644;hb=167b9dda37135d6172e751ba89302bbd66ea882e;hp=0823d16630fbe21cd0188558f7389f247eb537f0;hpb=02c8d6d648a4d54dc796fd994106e74b2e9dae32;p=ardour.git diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h index 0823d16630..53c6712878 100644 --- a/gtk2_ardour/option_editor.h +++ b/gtk2_ardour/option_editor.h @@ -25,7 +25,10 @@ #include #include #include +#include + #include "gtkmm2ext/slider_controller.h" + #include "ardour_window.h" #include "audio_clock.h" #include "ardour/types.h" @@ -680,11 +683,11 @@ public: }; /** The OptionEditor dialog base class */ -class OptionEditor : public Gtk::VBox, public ARDOUR::SessionHandlePtr +class OptionEditor : virtual public sigc::trackable { public: - OptionEditor (PBD::Configuration *, std::string const &); - ~OptionEditor (); + OptionEditor (PBD::Configuration *); + virtual ~OptionEditor (); void add_option (std::string const &, OptionEditorComponent *); void add_page (std::string const &, Gtk::Widget& page_widget); @@ -692,19 +695,56 @@ public: void set_current_page (std::string const &); protected: - virtual void parameter_changed (std::string const &); PBD::Configuration* _config; + Gtk::Notebook& notebook() { return _notebook; } + Gtk::TreeView& treeview() { return option_treeview; } -private: + class OptionColumns : public Gtk::TreeModel::ColumnRecord + { + public: + Gtk::TreeModelColumn name; + Gtk::TreeModelColumn widget; - PBD::ScopedConnection config_connection; + OptionColumns() { + add (name); + add (widget); + } + }; + + OptionColumns option_columns; + Glib::RefPtr option_tree; +private: + PBD::ScopedConnection config_connection; Gtk::Notebook _notebook; + Gtk::TreeView option_treeview; std::map _pages; + + void add_path_to_treeview (std::string const &, Gtk::Widget&); + void treeview_row_selected (); }; -#endif /* __gtk_ardour_option_editor_h__ */ +/** The OptionEditor dialog-as-container base class */ +class OptionEditorContainer : public OptionEditor, public Gtk::VBox +{ +public: + OptionEditorContainer (PBD::Configuration *, std::string const &); + ~OptionEditorContainer() {} +private: + Gtk::HBox hpacker; +}; +/** The OptionEditor dialog-as-container base class */ +class OptionEditorWindow : public OptionEditor, public ArdourWindow +{ +public: + OptionEditorWindow (PBD::Configuration *, std::string const &); + ~OptionEditorWindow() {} +private: + Gtk::VBox container; + Gtk::HBox hpacker; +}; +#endif /* __gtk_ardour_option_editor_h__ */