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"));
{
RefPtr<Action> act;
+ transport_tearoff_hbox.set_border_width (3);
+ transport_tearoff_hbox.set_spacing (3);
+
transport_tearoff = manage (new TearOff (transport_tearoff_hbox));
transport_tearoff->set_name ("TransportBase");
transport_tearoff->tearoff_window().signal_key_press_event().connect (sigc::bind (sigc::ptr_fun (relay_key_press), &transport_tearoff->tearoff_window()), false);
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");
+
+ /* these have to provide a clear indication of active state */
- time_master_button.set_name ("TransportButton");
- sync_button.set_name ("TransportSyncButton");
+ 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, false, false);
- alert_box.pack_start (auditioning_alert_button, false, false);
+ alert_box.pack_start (solo_alert_button, true, false);
+ alert_box.pack_start (auditioning_alert_button, true, false);
HBox* tbox = manage (new HBox);
tbox->set_spacing (2);
- transport_tearoff_hbox.set_border_width (3);
-
+ tbox->pack_start (midi_panic_button, false, false);
tbox->pack_start (goto_start_button, false, false);
tbox->pack_start (goto_end_button, false, false);
/* translators: Egternal is "External" with a descender character */
set_size_request_to_display_given_text (sync_button, X_("Egternal"), 4, 10);
- // transport_tearoff_hbox.pack_start (*svbox, false, false, 3);
-
Glib::RefPtr<SizeGroup> transport_button_size_group1 = SizeGroup::create (SIZE_GROUP_HORIZONTAL);
transport_button_size_group1->add_widget (goto_start_button);
transport_button_size_group1->add_widget (goto_end_button);
transport_vbox->pack_start (*tbox, true, true, 0);
transport_vbox->pack_start (*shuttle_box, false, false, 0);
- transport_tearoff_hbox.pack_start (*transport_vbox, false, false, 0);
+ transport_tearoff_hbox.pack_start (*transport_vbox, false, false);
/* transport related toggle controls */
if (!Profile->get_small_screen()) {
toggle_box->pack_start (*auto_box, false, false);
}
- //VBox* io_box = manage (new VBox);
- //io_box->pack_start (auto_input_button, false, false);
- //io_box->pack_start (click_button, false, false);
- //if (!Profile->get_small_screen()) {
- // toggle_box->pack_start (*io_box, false, false);
- //}
- transport_tearoff_hbox.pack_start (*toggle_box, false, false, 4);
+ 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, 4);
+ 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, 4);
+ transport_tearoff_hbox.pack_start (_editor_transport_box, false, false);
}
transport_tearoff_hbox.pack_start (alert_box, false, false);
if (Profile->get_sae()) {
Image* img = manage (new Image ((::get_icon (X_("sae")))));
- transport_tearoff_hbox.pack_end (*img, false, false, 6);
+ transport_tearoff_hbox.pack_end (*img, false, false);
}
/* desensitize */
{
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 ();
}
}