more fixes on the long road to compiling

git-svn-id: svn://localhost/trunk/ardour2@103 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2005-11-17 21:31:37 +00:00
parent 5d51500490
commit cdc2d055f1
15 changed files with 217 additions and 266 deletions

View File

@ -29,21 +29,21 @@ using namespace std;
using namespace Gtk;
using namespace Glib;
using namespace sigc;
using namespace ActionManager;
vector<Glib::RefPtr<Gtk::Action> > ActionManager::session_sensitive_actions;
vector<Glib::RefPtr<Gtk::Action> > ActionManager::region_list_selection_sensitive_actions;
vector<Glib::RefPtr<Gtk::Action> > ActionManager::region_selection_sensitive_actions;
vector<Glib::RefPtr<Gtk::Action> > ActionManager::track_selection_sensitive_actions;
vector<Glib::RefPtr<Gtk::Action> > ActionManager::plugin_selection_sensitive_actions;
vector<Glib::RefPtr<Gtk::Action> > ActionManager::range_sensitive_actions;
vector<Glib::RefPtr<Gtk::Action> > ActionManager::jack_sensitive_actions;
vector<RefPtr<Gtk::Action> > ActionManager::session_sensitive_actions;
vector<RefPtr<Gtk::Action> > ActionManager::region_list_selection_sensitive_actions;
vector<RefPtr<Gtk::Action> > ActionManager::region_selection_sensitive_actions;
vector<RefPtr<Gtk::Action> > ActionManager::track_selection_sensitive_actions;
vector<RefPtr<Gtk::Action> > ActionManager::plugin_selection_sensitive_actions;
vector<RefPtr<Gtk::Action> > ActionManager::range_sensitive_actions;
vector<RefPtr<Gtk::Action> > ActionManager::jack_sensitive_actions;
string ActionManager::unbound_string = "--";
namespace ActionManager {
static vector<Glib::RefPtr<UIManager> > ui_managers;
static vector<RefPtr<UIManager> > ui_managers;
void
register_ui_manager (Glib::RefPtr<UIManager> uim)
register_ui_manager (RefPtr<UIManager> uim)
{
ui_managers.push_back (uim);
}
@ -119,7 +119,7 @@ register_toggle_action (RefPtr<ActionGroup> group, string name, string label, sl
return act;
}
bool lookup_entry (const Glib::ustring accel_path, Gtk::AccelKey& key)
bool lookup_entry (const ustring accel_path, Gtk::AccelKey& key)
{
GtkAccelKey gkey;
bool known = gtk_accel_map_lookup_entry (accel_path.c_str(), &gkey);
@ -133,10 +133,21 @@ bool lookup_entry (const Glib::ustring accel_path, Gtk::AccelKey& key)
return known;
}
void
merge_actions (RefPtr<ActionGroup> dst, const RefPtr<ActionGroup> src)
{
ListHandle<RefPtr<Action> > group_actions = src->get_actions();
for (ListHandle<RefPtr<Action> >::iterator a = group_actions.begin(); a != group_actions.end(); ++a) {
RefPtr<Action> act = Action::create ((*a)->get_name(), (*a)->property_label());
dst->add (act);
}
}
void
get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& keys, vector<AccelKey>& bindings)
{
for (vector<Glib::RefPtr<UIManager> >::iterator u = ui_managers.begin(); u != ui_managers.end(); ++u) {
for (vector<RefPtr<UIManager> >::iterator u = ui_managers.begin(); u != ui_managers.end(); ++u) {
ListHandle<RefPtr<ActionGroup> > uim_groups = (*u)->get_action_groups ();
@ -159,7 +170,7 @@ get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& k
if (known) {
keys.push_back ((*u)->get_accel_group()->name (key.get_key(), Gdk::ModifierType (key.get_mod())));
} else {
keys.push_back ("--");
keys.push_back (unbound_string);
}
bindings.push_back (AccelKey (key.get_key(), Gdk::ModifierType (key.get_mod())));
@ -167,5 +178,3 @@ get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& k
}
}
}
}

View File

@ -21,6 +21,8 @@ namespace ActionManager
extern std::vector<Glib::RefPtr<Gtk::Action> > range_sensitive_actions;
extern std::vector<Glib::RefPtr<Gtk::Action> > jack_sensitive_actions;
extern std::string unbound_string; /* the key string returned if an action is not bound */
void register_ui_manager (Glib::RefPtr<Gtk::UIManager>);
Glib::RefPtr<Gtk::Action> register_action (Glib::RefPtr<Gtk::ActionGroup> group,
@ -42,6 +44,9 @@ namespace ActionManager
guint key, Gdk::ModifierType mods);
Glib::RefPtr<Gtk::Action> register_toggle_action (Glib::RefPtr<Gtk::ActionGroup> group,
std::string name, std::string label, sigc::slot<void> sl);
void merge_actions (Glib::RefPtr<Gtk::ActionGroup> dst, const Glib::RefPtr<Gtk::ActionGroup> src);
};
#endif /* __ardour_gtk_actions_h__ */

View File

@ -677,6 +677,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
/* Keymap handling */
void install_keybindings ();
Glib::RefPtr<Gtk::ActionGroup> get_common_actions();
void install_actions ();
void test_binding_action (const char *);
void start_keyboard_prefix();
@ -732,6 +733,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
bool filter_ardour_session_dirs (const Gtk::FileFilter::Info&);
Glib::RefPtr<Gtk::UIManager> ui_manager;
Glib::RefPtr<Gtk::ActionGroup> common_actions;
};
#endif /* __ardour_gui_h__ */

