convert all mixer strip buttons to ArdourButton; not entirely finished because colors in the name and comments buttons don't work as intended - needs a bit of thinking

git-svn-id: svn://localhost/ardour2/branches/3.0@10830 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2011-11-28 17:58:15 +00:00
parent eee1151e55
commit a296820caf
7 changed files with 106 additions and 99 deletions

View file

@ -495,6 +495,21 @@
<Option name="send alert button: text" value="ccccccff"/>
<Option name="send alert button: text active" value="000000ff"/>
<Option name="send alert button: text mid" value="00000000"/>
<Option name="midi input button: border start" value="9e9e9eff"/>
<Option name="midi input button: border end" value="070707ff"/>
<Option name="midi input button: border start selected" value="00000000"/>
<Option name="midi input button: border end selected" value="00000000"/>
<Option name="midi input button: fill start" value="656867ff"/>
<Option name="midi input button: fill end" value="333333ff"/>
<Option name="midi input button: fill start active" value="a1ff43ff"/>
<Option name="midi input button: fill end active" value="00a300ff"/>
<Option name="midi input button: fill start mid" value="000000ff"/>
<Option name="midi input button: fill end mid" value="00000000"/>
<Option name="midi input button: led" value="00000000"/>
<Option name="midi input button: led active" value="00000000"/>
<Option name="midi input button: led mid" value="00000000"/>
<Option name="midi input button: text" value="00000000"/>
<Option name="midi input button: text active" value="00000000"/>
<Option name="transport button: border start" value="9e9e9eff"/>
<Option name="transport button: border end" value="070707ff"/>
<Option name="transport button: border start selected" value="00000000"/>
@ -639,6 +654,38 @@
<Option name="route button: text" value="c7c7d8ff"/>
<Option name="route button: text active" value="c8c8d9ff"/>
<Option name="route button: text mid" value="000000ff"/>
<Option name="mixer strip button: border start" value="b7b7d2ff"/>
<Option name="mixer strip button: border end" value="000000ff"/>
<Option name="mixer strip button: border start selected" value="8e8e9aff"/>
<Option name="mixer strip button: border end selected" value="5b5b67ff"/>
<Option name="mixer strip button: fill start" value="56565dff"/>
<Option name="mixer strip button: fill end" value="484856ff"/>
<Option name="mixer strip button: fill start active" value="4d4d4dff"/>
<Option name="mixer strip button: fill end active" value="121212ff"/>
<Option name="mixer strip button: fill start mid" value="57565dff"/>
<Option name="mixer strip button: fill end mid" value="484856ff"/>
<Option name="mixer strip button: led" value="4f3300ff"/>
<Option name="mixer strip button: led active" value="ffa500ff"/>
<Option name="mixer strip button: led mid" value="b87700ff"/>
<Option name="mixer strip button: text" value="c7c7d8ff"/>
<Option name="mixer strip button: text active" value="c8c8d9ff"/>
<Option name="mixer strip button: text mid" value="000000ff"/>
<Option name="mixer strip name button: border start" value="b7b7d2ff"/>
<Option name="mixer strip name button: border end" value="000000ff"/>
<Option name="mixer strip name button: border start selected" value="8e8e9aff"/>
<Option name="mixer strip name button: border end selected" value="5b5b67ff"/>
<Option name="mixer strip name button: fill start" value="56565dff"/>
<Option name="mixer strip name button: fill end" value="484856ff"/>
<Option name="mixer strip name button: fill start active" value="4d4d4dff"/>
<Option name="mixer strip name button: fill end active" value="121212ff"/>
<Option name="mixer strip name button: fill start mid" value="57565dff"/>
<Option name="mixer strip name button: fill end mid" value="484856ff"/>
<Option name="mixer strip name button: led" value="4f3300ff"/>
<Option name="mixer strip name button: led active" value="ffa500ff"/>
<Option name="mixer strip name button: led mid" value="b87700ff"/>
<Option name="mixer strip name button: text" value="c7c7d8ff"/>
<Option name="mixer strip name button: text active" value="c8c8d9ff"/>
<Option name="mixer strip name button: text mid" value="000000ff"/>
<Option name="transport clock: background" value="000000ff"/>
<Option name="transport clock: text" value="6bb620ff"/>
<Option name="transport clock: edited text" value="ffa500ff"/>

