most of the changes required to add a new master faders tabbable

the visibility button isn't actually working correctly
This commit is contained in:
Paul Davis 2016-01-23 16:26:41 -05:00
parent 87481a2ee1
commit 5c658db4bf
9 changed files with 98 additions and 9 deletions

View file

@ -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) {