View File

@ -139,7 +139,9 @@ ARDOUR_UI::install_actions ()
act = register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency8192"), X_("8192"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 8192));
jack_sensitive_actions.push_back (act);
Glib::RefPtr<ActionGroup> common_actions = ActionGroup::create (X_("Common"));
/* these actions are intended to be shared across all windows */
common_actions = ActionGroup::create (X_("Common"));
register_action (common_actions, X_("Start-Prefix"), _("start prefix"), mem_fun(*this, &ARDOUR_UI::start_keyboard_prefix));
register_action (common_actions, X_("Quit"), _("quit"), (mem_fun(*this, &ARDOUR_UI::finish)));

View File

@ -32,74 +32,73 @@ using namespace sigc;
void
ARDOUR_UI::install_keybindings ()
{
KeyboardTarget::add_action ("start-prefix", mem_fun(*this, &ARDOUR_UI::start_keyboard_prefix));
register_action (shared_actions, "start-prefix", _("start-prefix"), mem_fun(*this, &ARDOUR_UI::start_keyboard_prefix));
KeyboardTarget::add_action ("toggle-editor-window", mem_fun(*this, &ARDOUR_UI::goto_editor_window));
KeyboardTarget::add_action ("toggle-mixer-window", mem_fun(*this, &ARDOUR_UI::goto_mixer_window));
KeyboardTarget::add_action ("toggle-locations-window", mem_fun(*this, &ARDOUR_UI::toggle_location_window));
KeyboardTarget::add_action ("toggle-big-clock-window", mem_fun(*this, &ARDOUR_UI::toggle_big_clock_window));
KeyboardTarget::add_action ("toggle-options-window", mem_fun(*this, &ARDOUR_UI::toggle_options_window));
KeyboardTarget::add_action ("toggle-auto-loop", mem_fun(*this, &ARDOUR_UI::toggle_session_auto_loop));
KeyboardTarget::add_action ("toggle-punch-in", mem_fun(*this, &ARDOUR_UI::toggle_session_punch_in));
register_action (shared_actions, "toggle-editor-window", _("toggle-editor-window"), mem_fun(*this, &ARDOUR_UI::goto_editor_window));
register_action (shared_actions, "toggle-mixer-window", _("toggle-mixer-window"), mem_fun(*this, &ARDOUR_UI::goto_mixer_window));
register_action (shared_actions, "toggle-locations-window", _("toggle-locations-window"), mem_fun(*this, &ARDOUR_UI::toggle_location_window));
register_action (shared_actions, "toggle-big-clock-window", _("toggle-big-clock-window"), mem_fun(*this, &ARDOUR_UI::toggle_big_clock_window));
register_action (shared_actions, "toggle-options-window", _("toggle-options-window"), mem_fun(*this, &ARDOUR_UI::toggle_options_window));
register_action (shared_actions, "toggle-auto-loop", _("toggle-auto-loop"), mem_fun(*this, &ARDOUR_UI::toggle_session_auto_loop));
register_action (shared_actions, "toggle-punch-in", _("toggle-punch-in"), mem_fun(*this, &ARDOUR_UI::toggle_session_punch_in));
KeyboardTarget::add_action ("new-session", bind (mem_fun(*this, &ARDOUR_UI::new_session), false, string()));
KeyboardTarget::add_action ("add-audio-track", bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_track), 1, 1));
KeyboardTarget::add_action ("add-audio-bus", bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_bus), 1, 1));
register_action (shared_actions, "new-session", _("new-session"), bind (mem_fun(*this, &ARDOUR_UI::new_session), false, string()));
register_action (shared_actions, "add-audio-track", _("add-audio-track"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_track), 1, 1));
register_action (shared_actions, "add-audio-bus", _("add-audio-bus"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_bus), 1, 1));
KeyboardTarget::add_action ("save-state", bind (mem_fun(*this, &ARDOUR_UI::save_state), string ("")));
KeyboardTarget::add_action ("quit", (mem_fun(*this, &ARDOUR_UI::finish)));
register_action (shared_actions, "save-state", _("save-state"), bind (mem_fun(*this, &ARDOUR_UI::save_state), string ("")));
register_action (shared_actions, "quit", _("quit"), (mem_fun(*this, &ARDOUR_UI::finish)));
register_action (shared_actions, "remove-last-capture", _("remove-last-capture"), mem_fun(*this, &ARDOUR_UI::remove_last_capture));
KeyboardTarget::add_action ("remove-last-capture", mem_fun(*this, &ARDOUR_UI::remove_last_capture));
register_action (shared_actions, "transport-stop", _("transport-stop"), mem_fun(*this, &ARDOUR_UI::transport_stop));
register_action (shared_actions, "transport-stop-and-forget-capture", _("transport-stop-and-forget-capture"), mem_fun(*this, &ARDOUR_UI::transport_stop_and_forget_capture));
register_action (shared_actions, "transport-roll", _("transport-roll"), mem_fun(*this, &ARDOUR_UI::transport_roll));
register_action (shared_actions, "transport-loop", _("transport-loop"), mem_fun(*this, &ARDOUR_UI::transport_loop));
register_action (shared_actions, "transport-record", _("transport-record"), mem_fun(*this, &ARDOUR_UI::transport_record));
register_action (shared_actions, "transport-rewind", _("transport-rewind"), bind (mem_fun(*this, &ARDOUR_UI::transport_rewind), 0));
register_action (shared_actions, "transport-rewind-slow", _("transport-rewind-slow"), bind (mem_fun(*this, &ARDOUR_UI::transport_rewind), -1));
register_action (shared_actions, "transport-rewind-fast", _("transport-rewind-fast"), bind (mem_fun(*this, &ARDOUR_UI::transport_rewind), 1));
register_action (shared_actions, "transport-forward", _("transport-forward"), bind (mem_fun(*this, &ARDOUR_UI::transport_forward), 0));
register_action (shared_actions, "transport-forward-slow", _("transport-forward-slow"), bind (mem_fun(*this, &ARDOUR_UI::transport_forward), -1));
register_action (shared_actions, "transport-forward-fast", _("transport-forward-fast"), bind (mem_fun(*this, &ARDOUR_UI::transport_forward), 1));
KeyboardTarget::add_action ("transport-stop", mem_fun(*this, &ARDOUR_UI::transport_stop));
KeyboardTarget::add_action ("transport-stop-and-forget-capture", mem_fun(*this, &ARDOUR_UI::transport_stop_and_forget_capture));
KeyboardTarget::add_action ("transport-roll", mem_fun(*this, &ARDOUR_UI::transport_roll));
KeyboardTarget::add_action ("transport-loop", mem_fun(*this, &ARDOUR_UI::transport_loop));
KeyboardTarget::add_action ("transport-record", mem_fun(*this, &ARDOUR_UI::transport_record));
KeyboardTarget::add_action ("transport-rewind", bind (mem_fun(*this, &ARDOUR_UI::transport_rewind), 0));
KeyboardTarget::add_action ("transport-rewind-slow", bind (mem_fun(*this, &ARDOUR_UI::transport_rewind), -1));
KeyboardTarget::add_action ("transport-rewind-fast", bind (mem_fun(*this, &ARDOUR_UI::transport_rewind), 1));
KeyboardTarget::add_action ("transport-forward", bind (mem_fun(*this, &ARDOUR_UI::transport_forward), 0));
KeyboardTarget::add_action ("transport-forward-slow", bind (mem_fun(*this, &ARDOUR_UI::transport_forward), -1));
KeyboardTarget::add_action ("transport-forward-fast", bind (mem_fun(*this, &ARDOUR_UI::transport_forward), 1));
register_action (shared_actions, "transport-goto-start", _("transport-goto-start"), mem_fun(*this, &ARDOUR_UI::transport_goto_start));
register_action (shared_actions, "transport-goto-end", _("transport-goto-end"), mem_fun(*this, &ARDOUR_UI::transport_goto_end));
KeyboardTarget::add_action ("transport-goto-start", mem_fun(*this, &ARDOUR_UI::transport_goto_start));
KeyboardTarget::add_action ("transport-goto-end", mem_fun(*this, &ARDOUR_UI::transport_goto_end));
KeyboardTarget::add_action ("send-all-midi-feedback", mem_fun(*this, &ARDOUR_UI::send_all_midi_feedback));
register_action (shared_actions, "send-all-midi-feedback", _("send-all-midi-feedback"), mem_fun(*this, &ARDOUR_UI::send_all_midi_feedback));
KeyboardTarget::add_action ("toggle-record-enable-track1", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 0U));
KeyboardTarget::add_action ("toggle-record-enable-track2", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 1U));
KeyboardTarget::add_action ("toggle-record-enable-track3", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 2U));
KeyboardTarget::add_action ("toggle-record-enable-track4", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 3U));
KeyboardTarget::add_action ("toggle-record-enable-track5", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 4U));
KeyboardTarget::add_action ("toggle-record-enable-track6", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 5U));
KeyboardTarget::add_action ("toggle-record-enable-track7", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 6U));
KeyboardTarget::add_action ("toggle-record-enable-track8", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 7U));
KeyboardTarget::add_action ("toggle-record-enable-track9", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 8U));
KeyboardTarget::add_action ("toggle-record-enable-track10", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 9U));
KeyboardTarget::add_action ("toggle-record-enable-track11", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 10U));
KeyboardTarget::add_action ("toggle-record-enable-track12", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 11U));
KeyboardTarget::add_action ("toggle-record-enable-track13", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 12U));
KeyboardTarget::add_action ("toggle-record-enable-track14", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 13U));
KeyboardTarget::add_action ("toggle-record-enable-track15", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 14U));
KeyboardTarget::add_action ("toggle-record-enable-track16", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 15U));
KeyboardTarget::add_action ("toggle-record-enable-track17", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 16U));
KeyboardTarget::add_action ("toggle-record-enable-track18", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 17U));
KeyboardTarget::add_action ("toggle-record-enable-track19", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 18U));
KeyboardTarget::add_action ("toggle-record-enable-track20", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 19U));
KeyboardTarget::add_action ("toggle-record-enable-track21", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 20U));
KeyboardTarget::add_action ("toggle-record-enable-track22", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 21U));
KeyboardTarget::add_action ("toggle-record-enable-track23", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 22U));
KeyboardTarget::add_action ("toggle-record-enable-track24", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 23U));
KeyboardTarget::add_action ("toggle-record-enable-track25", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 24U));
KeyboardTarget::add_action ("toggle-record-enable-track26", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 25U));
KeyboardTarget::add_action ("toggle-record-enable-track27", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 26U));
KeyboardTarget::add_action ("toggle-record-enable-track28", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 27U));
KeyboardTarget::add_action ("toggle-record-enable-track29", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 28U));
KeyboardTarget::add_action ("toggle-record-enable-track30", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 29U));
KeyboardTarget::add_action ("toggle-record-enable-track31", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 30U));
KeyboardTarget::add_action ("toggle-record-enable-track32", bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 31U));
register_action (shared_actions, "toggle-record-enable-track1", _("toggle-record-enable-track1"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 0U));
register_action (shared_actions, "toggle-record-enable-track2", _("toggle-record-enable-track2"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 1U));
register_action (shared_actions, "toggle-record-enable-track3", _("toggle-record-enable-track3"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 2U));
register_action (shared_actions, "toggle-record-enable-track4", _("toggle-record-enable-track4"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 3U));
register_action (shared_actions, "toggle-record-enable-track5", _("toggle-record-enable-track5"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 4U));
register_action (shared_actions, "toggle-record-enable-track6", _("toggle-record-enable-track6"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 5U));
register_action (shared_actions, "toggle-record-enable-track7", _("toggle-record-enable-track7"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 6U));
register_action (shared_actions, "toggle-record-enable-track8", _("toggle-record-enable-track8"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 7U));
register_action (shared_actions, "toggle-record-enable-track9", _("toggle-record-enable-track9"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 8U));
register_action (shared_actions, "toggle-record-enable-track10", _("toggle-record-enable-track10"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 9U));
register_action (shared_actions, "toggle-record-enable-track11", _("toggle-record-enable-track11"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 10U));
register_action (shared_actions, "toggle-record-enable-track12", _("toggle-record-enable-track12"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 11U));
register_action (shared_actions, "toggle-record-enable-track13", _("toggle-record-enable-track13"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 12U));
register_action (shared_actions, "toggle-record-enable-track14", _("toggle-record-enable-track14"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 13U));
register_action (shared_actions, "toggle-record-enable-track15", _("toggle-record-enable-track15"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 14U));
register_action (shared_actions, "toggle-record-enable-track16", _("toggle-record-enable-track16"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 15U));
register_action (shared_actions, "toggle-record-enable-track17", _("toggle-record-enable-track17"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 16U));
register_action (shared_actions, "toggle-record-enable-track18", _("toggle-record-enable-track18"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 17U));
register_action (shared_actions, "toggle-record-enable-track19", _("toggle-record-enable-track19"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 18U));
register_action (shared_actions, "toggle-record-enable-track20", _("toggle-record-enable-track20"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 19U));
register_action (shared_actions, "toggle-record-enable-track21", _("toggle-record-enable-track21"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 20U));
register_action (shared_actions, "toggle-record-enable-track22", _("toggle-record-enable-track22"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 21U));
register_action (shared_actions, "toggle-record-enable-track23", _("toggle-record-enable-track23"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 22U));
register_action (shared_actions, "toggle-record-enable-track24", _("toggle-record-enable-track24"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 23U));
register_action (shared_actions, "toggle-record-enable-track25", _("toggle-record-enable-track25"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 24U));
register_action (shared_actions, "toggle-record-enable-track26", _("toggle-record-enable-track26"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 25U));
register_action (shared_actions, "toggle-record-enable-track27", _("toggle-record-enable-track27"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 26U));
register_action (shared_actions, "toggle-record-enable-track28", _("toggle-record-enable-track28"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 27U));
register_action (shared_actions, "toggle-record-enable-track29", _("toggle-record-enable-track29"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 28U));
register_action (shared_actions, "toggle-record-enable-track30", _("toggle-record-enable-track30"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 29U));
register_action (shared_actions, "toggle-record-enable-track31", _("toggle-record-enable-track31"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 30U));
register_action (shared_actions, "toggle-record-enable-track32", _("toggle-record-enable-track32"), bind (mem_fun(*this, &ARDOUR_UI::toggle_record_enable), 31U));
#if 0
ADD ME TO ARDOUR RC SOMEDAY