View file

@ -35,16 +35,9 @@ widget "*TrackVisualButton*" style:highest "default_button"
widget "*TrackRemoveButton*" style:highest "default_button"
widget "*BaseButton" style:highest "default_button"
widget "*TakeButtonLabel" style:highest "default_button"
widget "*MixerWidthButton" style:highest "default_button"
widget "*MixerHideButton" style:highest "default_button"
widget "*MixerSendButton" style:highest "default_button"
widget "*MixerSendButtonLabel" style:highest "default_button"
widget "*MixerSendSwitch" style:highest "default_button"
widget "*MixerInsertButton" style:highest "default_button"
widget "*MixerInsertButtonLabel" style:highest "default_button"
widget "*MixerInsertSwitch" style:highest "default_button"
widget "*MixerIOButton" style:highest "very_small_button"
widget "*MixerIOButtonLabel" style:highest "very_small_button"
widget "*mixer strip button" style:highest "very_small_button"
widget "*AddRouteDialogSpinner" style:highest "ardour_adjusters"
widget "*AddRouteDialogRadioButton*" style:highest "preferences"
widget "*OptionsNotebook" style:highest "preferences"
@ -367,7 +360,6 @@ widget "*TimeInfoPunchTitle" style:highest "very_small_text"
widget "*TimeInfoPunchButton" style:highest "very_small_text"
widget "*RouteNameEditorEntry" style:highest "text_cell_entry"
widget "*RegionNameEditorEntry" style:highest "text_cell_entry"
widget "*MixerMidiInputEnableButton" style:highest "mouse_mode_button"
widget "*EditorRouteGroupsAllGroupButton" style:highest "default_toggle_button"
widget "*MidiSoundNotesButton" style:highest "default_toggle_button"
widget "*MeasureLatencyButton" style:highest "default_toggle_button"

View file

