diff options
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/option_editor.cc | 23 | ||||
-rw-r--r-- | gtk2_ardour/option_editor.h | 27 | ||||
-rw-r--r-- | gtk2_ardour/rc_option_editor.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/rc_option_editor.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/session_option_editor.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/session_option_editor.h | 2 |
7 files changed, 46 insertions, 14 deletions
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index df98c27765..2d76d7eaad 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -121,7 +121,7 @@ class ArdourPrompter; class PublicEditor; class SaveAsDialog; class SessionDialog; -class SessionOptionEditor; +class SessionOptionEditorWindow; class ShuttleControl; class Splash; class TimeInfoBox; diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc index 103aa89a12..e5746584d9 100644 --- a/gtk2_ardour/option_editor.cc +++ b/gtk2_ardour/option_editor.cc @@ -474,15 +474,11 @@ OptionEditor::OptionEditor (PBD::Configuration* c, std::string const & t) { using namespace Notebook_Helpers; - set_border_width (4); - - pack_start (_notebook, true, true); _notebook.set_show_tabs (true); _notebook.set_show_border (true); _notebook.set_name ("OptionsNotebook"); - show_all (); /* Watch out for changes to parameters */ _config->ParameterChanged.connect (config_connection, invalidator (*this), boost::bind (&OptionEditor::parameter_changed, this, _1), gui_context()); @@ -591,3 +587,22 @@ DirectoryOption::selection_changed () { _set (poor_mans_glob(_file_chooser.get_filename ())); } + +/*--------------------------*/ + +OptionEditorContainer::OptionEditorContainer (PBD::Configuration* c, string const& str) + : OptionEditor (c, str) +{ + set_border_width (4); + pack_start (notebook(), true, true); + show_all (); +} + +OptionEditorWindow::OptionEditorWindow (PBD::Configuration* c, string const& str) + : OptionEditor (c, str) +{ + container.set_border_width (4); + container.pack_start (notebook(), true, true); + container.show_all (); + add (container); +} diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h index 0823d16630..51cdc0131f 100644 --- a/gtk2_ardour/option_editor.h +++ b/gtk2_ardour/option_editor.h @@ -25,7 +25,10 @@ #include <gtkmm/comboboxtext.h> #include <gtkmm/spinbutton.h> #include <gtkmm/table.h> +#include <gtkmm/window.h> + #include "gtkmm2ext/slider_controller.h" + #include "ardour_window.h" #include "audio_clock.h" #include "ardour/types.h" @@ -680,7 +683,7 @@ public: }; /** The OptionEditor dialog base class */ -class OptionEditor : public Gtk::VBox, public ARDOUR::SessionHandlePtr +class OptionEditor : public ARDOUR::SessionHandlePtr, virtual public sigc::trackable { public: OptionEditor (PBD::Configuration *, std::string const &); @@ -692,19 +695,33 @@ public: void set_current_page (std::string const &); protected: - virtual void parameter_changed (std::string const &); PBD::Configuration* _config; + Gtk::Notebook& notebook() { return _notebook; } private: - PBD::ScopedConnection config_connection; - Gtk::Notebook _notebook; std::map<std::string, OptionEditorPage*> _pages; }; -#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() {} +}; +/** The OptionEditor dialog-as-container base class */ +class OptionEditorWindow : public OptionEditor, public Gtk::Window +{ +public: + OptionEditorWindow (PBD::Configuration *, std::string const &); + ~OptionEditorWindow() {} +private: + Gtk::VBox container; +}; +#endif /* __gtk_ardour_option_editor_h__ */ diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index c828a7074c..60e1ea2083 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -1720,7 +1720,7 @@ private: RCOptionEditor::RCOptionEditor () - : OptionEditor (Config, string_compose (_("%1 Preferences"), PROGRAM_NAME)) + : OptionEditorContainer (Config, string_compose (_("%1 Preferences"), PROGRAM_NAME)) , Tabbable (*this, _("Preferences")) /* pack self-as-vbox into tabbable */ , _rc_config (Config) , _mixer_strip_visibility ("mixer-element-visibility") diff --git a/gtk2_ardour/rc_option_editor.h b/gtk2_ardour/rc_option_editor.h index 0252d23478..fe47fbbcd6 100644 --- a/gtk2_ardour/rc_option_editor.h +++ b/gtk2_ardour/rc_option_editor.h @@ -34,7 +34,7 @@ */ /** Editor for options which are obtained from and written back to one of the .rc files. */ -class RCOptionEditor : public OptionEditor, public Gtkmm2ext::Tabbable +class RCOptionEditor : public OptionEditorContainer, public Gtkmm2ext::Tabbable { public: RCOptionEditor (); diff --git a/gtk2_ardour/session_option_editor.cc b/gtk2_ardour/session_option_editor.cc index fa02278752..6c33e1ca7c 100644 --- a/gtk2_ardour/session_option_editor.cc +++ b/gtk2_ardour/session_option_editor.cc @@ -29,7 +29,7 @@ using namespace ARDOUR; using namespace Timecode; SessionOptionEditor::SessionOptionEditor (Session* s) - : OptionEditor (&(s->config), _("Session Properties")) + : OptionEditorWindow (&(s->config), _("Session Properties")) , _session_config (&(s->config)) { set_session (s); diff --git a/gtk2_ardour/session_option_editor.h b/gtk2_ardour/session_option_editor.h index 425ec3707b..759f28ff18 100644 --- a/gtk2_ardour/session_option_editor.h +++ b/gtk2_ardour/session_option_editor.h @@ -27,7 +27,7 @@ namespace ARDOUR { class SessionConfiguration; } -class SessionOptionEditor : public OptionEditor +class SessionOptionEditor : public OptionEditorWindow { public: SessionOptionEditor (ARDOUR::Session* s); |