summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-05-31 23:14:03 +0000
committerCarl Hetherington <carl@carlh.net>2012-05-31 23:14:03 +0000
commit6624f9be372ffd664f762e3bcba91005de5659b3 (patch)
tree53ce1ca2467ae43268d4e390f831b03eaec30bbe
parent06aa9c74355c2d90acfb11697100271ffbe5462d (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.cc5
-rw-r--r--gtk2_ardour/ardour_ui.h5
-rw-r--r--gtk2_ardour/ardour_ui2.cc1
-rw-r--r--gtk2_ardour/ardour_ui_dialogs.cc1
-rw-r--r--gtk2_ardour/ardour_ui_ed.cc1
-rw-r--r--gtk2_ardour/ardour_ui_options.cc1
-rw-r--r--gtk2_ardour/audio_clock.cc4
-rw-r--r--gtk2_ardour/audio_clock.h7
-rw-r--r--gtk2_ardour/editor_regions.cc1
-rw-r--r--gtk2_ardour/main_clock.cc68
-rw-r--r--gtk2_ardour/main_clock.h33
-rw-r--r--gtk2_ardour/rc_option_editor.cc16
-rw-r--r--gtk2_ardour/sfdb_ui.cc1
-rw-r--r--gtk2_ardour/verbose_cursor.cc1
-rw-r--r--gtk2_ardour/wscript1
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',