set_tip (goto_start_button, _("Go to start of session"));
set_tip (goto_end_button, _("Go to end of session"));
set_tip (auto_loop_button, _("Play loop range"));
+ set_tip (midi_panic_button, _("MIDI Panic\nSend note off and reset controller messages on all MIDI channels"));
set_tip (auto_return_button, _("Return to last playback start when stopped"));
set_tip (auto_play_button, _("Start playback after any locate"));
auto_return_button.set_name ("transport option button");
auto_play_button.set_name ("transport option button");
auto_input_button.set_name ("transport option button");
- click_button.set_name ("transport option button");
+ time_master_button.set_name ("transport option button");
- time_master_button.set_name ("TransportButton");
- sync_button.set_name ("TransportSyncButton");
+ /* these have to provide a clear indication of active state */
+
+ click_button.set_name ("transport active option button");
+ sync_button.set_name ("transport active option button");
+
+ time_master_button.set_text (_("time master"));
stop_button.set_active_state (Active);
auto_loop_button.set_image (get_icon (X_("transport_loop")));
join_play_range_button.set_image (get_icon (X_("tool_object_range")));
+ midi_panic_button.set_image (get_icon (X_("midi_panic")));
+ /* the icon for this has an odd aspect ratio, so fatten up the button */
+ midi_panic_button.set_size_request (25, -1);
+
act = ActionManager::get_action (X_("Transport"), X_("Stop"));
stop_button.set_related_action (act);
act = ActionManager::get_action (X_("Transport"), X_("Roll"));
auto_loop_button.set_related_action (act);
act = ActionManager::get_action (X_("Transport"), X_("PlaySelection"));
play_selection_button.set_related_action (act);
-
+ act = ActionManager::get_action (X_("MIDI"), X_("panic"));
+ midi_panic_button.set_related_action (act);
act = ActionManager::get_action (X_("Transport"), X_("ToggleTimeMaster"));
- act->connect_proxy (time_master_button);
+ time_master_button.set_related_action (act);
act = ActionManager::get_action (X_("Transport"), X_("ToggleExternalSync"));
- act->connect_proxy (sync_button);
-
+ sync_button.set_related_action (act);
/* clocks, etc. */
/* CANNOT sigc::bind these to clicked or toggled, must use pressed or released */
- solo_alert_button.set_name ("TransportSoloAlert");
+ solo_alert_button.set_name ("rude solo");
solo_alert_button.signal_button_press_event().connect (sigc::mem_fun(*this,&ARDOUR_UI::solo_alert_press), false);
- auditioning_alert_button.set_name ("TransportAuditioningAlert");
+ auditioning_alert_button.set_name ("rude audition");
auditioning_alert_button.signal_button_press_event().connect (sigc::mem_fun(*this,&ARDOUR_UI::audition_alert_press), false);
alert_box.pack_start (solo_alert_button, true, false);
HBox* tbox = manage (new HBox);
tbox->set_spacing (2);
+ tbox->pack_start (midi_panic_button, false, false);
tbox->pack_start (goto_start_button, false, false);
tbox->pack_start (goto_end_button, false, false);
}
transport_tearoff_hbox.pack_start (*toggle_box, false, false);
- Table* time_controls_table = manage (new Table (2, 2));
- time_controls_table->set_col_spacings (6);
- time_controls_table->attach (sync_button, 0, 1, 0, 1, Gtk::AttachOptions(FILL|EXPAND), Gtk::AttachOptions(0));
- time_controls_table->attach (time_master_button, 0, 1, 1, 2, Gtk::AttachOptions(FILL|EXPAND), Gtk::AttachOptions(0));
-
- time_controls_table->attach (click_button, 1, 2, 0, 2, Gtk::AttachOptions(FILL|EXPAND), FILL);
+ VBox* time_controls = manage (new VBox);
+ time_controls->set_spacing (2);
+ time_controls->set_homogeneous (true);
+ time_controls->pack_start (sync_button, true, false);
+ time_controls->pack_start (time_master_button, true, false);
transport_tearoff_hbox.pack_start (*clock_box, false, false);
- transport_tearoff_hbox.pack_start (*time_controls_table, false, false);
+ transport_tearoff_hbox.pack_start (*time_controls, false, false);
+ transport_tearoff_hbox.pack_start (click_button, false, false);
time_info_box = manage (new TimeInfoBox);
transport_tearoff_hbox.pack_start (*time_info_box, false, false);
-
if (Profile->get_small_screen()) {
transport_tearoff_hbox.pack_start (_editor_transport_box, false, false);
}
{
if (_session == 0 || !_session->config.get_external_sync()) {
/* internal sync */
- sync_button.set_visual_state (0);
+ sync_button.unset_active_state ();
return;
}
/* not locked, so blink on and off according to the onoff argument */
if (onoff) {
- sync_button.set_visual_state (1); // "-active"
+ sync_button.set_active_state (Gtkmm2ext::Active); // "-active"
} else {
- sync_button.set_visual_state (0); // normal
+ sync_button.unset_active_state (); // normal
}
} else {
/* locked */
- sync_button.set_visual_state (1); // "-active"
+ sync_button.set_active_state (Gtkmm2ext::Active); // "-active"
}
}
if (_session->is_auditioning()) {
if (onoff) {
- auditioning_alert_button.set_state (STATE_ACTIVE);
+ auditioning_alert_button.set_active_state (Gtkmm2ext::Active);
} else {
- auditioning_alert_button.set_state (STATE_NORMAL);
+ auditioning_alert_button.unset_active_state();
}
} else {
- auditioning_alert_button.set_active (false);
- auditioning_alert_button.set_state (STATE_NORMAL);
+ auditioning_alert_button.unset_active_state ();
}
}