diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-10 04:30:08 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-10 04:30:08 +0000 |
commit | a65149b2462ea0e73c4686d7ed7bbc42bf6a1632 (patch) | |
tree | 357ff8dbc5c10e7804da23d7876d3ccf9b14f46e /gtk2_ardour/ardour_ui2.cc | |
parent | dbb0b9ca4f82ea8e3829cfeb009b9746c3d6f0dc (diff) |
lots of tweaks relating to GUI sync management
git-svn-id: svn://localhost/ardour2/branches/3.0@6051 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/ardour_ui2.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui2.cc | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index 7f7d46150c..60477c894f 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -127,6 +127,19 @@ ARDOUR_UI::display_message (const char *prefix, gint prefix_len, RefPtr<TextBuff #endif } +static bool +null_crossing (GdkEventCrossing* /* ignored */) +{ + return true; +} + +static void +block_prelight (Gtk::Widget& w) +{ + w.signal_enter_notify_event().connect (sigc::ptr_fun (null_crossing), false); + w.signal_leave_notify_event().connect (sigc::ptr_fun (null_crossing), false); +} + void ARDOUR_UI::setup_transport () { @@ -172,6 +185,7 @@ ARDOUR_UI::setup_transport () punch_out_button.set_name ("TransportButton"); click_button.set_name ("TransportButton"); time_master_button.set_name ("TransportButton"); + sync_button.set_name ("TransportSyncButton"); stop_button.set_size_request(29, -1); roll_button.set_size_request(29, -1); @@ -225,6 +239,8 @@ ARDOUR_UI::setup_transport () act->connect_proxy (play_selection_button); act = ActionManager::get_action (X_("Transport"), X_("ToggleTimeMaster")); act->connect_proxy (time_master_button); + act = ActionManager::get_action (X_("Transport"), X_("ToggleExternalSync")); + act->connect_proxy (sync_button); ARDOUR_UI::instance()->tooltips().set_tip (roll_button, _("Play from playhead")); ARDOUR_UI::instance()->tooltips().set_tip (stop_button, _("Stop playback")); @@ -239,12 +255,13 @@ ARDOUR_UI::setup_transport () ARDOUR_UI::instance()->tooltips().set_tip (punch_in_button, _("Start recording at auto-punch start")); ARDOUR_UI::instance()->tooltips().set_tip (punch_out_button, _("Stop recording at auto-punch end")); ARDOUR_UI::instance()->tooltips().set_tip (click_button, _("Enable/Disable audio click")); - ARDOUR_UI::instance()->tooltips().set_tip (sync_button, _("Positional sync source")); + ARDOUR_UI::instance()->tooltips().set_tip (sync_button, _("Enable/Disable external positional sync")); ARDOUR_UI::instance()->tooltips().set_tip (time_master_button, _("Does Ardour control the time?")); ARDOUR_UI::instance()->tooltips().set_tip (shuttle_box, _("Shuttle speed control")); ARDOUR_UI::instance()->tooltips().set_tip (shuttle_units_button, _("Select semitones or %%-age for speed display")); ARDOUR_UI::instance()->tooltips().set_tip (speed_display_box, _("Current transport speed")); + shuttle_box.set_flags (CAN_FOCUS); shuttle_box.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::BUTTON_PRESS_MASK|Gdk::POINTER_MOTION_MASK|Gdk::SCROLL_MASK); shuttle_box.set_size_request (100, 15); @@ -331,9 +348,7 @@ ARDOUR_UI::setup_transport () sdframe->set_shadow_type (SHADOW_IN); sdframe->add (speed_display_box); - sync_button.set_name ("TransportSyncAlert"); - sync_button.signal_clicked().connect (mem_fun (*this, &ARDOUR_UI::sync_button_clicked)); - // XXX HOW TO USE set_popdown_strings() with this when we don't know the real strings till later? + /* translators: Egternal is "External" with a descender character */ set_size_request_to_display_given_text (sync_button, X_("Egternal"), 4, 10); shbox->pack_start (*sdframe, false, false); @@ -488,17 +503,22 @@ void ARDOUR_UI::sync_blink (bool onoff) { if (session == 0 || !session->config.get_external_sync()) { + /* internal sync */ + sync_button.set_visual_state (0); return; } if (!session->transport_locked()) { + /* not locked, so blink on and off according to the onoff argument */ + if (onoff) { - sync_button.set_state (STATE_ACTIVE); + sync_button.set_visual_state (1); // "-active" } else { - sync_button.set_state (STATE_NORMAL); + sync_button.set_visual_state (0); // normal } } else { - sync_button.set_state (STATE_NORMAL); + /* locked */ + sync_button.set_visual_state (1); // "-active" } } @@ -863,14 +883,6 @@ ARDOUR_UI::editor_realized () } void -ARDOUR_UI::sync_button_clicked () -{ - if (session) { - session->config.set_external_sync (sync_button.get_active()); - } -} - -void ARDOUR_UI::maximise_editing_space () { if (!editor) { |