merge with master, primarily for adrian's maximise-mixer change
authorPaul Davis <paul@linuxaudiosystems.com>
Sat, 22 Mar 2014 14:58:26 +0000 (10:58 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Sat, 22 Mar 2014 14:58:26 +0000 (10:58 -0400)
gtk2_ardour/ardour.menus.in
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui_dialogs.cc
gtk2_ardour/ardour_ui_ed.cc
gtk2_ardour/editor.bindings
gtk2_ardour/ergonomic-us.bindings.in
gtk2_ardour/mixer_ui.cc
gtk2_ardour/mixer_ui.h
gtk2_ardour/mnemonic-us.bindings.in

index b6328963bb1437dce2594d897a03b1172303fb7e..6c5e08c8f8dc02c3dd2e19ae05885bb71285a325 100644 (file)
 
     <menu name='View' action = 'View'>
       <menuitem action='ToggleMaximalEditor'/>
+      <menuitem action='ToggleMaximalMixer'/>
       <menuitem action='KeepTearoffs'/>
 
       <separator/>
index 132af1ab826cb717a3f52c5e88bc6116d027048c..dfb2b72a1ebafee391e21c3a27256faf6ff496c6 100644 (file)
@@ -174,6 +174,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
        void new_midi_tracer_window ();
        void toggle_editing_space();
+       void toggle_mixer_space();
        void toggle_keep_tearoffs();
 
        Gtk::Tooltips& tooltips() { return _tooltips; }
index 2cfa27cbb241b7c919d019e3150bc17df4576e7e..487a7b94a4db33db070b7f444cef4084c4d3e026 100644 (file)
@@ -574,3 +574,18 @@ ARDOUR_UI::editor_meter_peak_button_release (GdkEventButton* ev)
        }
        return true;
 }
+
+void
+ARDOUR_UI::toggle_mixer_space()
+{
+       Glib::RefPtr<Action> act = ActionManager::get_action ("Common", "ToggleMaximalMixer");
+
+       if (act) {
+               Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
+               if (tact->get_active()) {
+                       mixer->maximise_mixer_space ();
+               } else {
+                       mixer->restore_mixer_space ();
+               }
+       }
+}
index 0ed7a95df37bb99937e5b37f8d46c7c64f4eccb9..454c657e6e90479f86c7342cc210136e14b7818c 100644 (file)
@@ -191,6 +191,7 @@ ARDOUR_UI::install_actions ()
        /* windows visibility actions */
 
        ActionManager::register_toggle_action (common_actions, X_("ToggleMaximalEditor"), _("Maximise Editor Space"), sigc::mem_fun (*this, &ARDOUR_UI::toggle_editing_space));
+       ActionManager::register_toggle_action (common_actions, X_("ToggleMaximalMixer"), _("Maximise Mixer Space"), sigc::mem_fun (*this, &ARDOUR_UI::toggle_mixer_space));
        act = ActionManager::register_toggle_action (common_actions, X_("KeepTearoffs"), _("Show Toolbars"), mem_fun (*this, &ARDOUR_UI::toggle_keep_tearoffs));
        ActionManager::session_sensitive_actions.push_back (act);
 
index 0e63a917801acc93730bcd4ce571902d38a44d1b..afef5d8da6bbda709471bda429ef1a5fbb74537c 100644 (file)
   <Binding action="Editor/pitch-shift-region" key="F5"/>
   <Binding action="Editor/select-range-between-cursors" key="F6"/>
   <Binding action="Common/ToggleMaximalEditor" key="F11"/>
+  <Binding action="Common/ToggleMaximalMixer" key="F12"/>
   <Binding action="Editor/save-visual-state-1" key="Primary-F1"/>
   <Binding action="Editor/save-visual-state-2" key="Primary-F2"/>
   <Binding action="Editor/save-visual-state-3" key="Primary-F3"/>
index c340adbb0385e1af6246cf2221681db0bf527bd7..9c7efb9b99ecad188a7a033500e476cd6ff2b71d 100644 (file)
 ; (gtk_accel_path "<Actions>/Snap/snap-to-eighths" "")
 (gtk_accel_path "<Actions>/Editor/select-all-after-playhead" "<@TERTIARY@><@PRIMARY@>p")
 (gtk_accel_path "<Actions>/Common/ToggleMaximalEditor" "F11")