View File

@ -47,7 +47,6 @@
#include <ardour/location.h>
#include <ardour/region.h>
#include "keyboard_target.h"
#include "audio_clock.h"
#include "gtk-custom-ruler.h"
#include "ardour_dialog.h"
@ -834,7 +833,6 @@ class Editor : public PublicEditor
/* KEYMAP HANDLING */
void register_actions ();
void install_keybindings ();
int ensure_cursor (jack_nframes_t* pos);

View File

@ -17,10 +17,15 @@ using namespace ActionManager;
void
Editor::register_actions ()
{
/* add named actions for the editor */
Glib::RefPtr<ActionGroup> editor_actions = ActionGroup::create (X_("Editor"));
/* start with actions shared between all top level (major) windows */
merge_actions (editor_actions, ARDOUR_UI::instance()::get_common_actions());
/* add named actions for the editor */
register_action (editor_actions, "toggle-xfades-active", _("toggle xfades active"), mem_fun(*this, &Editor::toggle_xfades_active));
register_action (editor_actions, "playhead-to-next-region-start", _("playhead to next region start"), bind (mem_fun(*this, &Editor::cursor_to_next_region_point), playhead_cursor, RegionPoint (Start)));

View File

@ -38,145 +38,6 @@
using namespace ARDOUR;
using namespace sigc;
void
Editor::install_keybindings ()
{
/* add named actions for the editor */
add_action ("toggle-xfades-active", mem_fun(*this, &Editor::toggle_xfades_active));
add_action ("playhead-to-next-region-start", bind (mem_fun(*this, &Editor::cursor_to_next_region_point), playhead_cursor, RegionPoint (Start)));
add_action ("playhead-to-next-region-end", bind (mem_fun(*this, &Editor::cursor_to_next_region_point), playhead_cursor, RegionPoint (End)));
add_action ("playhead-to-next-region-sync", bind (mem_fun(*this, &Editor::cursor_to_next_region_point), playhead_cursor, RegionPoint (SyncPoint)));
add_action ("playhead-to-previous-region-start", bind (mem_fun(*this, &Editor::cursor_to_previous_region_point), playhead_cursor, RegionPoint (Start)));
add_action ("playhead-to-previous-region-end", bind (mem_fun(*this, &Editor::cursor_to_previous_region_point), playhead_cursor, RegionPoint (End)));
add_action ("playhead-to-previous-region-sync", bind (mem_fun(*this, &Editor::cursor_to_previous_region_point), playhead_cursor, RegionPoint (SyncPoint)));
add_action ("edit-cursor-to-next-region-start", bind (mem_fun(*this, &Editor::cursor_to_next_region_point), edit_cursor, RegionPoint (Start)));
add_action ("edit-cursor-to-next-region-end", bind (mem_fun(*this, &Editor::cursor_to_next_region_point), edit_cursor, RegionPoint (End)));
add_action ("edit-cursor-to-next-region-sync", bind (mem_fun(*this, &Editor::cursor_to_next_region_point), edit_cursor, RegionPoint (SyncPoint)));
add_action ("edit-cursor-to-previous-region-start", bind (mem_fun(*this, &Editor::cursor_to_previous_region_point), edit_cursor, RegionPoint (Start)));
add_action ("edit-cursor-to-previous-region-end", bind (mem_fun(*this, &Editor::cursor_to_previous_region_point), edit_cursor, RegionPoint (End)));
add_action ("edit-cursor-to-previous-region-sync", bind (mem_fun(*this, &Editor::cursor_to_previous_region_point), edit_cursor, RegionPoint (SyncPoint)));
add_action ("playhead-to-range-start", bind (mem_fun(*this, &Editor::cursor_to_selection_start), playhead_cursor));
add_action ("playhead-to-range-end", bind (mem_fun(*this, &Editor::cursor_to_selection_end), playhead_cursor));
add_action ("edit-cursor-to-range-start", bind (mem_fun(*this, &Editor::cursor_to_selection_start), edit_cursor));
add_action ("edit-cursor-to-range-end", bind (mem_fun(*this, &Editor::cursor_to_selection_end), edit_cursor));
add_action ("jump-forward-to-mark", mem_fun(*this, &Editor::jump_forward_to_mark));
add_action ("jump-backward-to-mark", mem_fun(*this, &Editor::jump_backward_to_mark));
add_action ("add-location-from-playhead", mem_fun(*this, &Editor::add_location_from_playhead_cursor));
add_action ("nudge-forward", bind (mem_fun(*this, &Editor::nudge_forward), false));
add_action ("nudge-next-forward", bind (mem_fun(*this, &Editor::nudge_forward), true));
add_action ("nudge-backward", bind (mem_fun(*this, &Editor::nudge_backward), false));
add_action ("nudge-next-backward", bind (mem_fun(*this, &Editor::nudge_backward), true));
add_action ("toggle-playback", bind (mem_fun(*this, &Editor::toggle_playback), false));
add_action ("toggle-playback-forget-capture", bind (mem_fun(*this, &Editor::toggle_playback), true));
add_action ("toggle-loop-playback", mem_fun(*this, &Editor::toggle_loop_playback));
add_action ("temporal-zoom-out", bind (mem_fun(*this, &Editor::temporal_zoom_step), true));
add_action ("temporal-zoom-in", bind (mem_fun(*this, &Editor::temporal_zoom_step), false));
add_action ("zoom-to-session", mem_fun(*this, &Editor::temporal_zoom_session));
add_action ("scroll-tracks-up", mem_fun(*this, &Editor::scroll_tracks_up));
add_action ("scroll-tracks-down", mem_fun(*this, &Editor::scroll_tracks_down));
add_action ("step-tracks-up", mem_fun(*this, &Editor::scroll_tracks_up_line));
add_action ("step-tracks-down", mem_fun(*this, &Editor::scroll_tracks_down_line));
add_action ("scroll-backward", bind (mem_fun(*this, &Editor::scroll_backward), 0.8f));
add_action ("scroll-forward", bind (mem_fun(*this, &Editor::scroll_forward), 0.8f));
add_action ("goto", mem_fun(*this, &Editor::goto_frame));
add_action ("center-playhead", mem_fun(*this, &Editor::center_playhead));
add_action ("center-edit_cursor", mem_fun(*this, &Editor::center_edit_cursor));
add_action ("playhead-forward", mem_fun(*this, &Editor::playhead_forward));
add_action ("playhead-backward", mem_fun(*this, &Editor::playhead_backward));
add_action ("playhead-to-edit", bind (mem_fun(*this, &Editor::cursor_align), true));
add_action ("edit-to-playhead", bind (mem_fun(*this, &Editor::cursor_align), false));
add_action ("align-regions-start", bind (mem_fun(*this, &Editor::align), ARDOUR::Start));
add_action ("align-regions-start-relative", bind (mem_fun(*this, &Editor::align_relative), ARDOUR::Start));
add_action ("align-regions-end", bind (mem_fun(*this, &Editor::align), ARDOUR::End));
add_action ("align-regions-end-relative", bind (mem_fun(*this, &Editor::align_relative), ARDOUR::End));
add_action ("align-regions-sync", bind (mem_fun(*this, &Editor::align), ARDOUR::SyncPoint));
add_action ("align-regions-sync-relative", bind (mem_fun(*this, &Editor::align_relative), ARDOUR::SyncPoint));
add_action ("set-playhead", mem_fun(*this, &Editor::kbd_set_playhead_cursor));
add_action ("set-edit-cursor", mem_fun(*this, &Editor::kbd_set_edit_cursor));
add_action ("set-mouse-mode-object", bind (mem_fun(*this, &Editor::set_mouse_mode), Editing::MouseObject, false));
add_action ("set-mouse-mode-range", bind (mem_fun(*this, &Editor::set_mouse_mode), Editing::MouseRange, false));
add_action ("set-mouse-mode-gain", bind (mem_fun(*this, &Editor::set_mouse_mode), Editing::MouseGain, false));
add_action ("set-mouse-mode-zoom", bind (mem_fun(*this, &Editor::set_mouse_mode), Editing::MouseZoom, false));
add_action ("set-mouse-mode-timefx", bind (mem_fun(*this, &Editor::set_mouse_mode), Editing::MouseTimeFX, false));
add_action ("set-undo", bind (mem_fun(*this, &Editor::undo), 1U));
add_action ("set-redo", bind (mem_fun(*this, &Editor::redo), 1U));
add_action ("export-session", mem_fun(*this, &Editor::export_session));
add_action ("export-range", mem_fun(*this, &Editor::export_selection));
add_action ("editor-cut", mem_fun(*this, &Editor::cut));
add_action ("editor-copy", mem_fun(*this, &Editor::copy));
add_action ("editor-paste", mem_fun(*this, &Editor::keyboard_paste));
add_action ("duplicate-region", mem_fun(*this, &Editor::keyboard_duplicate_region));
add_action ("duplicate-range", mem_fun(*this, &Editor::keyboard_duplicate_selection));
add_action ("insert-region", mem_fun(*this, &Editor::keyboard_insert_region_list_selection));
add_action ("reverse-region", mem_fun(*this, &Editor::reverse_region));
add_action ("normalize-region", mem_fun(*this, &Editor::normalize_region));
add_action ("editor-crop", mem_fun(*this, &Editor::crop_region_to_selection));
add_action ("insert-chunk", bind (mem_fun(*this, &Editor::paste_named_selection), 1.0f));
add_action ("split-at-edit-cursor", mem_fun(*this, &Editor::split_region));
add_action ("split-at-mouse", mem_fun(*this, &Editor::kbd_split));
add_action ("brush-at-mouse", mem_fun(*this, &Editor::kbd_brush));
add_action ("audition-at-mouse", mem_fun(*this, &Editor::kbd_audition));
add_action ("start-range", mem_fun(*this, &Editor::keyboard_selection_begin));
add_action ("finish-range", bind (mem_fun(*this, &Editor::keyboard_selection_finish), false));
add_action ("finish-add-range", bind (mem_fun(*this, &Editor::keyboard_selection_finish), true));
add_action ("extend-range-to-end-of-region", bind (mem_fun(*this, &Editor::extend_selection_to_end_of_region), false));
add_action ("extend-range-to-start-of-region", bind (mem_fun(*this, &Editor::extend_selection_to_start_of_region), false));
add_action ("zoom-focus-left", bind (mem_fun(*this, &Editor::set_zoom_focus), Editing::ZoomFocusLeft));
add_action ("zoom-focus-right", bind (mem_fun(*this, &Editor::set_zoom_focus), Editing::ZoomFocusRight));
add_action ("zoom-focus-center", bind (mem_fun(*this, &Editor::set_zoom_focus), Editing::ZoomFocusCenter));
add_action ("zoom-focus-playhead", bind (mem_fun(*this, &Editor::set_zoom_focus), Editing::ZoomFocusPlayhead));
add_action ("zoom-focus-edit", bind (mem_fun(*this, &Editor::set_zoom_focus), Editing::ZoomFocusEdit));
add_action ("toggle-follow-playhead", (mem_fun(*this, &Editor::toggle_follow_playhead)));
add_action ("remove-last-capture", (mem_fun(*this, &Editor::remove_last_capture)));
add_action ("snap-to-frame", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToFrame)));
add_action ("snap-to-cd-frame", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToCDFrame)));
add_action ("snap-to-smpte-frame", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToSMPTEFrame)));
add_action ("snap-to-smpte-seconds", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToSMPTESeconds)));
add_action ("snap-to-smpte-minutes", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToSMPTEMinutes)));
add_action ("snap-to-seconds", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToSeconds)));
add_action ("snap-to-minutes", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToMinutes)));
add_action ("snap-to-thirtyseconds", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToAThirtysecondBeat)));
add_action ("snap-to-asixteenthbeat", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToASixteenthBeat)));
add_action ("snap-to-eighths", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToAEighthBeat)));
add_action ("snap-to-quarters", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToAQuarterBeat)));
add_action ("snap-to-thirds", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToAThirdBeat)));
add_action ("snap-to-beat", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToBeat)));
add_action ("snap-to-bar", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToBar)));
add_action ("snap-to-mark", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToMark)));
add_action ("snap-to-edit-cursor", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToEditCursor)));
add_action ("snap-to-region-start", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToRegionStart)));
add_action ("snap-to-region-end", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToRegionEnd)));
add_action ("snap-to-region-sync", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToRegionSync)));
add_action ("snap-to-region-boundary", (bind (mem_fun(*this, &Editor::set_snap_to), Editing::SnapToRegionBoundary)));
}
void
Editor::keyboard_selection_finish (bool add)
{

View File

@ -49,7 +49,6 @@ using namespace sigc;
Mixer_UI::Mixer_UI (AudioEngine& eng)
: Window (Gtk::WINDOW_TOPLEVEL),
KeyboardTarget (*this, "mixer"),
engine (eng)
{
_strip_width = Wide;

View File

@ -52,7 +52,7 @@ namespace ARDOUR {
class MixerStrip;
class PluginSelector;
class Mixer_UI : public Gtk::Window, public KeyboardTarget
class Mixer_UI : public Gtk::Window
{
public:
Mixer_UI (ARDOUR::AudioEngine&);

View File

@ -1,10 +1,31 @@
#include <vector>
#include <iostream>
#include <gtkmm.h>
#include <gtkmm/accelmap.h>
#include <gdk/gdkkeysyms.h>
#include <gtk/gtkaccelmap.h>
using namespace Gtk;
using namespace std;
using namespace sigc;
using namespace Glib;
struct ActionBinding {
Glib::ustring name;
Glib::ustring label;
Gtk::Action::SlotActivate binding;
guint key;
Gdk::ModifierType mods;
ActionBinding (Glib::ustring n, Glib::ustring l, Gtk::Action::SlotActivate b,
guint k = GDK_VoidSymbol, Gdk::ModifierType m = Gdk::ModifierType (0))
: name (n),
label (l),
binding (b),
key (k),
mods (m) {}
};
void
printit (string txt)
@ -12,6 +33,21 @@ printit (string txt)
cout << "This is the " << txt << " item\n";
}
Glib::RefPtr<Action>
make_action (vector<Glib::RefPtr<ActionGroup> >& groups, string name, string label, slot<void> sl, guint key, Gdk::ModifierType mods)
{
Glib::RefPtr<Action> last;
for (vector<RefPtr<ActionGroup> >::iterator g = groups.begin(); g != groups.end(); ++g) {
Glib::RefPtr<Action> act = Action::create (name, label);
(*g)->add (act, sl);
AccelMap::add_entry (act->get_accel_path(), key, mods);
last = act;
}
return last;
}
Glib::RefPtr<Action>
make_action (Glib::RefPtr<ActionGroup> group, Glib::RefPtr<AccelGroup> accel_group, string name, string label, slot<void> sl, guint key, Gdk::ModifierType mods)
{
@ -67,6 +103,46 @@ make_action (Glib::RefPtr<ActionGroup> group, string name, string label)
return act;
}
bool
lookup_entry (const ustring accel_path, Gtk::AccelKey& key)
{
GtkAccelKey gkey;
bool known = gtk_accel_map_lookup_entry (accel_path.c_str(), &gkey);
if (known) {
key = AccelKey (gkey.accel_key, Gdk::ModifierType (gkey.accel_mods));
} else {
key = AccelKey (GDK_VoidSymbol, Gdk::ModifierType (0));
}
return known;
}
RefPtr<ActionGroup>
make_shared_action_group (ustring name, vector<ActionBinding*>& actions)
{
RefPtr<ActionGroup> grp = ActionGroup::create (name);
for (vector<ActionBinding*>::iterator i = actions.begin(); i != actions.end(); ++i) {
RefPtr<Action> act = Action::create ((*i)->name, (*i)->label);
grp->add (act);
if ((*i)->key != GDK_VoidSymbol) {
Gtk::AccelKey key;
/* since this is a shared action, only add it once */
if (!lookup_entry (act->get_accel_path(), key)) {
AccelMap::add_entry (act->get_accel_path(), (*i)->key, (*i)->mods);
cerr << "added accel map entry for " << act->get_accel_path() << endl;
}
}
}
return grp;
}
int
main (int argc, char* argv[])
{
@ -78,13 +154,12 @@ main (int argc, char* argv[])
VBox vpacker;
VBox other_vpacker;
Glib::RefPtr<ActionGroup> shared_actions;
Glib::RefPtr<ActionGroup> actions;
Glib::RefPtr<ActionGroup> other_actions;
Glib::RefPtr<ActionGroup> shared_actions;
Glib::RefPtr<UIManager> uimanager;
Glib::RefPtr<UIManager> other_uimanager;
Glib::RefPtr<UIManager> shared_uimanager;
Glib::RefPtr<AccelGroup> shared_accel_group;
window.set_name ("Editor");
window.set_title ("Editor");
@ -94,44 +169,42 @@ main (int argc, char* argv[])
uimanager = UIManager::create();
other_uimanager = UIManager::create();
shared_uimanager = UIManager::create();
actions = ActionGroup::create("MyActions");
other_actions = ActionGroup::create("OtherActions");
shared_actions = ActionGroup::create();
uimanager->add_ui_from_file ("mtest.menus");
other_uimanager->add_ui_from_file ("mtest_other.menus");
AccelMap::load ("mtest.bindings");
// AccelMap::load ("mtest.bindings");
make_action (shared_actions, "SharedMenuBar", "shared");
make_action (shared_actions, "SharedMenu", "sharedm");
Glib::RefPtr<Action> act = make_action (shared_actions, "Baz", "baz", bind (sigc::ptr_fun (printit), "baz"), GDK_p, Gdk::MOD1_MASK);
vector<RefPtr<ActionGroup> > all_groups;
all_groups.push_back (actions);
all_groups.push_back (other_actions);
make_action (actions, "TopMenu", "top");
make_action (actions, "Foo", "foo", bind (sigc::ptr_fun (printit), "foo"), GDK_p, Gdk::ModifierType (0));
make_action (other_actions, "OTopMenu", "otop");
make_action (other_actions, "OFoo", "foo", bind (sigc::ptr_fun (printit), "o-foo"), GDK_p, Gdk::ModifierType (0));
vector<ActionBinding*> shared_actions;
shared_actions.push_back (new ActionBinding ("Bar", "bar", bind (sigc::ptr_fun (printit), "barshared"), GDK_p, Gdk::CONTROL_MASK));
shared_actions.push_back (new ActionBinding ("Baz", "baz", bind (sigc::ptr_fun (printit), "baz-shared"), GDK_p, Gdk::SHIFT_MASK));
RefPtr<Action> act = Action::create (shared_actions.back()->name, shared_actions.back()->label);
act->connect_proxy (button);
act->connect_proxy (other_button);
make_action (actions, "TopMenu", "top");
make_action (actions, "Foo", "foo", bind (sigc::ptr_fun (printit), "foo"), GDK_p, Gdk::ModifierType (0));
make_action (actions, "Bar", "bar", bind (sigc::ptr_fun (printit), "bar"), GDK_p, Gdk::CONTROL_MASK);
make_action (other_actions, "OTopMenu", "otop");
make_action (other_actions, "OFoo", "foo", bind (sigc::ptr_fun (printit), "o-foo"), GDK_p, Gdk::ModifierType (0));
make_action (other_actions, "OBar", "bar", bind (sigc::ptr_fun (printit), "o-bar"), GDK_p, Gdk::CONTROL_MASK);
other_uimanager->insert_action_group (other_actions);
other_uimanager->insert_action_group (shared_actions);
uimanager->insert_action_group (actions);
uimanager->insert_action_group (shared_actions);
shared_uimanager->insert_action_group (shared_actions);
uimanager->insert_action_group (make_shared_action_group ("shared", shared_actions));
other_uimanager->insert_action_group (other_actions);
other_uimanager->insert_action_group (make_shared_action_group ("othershared", shared_actions));
other_window.add_accel_group (other_uimanager->get_accel_group());
other_window.add_accel_group (shared_uimanager->get_accel_group());
window.add_accel_group (uimanager->get_accel_group());
window.add_accel_group (shared_uimanager->get_accel_group());
Gtk::MenuBar* m;
@ -148,19 +221,12 @@ main (int argc, char* argv[])
vpacker.pack_start (*m);
vpacker.pack_start (button);
shared_uimanager->add_ui_from_file ("mtest_shared.menu");
MenuBar* item = dynamic_cast<MenuBar*> (shared_uimanager->get_widget ("/SharedMenuBar"));
window.add (vpacker);
window.show_all ();
Settings::get_default()->property_gtk_can_change_accels() = true;
cerr << " shared = " << shared_uimanager->get_accel_group()
<< " first = " << uimanager->get_accel_group()
<< " second = " << other_uimanager->get_accel_group ()
<< endl;
AccelMap::save ("mtest.bindings");
app.run ();

View File

@ -3,6 +3,7 @@
<menu action='TopMenu'>
<menuitem action='Foo'/>
<menuitem action='Bar'/>
<menuitem action='Baz'/>
</menu>
</menubar>
</ui>

View File

@ -2,7 +2,8 @@
<menubar name='OTop'>
<menu action='OTopMenu'>
<menuitem action='OFoo'/>
<menuitem action='OBar'/>
<menuitem action='Bar'/>
<menuitem action='Baz'/>
</menu>
</menubar>
</ui>

View File

@ -4,8 +4,7 @@
PublicEditor* PublicEditor::_instance = 0;
PublicEditor::PublicEditor ()
: Window (Gtk::WINDOW_TOPLEVEL),
KeyboardTarget (*this, "editor")
: Window (Gtk::WINDOW_TOPLEVEL)
{
}

View File

@ -44,8 +44,12 @@ class TempoMarker;
class MeterMarker;
class Marker;
class AutomationTimeAxisView;
class MarkerTimeAxis;
class ImageFrameView;
class ImageFrameTimeAxis;
class MarkerView;
class PublicEditor : public Gtk::Window, public Stateful, public KeyboardTarget {
class PublicEditor : public Gtk::Window, public Stateful {
public:
PublicEditor();
virtual ~PublicEditor();
@ -152,14 +156,14 @@ class PublicEditor : public Gtk::Window, public Stateful, public KeyboardTarget
virtual bool canvas_range_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_transport_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_imageframe_item_view_event(GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_imageframe_view_event(GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_imageframe_start_handle_event(GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_imageframe_end_handle_event(GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_marker_time_axis_view_event(GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_markerview_item_view_event(GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_markerview_start_handle_event(GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_markerview_end_handle_event(GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual bool canvas_imageframe_item_view_event(GdkEvent* event, ArdourCanvas::Item*,ImageFrameView*) = 0;
virtual bool canvas_imageframe_view_event(GdkEvent* event, ArdourCanvas::Item*,ImageFrameTimeAxis*) = 0;
virtual bool canvas_imageframe_start_handle_event(GdkEvent* event, ArdourCanvas::Item*,ImageFrameView*) = 0;
virtual bool canvas_imageframe_end_handle_event(GdkEvent* event, ArdourCanvas::Item*,ImageFrameView*) = 0;
virtual bool canvas_marker_time_axis_view_event(GdkEvent* event, ArdourCanvas::Item*,MarkerTimeAxis*) = 0;
virtual bool canvas_markerview_item_view_event(GdkEvent* event, ArdourCanvas::Item*,MarkerView*) = 0;
virtual bool canvas_markerview_start_handle_event(GdkEvent* event, ArdourCanvas::Item*,MarkerView*) = 0;
virtual bool canvas_markerview_end_handle_event(GdkEvent* event, ArdourCanvas::Item*,MarkerView*) = 0;
static PublicEditor* _instance;
};