first compilable version of tabbable design.
[ardour.git] / gtk2_ardour / rc_option_editor.cc
index fc904b2109e85590ae491b097b11bbb607615471..f08b0ff6ce9b4eed677d6bf48655dcf4e1567dd4 100644 (file)
@@ -76,7 +76,7 @@ using namespace ARDOUR_UI_UTILS;
 class ClickOptions : public OptionEditorBox
 {
 public:
-       ClickOptions (RCConfiguration* c, Gtk::Window* p)
+       ClickOptions (RCConfiguration* c)
                : _rc_config (c)
                , _click_browse_button (_("Browse..."))
                , _click_emphasis_browse_button (_("Browse..."))
@@ -1343,9 +1343,8 @@ private:
 class ControlSurfacesOptions : public OptionEditorBox
 {
 public:
-       ControlSurfacesOptions (Gtk::Window& parent)
-               : _parent (parent)
-               , _ignore_view_change (0)
+       ControlSurfacesOptions ()
+               : _ignore_view_change (0)
        {
                _store = ListStore::create (_model);
                _view.set_model (_store);
@@ -1496,7 +1495,8 @@ private:
                 * or re-initializing a surface.
                 * tear_down_gui() hides an deletes the Window if it exists.
                 */
-               ArdourWindow* win = new ArdourWindow (_parent, title.get_string());
+               ArdourWindow* win = new ArdourWindow (*((Gtk::Window*) _view.get_toplevel()), title.get_string());
+               win->set_title ("Control Protocol Options");
                win->add (*box);
                box->show ();
                win->present ();
@@ -1532,7 +1532,6 @@ private:
        Glib::RefPtr<ListStore> _store;
        ControlSurfacesModelColumns _model;
        TreeView _view;
-        Gtk::Window& _parent;
         PBD::ScopedConnection protocol_status_connection;
         uint32_t _ignore_view_change;
        Gtk::Button* edit_button;
@@ -1721,6 +1720,7 @@ private:
 
 RCOptionEditor::RCOptionEditor ()
        : OptionEditor (Config, string_compose (_("%1 Preferences"), PROGRAM_NAME))
+       , Tabbable (*this, _("Preferences"))
         , _rc_config (Config)
        , _mixer_strip_visibility ("mixer-element-visibility")
 {
@@ -1800,7 +1800,7 @@ RCOptionEditor::RCOptionEditor ()
 
        add_option (_("Misc"), new OptionEditorHeading (_("Click")));
 
-       add_option (_("Misc"), new ClickOptions (_rc_config, this));
+       add_option (_("Misc"), new ClickOptions (_rc_config));
 
        add_option (_("Misc"),
             new FaderOption (
@@ -1832,6 +1832,7 @@ RCOptionEditor::RCOptionEditor ()
 
        /* TRANSPORT */
 
+       add_option (_("Transport"), new OptionEditorHeading (S_("Playhead Behaviour")));
        add_option (_("Transport"), new OptionEditorHeading (S_("Transport Options")));
 
        BoolOption* tsf;
@@ -2108,6 +2109,14 @@ if (!Profile->get_mixbus()) {
                            sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_zoom_tools),
                            sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_zoom_tools)
                            ));
+
+       add_option (_("Editor"),
+                   new BoolOption (
+                           "use-mouse-position-as-zoom-focus-on-scroll",
+                           _("Always use mouse cursor position as zoom focus when zooming using mouse scroll wheel"),
+                           sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_use_mouse_position_as_zoom_focus_on_scroll),
+                           sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_mouse_position_as_zoom_focus_on_scroll)
+                           ));
 }  // !mixbus
 
        add_option (_("Editor"),
@@ -2702,7 +2711,7 @@ if (!Profile->get_mixbus()) {
 
        /* Control Surfaces */
 
-       add_option (_("Control Surfaces"), new ControlSurfacesOptions (*this));
+       add_option (_("Control Surfaces"), new ControlSurfacesOptions);
 
        ComboOption<RemoteModel>* rm = new ComboOption<RemoteModel> (
                "remote-model",