@ -187,6 +187,9 @@ BUTTON_VARS(PunchButton, "punch button")
BUTTON_VARS(MouseModeButton, "mouse mode button")
BUTTON_VARS(ZoomButton, "zoom button")
BUTTON_VARS(RouteButton, "route button")
BUTTON_VARS(MixerStripButton, "mixer strip button")
BUTTON_VARS(MixerStripNameButton, "mixer strip name button")
BUTTON_VARS(MidiInputButton, "midi input button")
#define CLOCK_VARS(root,name) \
CANVAS_VARIABLE(canvasvar_ ## root ## Background, name ": background") \

View file

@ -91,7 +91,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer)
, top_button_table (1, 2)
, middle_button_table (1, 2)
, bottom_button_table (1, 2)
, meter_point_label (_("pre"))
, meter_point_button (_("pre"))
, midi_input_enable_button (0)
, _comment_button (_("Comments"))
, _visibility (X_("mixer-strip-visibility"))
@ -119,7 +119,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, boost::shared_ptr<Route> rt
, button_table (3, 1)
, middle_button_table (1, 2)
, bottom_button_table (1, 2)
, meter_point_label (_("pre"))
, meter_point_button (_("pre"))
, midi_input_enable_button (0)
, _comment_button (_("Comments"))
, _visibility (X_("mixer-strip-visibility"))
@ -145,43 +145,29 @@ MixerStrip::init ()
/* the length of this string determines the width of the mixer strip when it is set to `wide' */
longest_label = "longest label";
Gtk::Image* img;
img = manage (new Gtk::Image (::get_icon("strip_width")));
img->show ();
string t = _("Click to toggle the width of this mixer strip.");
if (_mixer_owned) {
t += string_compose (_("\n%1-click to toggle the width of all strips."), Keyboard::tertiary_modifier_name ());
}
width_button.add (*img);
width_button.set_image (::get_icon("strip_width"));
ARDOUR_UI::instance()->set_tip (width_button, t);
img = manage (new Gtk::Image (::get_icon("hide")));
img->show ();
hide_button.add (*img);
hide_button.set_image(::get_icon("hide"));
ARDOUR_UI::instance()->set_tip (&hide_button, _("Hide this mixer strip"));
input_label.set_text (_("Input"));
input_button.set_text (_("Input"));
ARDOUR_UI::instance()->set_tip (&input_button, _("Button 1 to choose inputs from a port matrix, button 3 to select inputs from a menu"), "");
input_button.add (input_label);
input_button.set_name ("MixerIOButton");
input_label.set_name ("MixerIOButtonLabel");
input_button.set_name ("mixer strip button");
input_button_box.pack_start (input_button, true, true);
output_label.set_text (_("Output"));
output_button.set_text (_("Output"));
ARDOUR_UI::instance()->set_tip (&output_button, _("Button 1 to choose outputs from a port matrix, button 3 to select inputs from a menu"), "");
output_button.add (output_label);
output_button.set_name ("MixerIOButton");
output_label.set_name ("MixerIOButtonLabel");
output_button.set_name ("mixer strip button");
Gtkmm2ext::set_size_request_to_display_given_text (output_button, longest_label.c_str(), 4, 4);
ARDOUR_UI::instance()->set_tip (&meter_point_button, _("Select metering point"), "");
meter_point_button.add (meter_point_label);
meter_point_button.set_name ("MixerStripMeterPreButton");
meter_point_label.set_name ("MixerStripMeterPreButton");
meter_point_button.set_name ("mixer strip button");
/* TRANSLATORS: this string should be longest of the strings
used to describe meter points. In english, it's "input".
@ -262,29 +248,25 @@ MixerStrip::init ()
bottom_button_table.set_homogeneous (true);
bottom_button_table.attach (group_button, 0, 1, 0, 1);
name_button.add (name_label);
name_button.set_name ("MixerNameButton");
name_button.set_name ("mixer strip name button");
Gtkmm2ext::set_size_request_to_display_given_text (name_button, longest_label.c_str(), 2, 2);
name_label.set_name ("MixerNameButtonLabel");
ARDOUR_UI::instance()->set_tip (&group_button, _("Mix group"), "");
group_button.add (group_label);
group_button.set_name ("MixerGroupButton");
group_button.set_name ("mixer strip button");
Gtkmm2ext::set_size_request_to_display_given_text (group_button, "Group", 2, 2);
group_label.set_name ("MixerGroupButtonLabel");
_comment_button.set_name (X_("MixerCommentButton"));
_comment_button.signal_clicked().connect (sigc::mem_fun (*this, &MixerStrip::toggle_comment_editor));
_comment_button.set_name (X_("mixer strip button"));
_comment_button.signal_clicked.connect (sigc::mem_fun (*this, &MixerStrip::toggle_comment_editor));
global_vpacker.set_border_width (0);
global_vpacker.set_spacing (0);
width_button.set_name ("MixerWidthButton");
hide_button.set_name ("MixerHideButton");
top_event_box.set_name ("MixerTopEventBox");
width_button.set_name ("mixer strip button");
hide_button.set_name ("mixer strip button");
top_event_box.set_name ("mixer strip button");
width_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::width_button_pressed), false);
hide_button.signal_clicked().connect (sigc::mem_fun(*this, &MixerStrip::hide_clicked));
hide_button.signal_clicked.connect (sigc::mem_fun(*this, &MixerStrip::hide_clicked));
width_hide_box.pack_start (width_button, false, true);
width_hide_box.pack_start (top_event_box, true, true);
@ -456,10 +438,9 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
if (is_midi_track()) {
if (midi_input_enable_button == 0) {
Image* img = manage (new Image (get_icon (X_("midi_socket_small"))));
midi_input_enable_button = manage (new StatefulToggleButton);
midi_input_enable_button->set_name ("MixerMidiInputEnableButton");
midi_input_enable_button->set_image (*img);
midi_input_enable_button = manage (new ArdourButton);
midi_input_enable_button->set_name ("midi input button");
midi_input_enable_button->set_image (::get_icon (X_("midi_socket_small")));
midi_input_enable_button->signal_button_press_event().connect (sigc::mem_fun (*this, &MixerStrip::input_active_button_press), false);
midi_input_enable_button->signal_button_release_event().connect (sigc::mem_fun (*this, &MixerStrip::input_active_button_release), false);
ARDOUR_UI::instance()->set_tip (midi_input_enable_button, _("Enable/Disable MIDI input"));
@ -506,7 +487,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
}
}
meter_point_label.set_text (meter_point_string (_route->meter_point()));
meter_point_button.set_text (meter_point_string (_route->meter_point()));
delete route_ops_menu;
route_ops_menu = 0;
@ -561,20 +542,12 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
middle_button_table.show();
bottom_button_table.show();
gpm.show_all ();
gain_unit_button.show();
gain_unit_label.show();
meter_point_button.show();
meter_point_label.show();
diskstream_button.show();
diskstream_label.show();
input_button_box.show_all();
output_button.show();
output_label.show();
name_label.show();
name_button.show();
_comment_button.show();
group_button.show();
group_label.show();
parameter_changed ("mixer-strip-visibility");
@ -1231,9 +1204,9 @@ MixerStrip::update_io_button (boost::shared_ptr<ARDOUR::Route> route, Width widt
}
if (for_input) {
input_label.set_text (label_string);
input_button.set_text (label_string);
} else {
output_label.set_text (label_string);
output_button.set_text (label_string);
}
}
@ -1289,20 +1262,20 @@ MixerStrip::setup_comment_button ()
case Wide:
if (_route->comment().empty ()) {
_comment_button.unset_bg (STATE_NORMAL);
((Gtk::Label *) _comment_button.get_child ())->set_text (_("Comments"));
_comment_button.set_text (_("Comments"));
} else {
_comment_button.modify_bg (STATE_NORMAL, color ());
((Gtk::Label *) _comment_button.get_child ())->set_text (_("*Comments*"));
_comment_button.set_text (_("*Comments*"));
}
break;
case Narrow:
if (_route->comment().empty ()) {
_comment_button.unset_bg (STATE_NORMAL);
((Gtk::Label *) _comment_button.get_child ())->set_text (_("Cmt"));
_comment_button.set_text (_("Cmt"));
} else {
_comment_button.modify_bg (STATE_NORMAL, color ());
((Gtk::Label *) _comment_button.get_child ())->set_text (_("*Cmt*"));
_comment_button.set_text (_("*Cmt*"));
}
break;
}
@ -1421,14 +1394,14 @@ MixerStrip::route_group_changed ()
RouteGroup *rg = _route->route_group();
if (rg) {
group_label.set_text (PBD::short_version (rg->name(), 5));
group_button.set_text (PBD::short_version (rg->name(), 5));
} else {
switch (_width) {
case Wide:
group_label.set_text (_("Grp"));
group_button.set_text (_("Grp"));
break;
case Narrow:
group_label.set_text (_("~G"));
group_button.set_text (_("~G"));
break;
}
}
@ -1529,10 +1502,10 @@ MixerStrip::name_changed ()
{
switch (_width) {
case Wide:
RouteUI::property_changed (PropertyChange (ARDOUR::Properties::name));
name_button.set_text (_route->name());
break;
case Narrow:
name_label.set_text (PBD::short_version (_route->name(), 5));
name_button.set_text (PBD::short_version (_route->name(), 5));
break;
}
}
@ -1716,7 +1689,7 @@ MixerStrip::meter_point_string (MeterPoint mp)
void
MixerStrip::meter_changed ()
{
meter_point_label.set_text (meter_point_string (_route->meter_point()));
meter_point_button.set_text (meter_point_string (_route->meter_point()));
gpm.setup_meters ();
// reset peak when meter point changes
gpm.reset_peak_display();

View file

@ -149,8 +149,8 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
Width _width;
void* _width_owner;
Gtk::Button hide_button;
Gtk::Button width_button;
ArdourButton hide_button;
ArdourButton width_button;
Gtk::HBox width_hide_box;
Gtk::VBox whvbox;
Gtk::EventBox top_event_box;
@ -174,22 +174,15 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
Gtk::Table middle_button_table;
Gtk::Table bottom_button_table;
Gtk::Button gain_unit_button;
Gtk::Label gain_unit_label;
Gtk::Button meter_point_button;
Gtk::Label meter_point_label;
ArdourButton meter_point_button;
void meter_changed ();
Gtk::Button diskstream_button;
Gtk::Label diskstream_label;
ArdourButton input_button;
ArdourButton output_button;
Gtk::Button input_button;
Gtkmm2ext::StatefulToggleButton* midi_input_enable_button;
ArdourButton* midi_input_enable_button;
Gtk::HBox input_button_box;
Gtk::Label input_label;
Gtk::Button output_button;
Gtk::Label output_label;
std::string longest_label;
@ -200,11 +193,11 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
gint mark_update_safe ();
guint32 mode_switch_in_progress;
Gtk::Button name_button;
ArdourButton name_button;
ArdourWindow* comment_window;
Gtk::TextView* comment_area;
Gtk::Button _comment_button;
ArdourButton _comment_button;
void comment_editor_done_editing ();
void setup_comment_editor ();
@ -212,8 +205,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
void toggle_comment_editor ();
void setup_comment_button ();
Gtk::Button group_button;
Gtk::Label group_label;
ArdourButton group_button;
RouteGroupMenu *group_menu;
gint input_press (GdkEventButton *);

View file

@ -1765,7 +1765,7 @@ void
RouteUI::setup_invert_buttons ()
{
/* remove old invert buttons */
for (list<BindableToggleButton*>::iterator i = _invert_buttons.begin(); i != _invert_buttons.end(); ++i) {
for (list<ArdourButton*>::iterator i = _invert_buttons.begin(); i != _invert_buttons.end(); ++i) {
_invert_button_box.remove (**i);
}
@ -1780,15 +1780,15 @@ RouteUI::setup_invert_buttons ()
uint32_t const to_add = (N <= _max_invert_buttons) ? N : 1;
for (uint32_t i = 0; i < to_add; ++i) {
BindableToggleButton* b = manage (new BindableToggleButton);
b->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &RouteUI::invert_toggled), i, b));
ArdourButton* b = manage (new ArdourButton);
b->StateChanged.connect (sigc::bind (sigc::mem_fun (*this, &RouteUI::invert_toggled), i, b));
b->signal_button_press_event().connect (sigc::mem_fun (*this, &RouteUI::invert_press));
b->set_name (X_("MixerInvertButton"));
b->set_name (X_("mixer strip button"));
if (to_add == 1) {
b->add (*manage (new Label (X_("Ø"))));
b->set_text (X_("Ø"));
} else {
b->add (*manage (new Label (string_compose (X_("Ø%1"), i + 1))));
b->set_text (string_compose (X_("Ø%1"), i + 1));
}
if (N <= 4) {
@ -1817,7 +1817,7 @@ RouteUI::set_invert_button_state ()
}
int j = 0;
for (list<BindableToggleButton*>::iterator i = _invert_buttons.begin(); i != _invert_buttons.end(); ++i, ++j) {
for (list<ArdourButton*>::iterator i = _invert_buttons.begin(); i != _invert_buttons.end(); ++i, ++j) {
(*i)->set_active (_route->phase_invert (j));
}
@ -1825,7 +1825,7 @@ RouteUI::set_invert_button_state ()
}
void
RouteUI::invert_toggled (uint32_t i, BindableToggleButton* b)
RouteUI::invert_toggled (uint32_t i, ArdourButton* b)
{
if (_i_am_the_modifier) {
return;
@ -1884,7 +1884,7 @@ RouteUI::invert_menu_toggled (uint32_t c)
void
RouteUI::set_invert_sensitive (bool yn)
{
for (list<BindableToggleButton*>::iterator b = _invert_buttons.begin(); b != _invert_buttons.end(); ++b) {
for (list<ArdourButton*>::iterator b = _invert_buttons.begin(); b != _invert_buttons.end(); ++b) {
(*b)->set_sensitive (yn);
}
}

View file

@ -271,12 +271,12 @@ class RouteUI : public virtual AxisView
void setup_invert_buttons ();
void set_invert_button_state ();
void invert_toggled (uint32_t, BindableToggleButton *);
void invert_toggled (uint32_t, ArdourButton *);
void invert_menu_toggled (uint32_t);
bool invert_press (GdkEventButton *);
int _i_am_the_modifier;
std::list<BindableToggleButton*> _invert_buttons;
std::list<ArdourButton*> _invert_buttons;
Gtk::Menu* _invert_menu;
static void set_showing_sends_to (boost::shared_ptr<ARDOUR::Route>);