diff options
author | Carl Hetherington <carl@carlh.net> | 2010-11-14 13:48:24 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-11-14 13:48:24 +0000 |
commit | 91d3ab7cec9f4699b5f0080dd5cb39c2df598ee9 (patch) | |
tree | 62f4a5bdbd3e522ca84bd4be2eb99274503ba644 /gtk2_ardour | |
parent | aff8e4e941f065c9ed221ea393084b13ba5ac4e2 (diff) |
Add a clock to the menu bar in full-screen mode. Fixes #1273.
git-svn-id: svn://localhost/ardour2/branches/3.0@8024 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour3_ui_dark.rc.in | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 9 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui2.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_dialogs.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 30 | ||||
-rw-r--r-- | gtk2_ardour/editor.cc | 1 |
7 files changed, 48 insertions, 2 deletions
diff --git a/gtk2_ardour/ardour3_ui_dark.rc.in b/gtk2_ardour/ardour3_ui_dark.rc.in index 6b5d8e521d..ee49bf2468 100644 --- a/gtk2_ardour/ardour3_ui_dark.rc.in +++ b/gtk2_ardour/ardour3_ui_dark.rc.in @@ -1599,6 +1599,7 @@ widget "*EditPointClock" style:highest "default_clock_display" widget "*PreRollClock" style:highest "default_clock_display" widget "*PostRollClock" style:highest "default_clock_display" widget "*NudgeClock" style:highest "default_clock_display" +widget "*MenuBarClock" style:highest "default_clock_display" widget "*ZoomRangeClock" style:highest "default_clock_display" widget "*SMPTEOffsetClock" style:highest "default_clock_display" widget "*TransportLabel" style:highest "small_bold_text" diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index ad802b72a1..146da885de 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -174,6 +174,8 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[]) auditioning_alert_button (_("AUDITION")), solo_alert_button (_("SOLO")), + _menu_bar_clock (X_("menu_bar"), false, X_("MenuBarClock"), true, true, false, false), + error_log_button (_("Errors")) { diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 3f4ed3eca5..1fd73e472c 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -237,7 +237,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void add_window_proxy (WindowProxyBase *); void remove_window_proxy (WindowProxyBase *); - + protected: friend class PublicEditor; @@ -307,7 +307,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void about_signal_response(int response); - private: Gtk::VBox top_packer; sigc::connection clock_signal_connection; @@ -538,6 +537,12 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr sigc::connection point_oh_five_second_connection; sigc::connection point_zero_one_second_connection; + AudioClock _menu_bar_clock; + sigc::connection _menu_bar_clock_connection; + void menu_bar_clock_value_changed (); + void show_menu_bar_clock (); + void hide_menu_bar_clock (); + gint session_menu (GdkEventButton *); bool _will_create_new_session_automatically; diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index d92df90f8e..bdc75080fd 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -944,6 +944,8 @@ ARDOUR_UI::editor_realized () set_size_request_to_display_given_text (speed_display_box, _("-0.55"), 2, 2); reset_dpi (); + + hide_menu_bar_clock (); } void @@ -958,6 +960,8 @@ ARDOUR_UI::maximise_editing_space () if (Config->get_keep_tearoffs()) { transport_tearoff->set_visible (true); } + + show_menu_bar_clock (); } void @@ -969,4 +973,6 @@ ARDOUR_UI::restore_editing_space () transport_tearoff->set_visible (true); editor->restore_editing_space (); + + hide_menu_bar_clock (); } diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 87f66632af..98677bb9b4 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -87,6 +87,7 @@ ARDOUR_UI::set_session (Session *s) big_clock.set_session (s); preroll_clock.set_session (s); postroll_clock.set_session (s); + _menu_bar_clock.set_session (s); /* sensitize menu bar options that are now valid */ diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index c962c63f4e..042252a3a9 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -522,10 +522,15 @@ ARDOUR_UI::build_menu_bar () cpu_load_box.set_name ("CPULoad"); cpu_load_label.set_name ("CPULoad"); + /* Set up some size requests here to stop the menu-bar clock jumping around in full-screen mode */ + + /* TRANSLATORS: just translate `Buffers' in this string */ + set_size_request_to_display_given_text (buffer_load_label, _("Buffers p:100% c:100%"), 2, 0); buffer_load_box.add (buffer_load_label); buffer_load_box.set_name ("BufferLoad"); buffer_load_label.set_name ("BufferLoad"); + set_size_request_to_display_given_text (sample_rate_label, X_("384 kHz / 1000 ms"), 2, 0); sample_rate_box.add (sample_rate_label); sample_rate_box.set_name ("SampleRate"); sample_rate_label.set_name ("SampleRate"); @@ -536,6 +541,9 @@ ARDOUR_UI::build_menu_bar () use_menubar_as_top_menubar (); #endif + _menu_bar_clock.ValueChanged.connect (sigc::mem_fun(*this, &ARDOUR_UI::menu_bar_clock_value_changed)); + menu_hbox.pack_start (_menu_bar_clock, false, false); + if (!Profile->get_small_screen()) { #ifndef GTKOSX // OSX provides its own wallclock, thank you very much @@ -773,3 +781,25 @@ ARDOUR_UI::toggle_global_port_matrix (ARDOUR::DataType t) } } +void +ARDOUR_UI::show_menu_bar_clock () +{ + _menu_bar_clock.show (); + _menu_bar_clock.set (_session->audible_frame (), true); + _menu_bar_clock_connection = ARDOUR_UI::Clock.connect (sigc::bind (sigc::mem_fun (_menu_bar_clock, &AudioClock::set), 'p')); +} + +void +ARDOUR_UI::hide_menu_bar_clock () +{ + _menu_bar_clock.hide (); + _menu_bar_clock_connection.disconnect (); +} + +void +ARDOUR_UI::menu_bar_clock_value_changed () +{ + if (_session) { + _session->request_locate (_menu_bar_clock.current_time ()); + } +} diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 7bbf4493fe..f77d9b935a 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4092,6 +4092,7 @@ Editor::maximise_editing_space () _tools_tearoff->set_visible (true); _zoom_tearoff->set_visible (true); } + } void |