+(gtk_accel_path "<Actions>/Common/ToggleMaximalMixer" "F12")
 ; (gtk_accel_path "<Actions>/RegionList/SortBySourceFileLength" "")
 ; (gtk_accel_path "<Actions>/Editor/Timecode" "")
 ; (gtk_accel_path "<Actions>/Transport/PlaySelection" "")
index 12cf87d7931a7f31341b7ea8296bf895e3e74b2f..874f8feddf7ac119cb6bb3c85701cda842b24790 100644 (file)
@@ -240,6 +240,7 @@ Mixer_UI::Mixer_UI ()
        group_display.show();
 
        _in_group_rebuild_or_clear = false;
+       _maximised = false;
 
        MixerStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::remove_strip, this, _1), gui_context());
 
@@ -1559,6 +1560,19 @@ Mixer_UI::set_state (const XMLNode& node)
                }
        }
 
+       if ((prop = node.property ("maximised"))) {
+               bool yn = string_is_affirmative (prop->value());
+               Glib::RefPtr<Action> act = ActionManager::get_action (X_("Common"), X_("ToggleMaximalMixer"));
+               assert (act);
+               Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
+               bool fs = tact && tact->get_active();
+               if (yn ^ fs) {
+                       ActionManager::do_action ("Common",
+                                       "ToggleMaximalMixer");
+               }
+       }
+
+
        return 0;
 }
 
@@ -1601,6 +1615,8 @@ Mixer_UI::get_state (void)
 
        node->add_property ("show-mixer", _visible ? "yes" : "no");
 
+       node->add_property ("maximised", _maximised ? "yes" : "no");
+
        return *node;
 }
 
@@ -1942,3 +1958,26 @@ Mixer_UI::toggle_midi_input_active (bool flip_others)
        _session->set_exclusive_input_active (rl, onoff, flip_others);
 }
 
+void
+Mixer_UI::maximise_mixer_space ()
+{
+       if (_maximised) {
+               return;
+       }
+
+       fullscreen ();
+
+       _maximised = true;
+}
+
+void
+Mixer_UI::restore_mixer_space ()
+{
+       if (!_maximised) {
+               return;
+       }
+
+       unfullscreen();
+
+       _maximised = false;
+}
index db841535b7c10ecd77c741597ccf6d48ff0bf22b..693fd9dfa557b7848e0bc95899bf288d5723fbbf 100644 (file)
@@ -80,6 +80,9 @@ class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public AR
        void show_strip (MixerStrip *);
        void hide_strip (MixerStrip *);
 
+       void maximise_mixer_space();
+       void restore_mixer_space();
+
        void ensure_float (Gtk::Window&);
 
         MonitorSection* monitor_section() const { return _monitor_section; }
@@ -279,6 +282,9 @@ class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public AR
        bool _following_editor_selection;
 
        void monitor_section_going_away ();
+
+       /// true if we are in fullscreen mode
+       bool _maximised;
 };
 
 #endif /* __ardour_mixer_ui_h__ */
index aff175857cc2e0bfb1e66bc722a9613cc60871d7..d0bc802b0e7ea44ee4a06fc87c5f92041e8ad880 100644 (file)
@@ -189,6 +189,7 @@ This mode provides many different operations on both regions and control points,
 @trans|Editor/toggle-follow-playhead|<@PRIMARY@>f|toggle playhead tracking
 @trans|Transport/ToggleFollowEdits|<@TERTIARY@>f|toggle playhead follows edits
 @wvis|Common/ToggleMaximalEditor|<@PRIMARY@><@SECONDARY@>f|maximise editor space
+@wvis|Common/ToggleMaximalMixer|F12|maximise mixer space
 @wvis|Region/show-rhythm-ferret|<@WINDOW@>f|show rhythm ferret window 
 @mmode|MouseMode/set-mouse-mode-gain|g|region gain mode
 @epp|Region/play-selected-regions|h|play selected region(s)