diff options
author | Carl Hetherington <carl@carlh.net> | 2012-05-31 23:14:03 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2012-05-31 23:14:03 +0000 |
commit | 6624f9be372ffd664f762e3bcba91005de5659b3 (patch) | |
tree | 53ce1ca2467ae43268d4e390f831b03eaec30bbe | |
parent | 06aa9c74355c2d90acfb11697100271ffbe5462d (diff) |
Move delta-to-edit-point options to the main clock context menus (#4472).
git-svn-id: svn://localhost/ardour2/branches/3.0@12517 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 5 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 5 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui2.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_dialogs.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_options.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/audio_clock.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/audio_clock.h | 7 | ||||
-rw-r--r-- | gtk2_ardour/editor_regions.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/main_clock.cc | 68 | ||||
-rw-r--r-- | gtk2_ardour/main_clock.h | 33 | ||||
-rw-r--r-- | gtk2_ardour/rc_option_editor.cc | 16 | ||||
-rw-r--r-- | gtk2_ardour/sfdb_ui.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/verbose_cursor.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/wscript | 1 |
15 files changed, 120 insertions, 26 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 5e8d721970..f5c9a37605 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -89,6 +89,7 @@ typedef uint64_t microseconds_t; #include "gui_thread.h" #include "keyboard.h" #include "location_ui.h" +#include "main_clock.h" #include "missing_file_dialog.h" #include "missing_plugin_dialog.h" #include "mixer_ui.h" @@ -128,8 +129,8 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[]) : Gtkmm2ext::UI (PROGRAM_NAME, argcp, argvp) , gui_object_state (new GUIObjectState) - , primary_clock (new AudioClock (X_("primary"), false, X_("transport"), true, true, false, true)) - , secondary_clock (new AudioClock (X_("secondary"), false, X_("secondary"), true, true, false, true)) + , primary_clock (new MainClock (X_("primary"), false, X_("transport"), true, true, true, false, true)) + , secondary_clock (new MainClock (X_("secondary"), false, X_("secondary"), true, true, false, false, true)) /* big clock */ diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index b4409572e4..6e867292dc 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -83,6 +83,7 @@ class ButtonJoiner; class ConnectionEditor; class KeyEditor; class LocationUIWindow; +class MainClock; class Mixer_UI; class PublicEditor; class RCOptionEditor; @@ -194,8 +195,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr GUIObjectState* gui_object_state; - AudioClock* primary_clock; - AudioClock* secondary_clock; + MainClock* primary_clock; + MainClock* secondary_clock; void focus_on_clock (); TimeInfoBox* time_info_box; diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index 74353d21c0..19e8a8ce6f 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -47,6 +47,7 @@ #include "audio_clock.h" #include "actions.h" #include "button_joiner.h" +#include "main_clock.h" #include "utils.h" #include "theme_manager.h" #include "midi_tracer.h" diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 2dd48b71d1..b5bd622ae5 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -35,6 +35,7 @@ #include "gui_thread.h" #include "keyeditor.h" #include "location_ui.h" +#include "main_clock.h" #include "midi_tracer.h" #include "mixer_ui.h" #include "public_editor.h" diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index bd99be4ff2..394b1c5470 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -55,6 +55,7 @@ #include "window_proxy.h" #include "global_port_matrix.h" #include "location_ui.h" +#include "main_clock.h" #include <gtkmm2ext/application.h> diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc index 19e7106378..f2f7d397df 100644 --- a/gtk2_ardour/ardour_ui_options.cc +++ b/gtk2_ardour/ardour_ui_options.cc @@ -38,6 +38,7 @@ #include "actions.h" #include "gui_thread.h" #include "public_editor.h" +#include "main_clock.h" #include "i18n.h" diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index e20dfffcd8..dbe7f03a14 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -61,7 +61,8 @@ const double AudioClock::x_leading_padding = 6.0; AudioClock::AudioClock (const string& clock_name, bool transient, const string& widget_name, bool allow_edit, bool follows_playhead, bool duration, bool with_info) - : _name (clock_name) + : ops_menu (0) + , _name (clock_name) , is_transient (transient) , is_duration (duration) , editable (allow_edit) @@ -71,7 +72,6 @@ AudioClock::AudioClock (const string& clock_name, bool transient, const string& , layout_x_offset (0) , em_width (0) , _edit_by_click_field (false) - , ops_menu (0) , editing_attr (0) , foreground_attr (0) , first_height (0) diff --git a/gtk2_ardour/audio_clock.h b/gtk2_ardour/audio_clock.h index 33b486a8f1..ed96ac43d4 100644 --- a/gtk2_ardour/audio_clock.h +++ b/gtk2_ardour/audio_clock.h @@ -87,6 +87,9 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr protected: void render (cairo_t*); + virtual void build_ops_menu (); + Gtk::Menu *ops_menu; + private: Mode _mode; std::string _name; @@ -101,8 +104,6 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr int em_width; bool _edit_by_click_field; - Gtk::Menu *ops_menu; - Glib::RefPtr<Pango::Layout> _layout; Glib::RefPtr<Pango::Layout> _left_layout; Glib::RefPtr<Pango::Layout> _right_layout; @@ -197,8 +198,6 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr framepos_t frames_from_minsec_string (const std::string&) const; framepos_t frames_from_audioframes_string (const std::string&) const; - void build_ops_menu (); - void session_configuration_changed (std::string); Field index_to_field () const; diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index 01b26705f5..c57d07965f 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -47,6 +47,7 @@ #include "utils.h" #include "editor_regions.h" #include "editor_drag.h" +#include "main_clock.h" #include "i18n.h" diff --git a/gtk2_ardour/main_clock.cc b/gtk2_ardour/main_clock.cc new file mode 100644 index 0000000000..cf00e25839 --- /dev/null +++ b/gtk2_ardour/main_clock.cc @@ -0,0 +1,68 @@ +/* + Copyright (C) 2012 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "ardour/rc_configuration.h" +#include "main_clock.h" +#include "i18n.h" + +using namespace Gtk; + +MainClock::MainClock ( + const std::string& clock_name, + bool is_transient, + const std::string& widget_name, + bool editable, + bool follows_playhead, + bool primary, + bool duration, + bool with_info + ) + : AudioClock (clock_name, is_transient, widget_name, editable, follows_playhead, duration, with_info) + , _primary (primary) +{ + +} + +void +MainClock::build_ops_menu () +{ + using namespace Menu_Helpers; + + AudioClock::build_ops_menu (); + + MenuList& ops_items = ops_menu->items(); + ops_items.push_back (SeparatorElem ()); + ops_items.push_back (CheckMenuElem (_("Display delta to edit cursor"), sigc::mem_fun (*this, &MainClock::display_delta_to_edit_cursor))); + CheckMenuItem* c = dynamic_cast<CheckMenuItem *> (&ops_items.back()); + if (_primary) { + c->set_active (ARDOUR::Config->get_primary_clock_delta_edit_cursor ()); + } else { + c->set_active (ARDOUR::Config->get_secondary_clock_delta_edit_cursor ()); + } +} + +void +MainClock::display_delta_to_edit_cursor () +{ + if (_primary) { + ARDOUR::Config->set_primary_clock_delta_edit_cursor (!ARDOUR::Config->get_primary_clock_delta_edit_cursor ()); + } else { + ARDOUR::Config->set_secondary_clock_delta_edit_cursor (!ARDOUR::Config->get_secondary_clock_delta_edit_cursor ()); + } +} diff --git a/gtk2_ardour/main_clock.h b/gtk2_ardour/main_clock.h new file mode 100644 index 0000000000..959a3f9440 --- /dev/null +++ b/gtk2_ardour/main_clock.h @@ -0,0 +1,33 @@ +/* + Copyright (C) 2012 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "audio_clock.h" + +/** A simple subclass of AudioClock that adds the `display delta to edit cursor' option to its context menu */ +class MainClock : public AudioClock +{ +public: + MainClock (const std::string &, bool, const std::string &, bool, bool, bool primary, bool duration = false, bool with_info = false); + +private: + + void build_ops_menu (); + void display_delta_to_edit_cursor (); + bool _primary; +}; diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index ac9c11a5bb..f5a8cc56f0 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -1007,22 +1007,6 @@ RCOptionEditor::RCOptionEditor () add_option (_("Transport"), new BoolOption ( - "primary-clock-delta-edit-cursor", - _("Primary clock delta to edit cursor"), - sigc::mem_fun (*_rc_config, &RCConfiguration::get_primary_clock_delta_edit_cursor), - sigc::mem_fun (*_rc_config, &RCConfiguration::set_primary_clock_delta_edit_cursor) - )); - - add_option (_("Transport"), - new BoolOption ( - "secondary-clock-delta-edit-cursor", - _("Secondary clock delta to edit cursor"), - sigc::mem_fun (*_rc_config, &RCConfiguration::get_secondary_clock_delta_edit_cursor), - sigc::mem_fun (*_rc_config, &RCConfiguration::set_secondary_clock_delta_edit_cursor) - )); - - add_option (_("Transport"), - new BoolOption ( "disable-disarm-during-roll", _("Disable per-track record disarm while rolling"), sigc::mem_fun (*_rc_config, &RCConfiguration::get_disable_disarm_during_roll), diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc index 0e233e83d2..4dc919d4c5 100644 --- a/gtk2_ardour/sfdb_ui.cc +++ b/gtk2_ardour/sfdb_ui.cc @@ -61,6 +61,7 @@ #include "editing.h" #include "utils.h" #include "gain_meter.h" +#include "main_clock.h" #ifdef FREESOUND #include "sfdb_freesound_mootcher.h" diff --git a/gtk2_ardour/verbose_cursor.cc b/gtk2_ardour/verbose_cursor.cc index f80b74c4f8..eb73cb91c8 100644 --- a/gtk2_ardour/verbose_cursor.cc +++ b/gtk2_ardour/verbose_cursor.cc @@ -26,6 +26,7 @@ #include "audio_clock.h" #include "editor.h" #include "editor_drag.h" +#include "main_clock.h" #include "utils.h" #include "verbose_cursor.h" diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index b9fca6cc0a..99a668641c 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -132,6 +132,7 @@ gtk2_ardour_sources = [ 'lineset.cc', 'location_ui.cc', 'main.cc', + 'main_clock.cc', 'marker.cc', 'midi_automation_line.cc', 'midi_channel_dialog.cc', |