diff options
Diffstat (limited to 'gtk2_ardour/ardour_ui_dialogs.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui_dialogs.cc | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index cc0d9f9d24..302f52b503 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -52,6 +52,7 @@ #include "lua_script_manager.h" #include "luawindow.h" #include "main_clock.h" +#include "master_faders.h" #include "meterbridge.h" #include "meter_patterns.h" #include "monitor_section.h" @@ -550,6 +551,7 @@ ARDOUR_UI::tabs_page_added (Widget*,guint) editor_visibility_button.drag_source_set (drag_target_entries); mixer_visibility_button.drag_source_set (drag_target_entries); prefs_visibility_button.drag_source_set (drag_target_entries); + masters_visibility_button.drag_source_set (drag_target_entries); editor_visibility_button.drag_source_set_icon (Gtkmm2ext::pixbuf_from_string (editor->name(), Pango::FontDescription ("Sans 24"), @@ -563,6 +565,10 @@ ARDOUR_UI::tabs_page_added (Widget*,guint) Pango::FontDescription ("Sans 24"), 0, 0, Gdk::Color ("red"))); + masters_visibility_button.drag_source_set_icon (Gtkmm2ext::pixbuf_from_string (masters->name(), + Pango::FontDescription ("Sans 24"), + 0, 0, + Gdk::Color ("red"))); } } @@ -573,6 +579,7 @@ ARDOUR_UI::tabs_page_removed (Widget*, guint) editor_visibility_button.drag_source_unset (); mixer_visibility_button.drag_source_unset (); prefs_visibility_button.drag_source_unset (); + masters_visibility_button.drag_source_unset (); } } @@ -581,29 +588,61 @@ ARDOUR_UI::tabs_switch (GtkNotebookPage*, guint page) { if (editor && (page == (guint) _tabs.page_num (editor->contents()))) { editor_visibility_button.set_active_state (Gtkmm2ext::ImplicitActive); + if (mixer && (mixer->tabbed() || mixer->tabbed_by_default())) { mixer_visibility_button.set_active_state (Gtkmm2ext::Off); } + if (rc_option_editor && (rc_option_editor->tabbed() || rc_option_editor->tabbed_by_default())) { prefs_visibility_button.set_active_state (Gtkmm2ext::Off); } } else if (mixer && (page == (guint) _tabs.page_num (mixer->contents()))) { + if (editor && (editor->tabbed() || editor->tabbed_by_default())) { editor_visibility_button.set_active_state (Gtkmm2ext::Off); } + mixer_visibility_button.set_active_state (Gtkmm2ext::ImplicitActive); if (rc_option_editor && (rc_option_editor->tabbed() || rc_option_editor->tabbed_by_default())) { prefs_visibility_button.set_active_state (Gtkmm2ext::Off); } - } else { + + if (masters && (masters->tabbed() || masters->tabbed_by_default())) { + masters_visibility_button.set_active_state (Gtkmm2ext::Off); + } + + } else if (page == (guint) _tabs.page_num (rc_option_editor->contents())) { + if (editor && (editor->tabbed() || editor->tabbed_by_default())) { editor_visibility_button.set_active_state (Gtkmm2ext::Off); } + if (mixer && (mixer->tabbed() || mixer->tabbed_by_default())) { mixer_visibility_button.set_active_state (Gtkmm2ext::Off); } + prefs_visibility_button.set_active_state (Gtkmm2ext::ImplicitActive); + + if (masters && (masters->tabbed() || masters->tabbed_by_default())) { + masters_visibility_button.set_active_state (Gtkmm2ext::Off); + } + + } else if (page == (guint) _tabs.page_num (masters->contents())) { + + if (editor && (editor->tabbed() || editor->tabbed_by_default())) { + editor_visibility_button.set_active_state (Gtkmm2ext::Off); + } + + if (mixer && (mixer->tabbed() || mixer->tabbed_by_default())) { + mixer_visibility_button.set_active_state (Gtkmm2ext::Off); + } + + if (rc_option_editor && (rc_option_editor->tabbed() || rc_option_editor->tabbed_by_default())) { + prefs_visibility_button.set_active_state (Gtkmm2ext::Off); + } + + masters_visibility_button.set_active_state (Gtkmm2ext::ImplicitActive); } } @@ -692,14 +731,22 @@ ARDOUR_UI::tabbable_state_change (Tabbable& t) vis_button = &editor_visibility_button; other_vis_buttons.push_back (&mixer_visibility_button); other_vis_buttons.push_back (&prefs_visibility_button); + other_vis_buttons.push_back (&masters_visibility_button); } else if (&t == mixer) { vis_button = &mixer_visibility_button; other_vis_buttons.push_back (&editor_visibility_button); other_vis_buttons.push_back (&prefs_visibility_button); - } else { + other_vis_buttons.push_back (&masters_visibility_button); + } else if (&t == rc_option_editor) { vis_button = &prefs_visibility_button; other_vis_buttons.push_back (&editor_visibility_button); + other_vis_buttons.push_back (&masters_visibility_button); other_vis_buttons.push_back (&mixer_visibility_button); + } else if (&t == masters) { + vis_button = &masters_visibility_button; + other_vis_buttons.push_back (&editor_visibility_button); + other_vis_buttons.push_back (&mixer_visibility_button); + other_vis_buttons.push_back (&prefs_visibility_button); } if (!vis_button) { |