add (non-functional) invert (phase/polarity switch) button

git-svn-id: svn://localhost/ardour2/branches/3.0@6811 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2010-03-30 17:44:02 +00:00
parent a6dcf49333
commit 6721d997b1
4 changed files with 41 additions and 5 deletions

View File

@ -352,6 +352,12 @@ style "solo_button_active" = "small_button"
fg[PRELIGHT] = { 0, 0, 0 }
}
style "mixer_invert_button" = "small_button"
{
bg[ACTIVE] = { 1.0, 0.749, 0.247 }
fg[ACTIVE] = { 0, 0, 0 }
}
style "mixer_solo_button" = "solo_button"
{
font_name = "@FONT_SMALLER@"
@ -1430,8 +1436,8 @@ widget "*MixerSoloButton-active" style:highest "mixer_solo_button_active"
widget "*TrackLoopButton*" style:highest "track_loop_button"
widget "*PanAutomationLineSelector*" style:highest "multiline_combo"
widget "*EditorTimeButton*" style:highest "time_button"
widget "*MixerPhaseInvertButton*" style:highest "very_small_button"
widget "*MixerPhaseInvertButton.*" style:highest "very_small_button"
widget "*MixerInvertButton*" style:highest "mixer_invert_button"
widget "*MixerInvertButton.*" style:highest "mixer_invert_button"
widget "*MixerAutomationRecordingButton*" style:highest "very_small_button"
widget "*MixerAutomationRecordingButton.*" style:highest "very_small_button"
widget "*MixerAutomationModeButton*" style:highest "very_small_button"

View File

@ -84,7 +84,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer)
, panners (sess)
, _mono_button (_("Mono"))
, button_table (3, 2)
, middle_button_table (1, 2)
, middle_button_table (2, 2)
, bottom_button_table (1, 2)
, meter_point_label (_("pre"))
, comment_button (_("Comments"))
@ -183,6 +183,7 @@ MixerStrip::init ()
mute_button->set_name ("MixerMuteButton");
solo_button->set_name ("MixerSoloButton");
invert_button->set_name ("MixerInvertButton");
button_table.set_homogeneous (true);
button_table.set_spacings (0);
@ -194,6 +195,7 @@ MixerStrip::init ()
middle_button_table.set_spacings (0);
middle_button_table.attach (*mute_button, 0, 1, 0, 1);
middle_button_table.attach (*solo_button, 1, 2, 0, 1);
middle_button_table.attach (*invert_button, 0, 2, 1, 2);
bottom_button_table.set_col_spacings (0);
bottom_button_table.set_homogeneous (true);
@ -1727,7 +1729,9 @@ MixerStrip::revert_to_default_display ()
void
MixerStrip::set_button_names ()
{
switch (_width) {
invert_button_label.set_text (X_("Ø"));
switch (_width) {
case Wide:
rec_enable_button_label.set_text (_("Rec"));
mute_button_label.set_text (_("Mute"));

View File

@ -108,6 +108,13 @@ RouteUI::init ()
multiple_mute_change = false;
multiple_solo_change = false;
invert_button = manage (new BindableToggleButton ());
// mute_button->set_self_managed (true);
invert_button->set_name ("InvertButton");
invert_button->add (invert_button_label);
invert_button_label.show ();
UI::instance()->set_tip (invert_button, _("Invert (Phase reverse) this track"), "");
mute_button = manage (new BindableToggleButton ());
// mute_button->set_self_managed (true);
mute_button->set_name ("MuteButton");
@ -151,6 +158,9 @@ RouteUI::init ()
solo_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::solo_release), false);
mute_button->signal_button_press_event().connect (sigc::mem_fun(*this, &RouteUI::mute_press), false);
mute_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::mute_release), false);
invert_button->signal_button_press_event().connect (sigc::mem_fun(*this, &RouteUI::invert_press), false);
invert_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::invert_release), false);
}
void
@ -222,6 +232,7 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
solo_button->unset_flags (Gtk::CAN_FOCUS);
mute_button->show();
invert_button->show ();
if (_route->is_monitor()) {
solo_button->hide ();
@ -237,6 +248,18 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
map_frozen ();
}
bool
RouteUI::invert_press (GdkEventButton* ev)
{
return false;
}
bool
RouteUI::invert_release (GdkEventButton* ev)
{
return false;
}
bool
RouteUI::mute_press (GdkEventButton* ev)
{

View File

@ -85,6 +85,7 @@ class RouteUI : public virtual AxisView
bool multiple_mute_change;
bool multiple_solo_change;
BindableToggleButton* invert_button;
BindableToggleButton* mute_button;
BindableToggleButton* solo_button;
BindableToggleButton* rec_enable_button; /* audio tracks */
@ -92,6 +93,7 @@ class RouteUI : public virtual AxisView
Gtk::Label solo_button_label;
Gtk::Label mute_button_label;
Gtk::Label invert_button_label;
Gtk::Label rec_enable_button_label;
void send_blink (bool);
@ -104,12 +106,13 @@ class RouteUI : public virtual AxisView
Gtk::Menu* solo_menu;
Gtk::Menu* sends_menu;
XMLNode *xml_node;
void ensure_xml_node ();
virtual XMLNode* get_automation_child_xml_node (Evoral::Parameter param);
bool invert_press(GdkEventButton*);
bool invert_release(GdkEventButton*);
bool mute_press(GdkEventButton*);
bool mute_release(GdkEventButton*);
bool solo_press(GdkEventButton*);