X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fkeyboard.h;h=9178546c8e12d8dc549c6b5196e83ad9d6fa8047;hb=0faaa3ad7bf0cedf68eda1dd43e232363b9f7f04;hp=d7d527e63edc93c18f992e63fe3f3fcac8c53dc3;hpb=209d967b1bb80a9735d690d8f4f0455ecb9970ca;p=ardour.git diff --git a/gtk2_ardour/keyboard.h b/gtk2_ardour/keyboard.h index d7d527e63e..9178546c8e 100644 --- a/gtk2_ardour/keyboard.h +++ b/gtk2_ardour/keyboard.h @@ -24,7 +24,7 @@ #include #include -#include +#include #include #include @@ -33,10 +33,7 @@ using std::vector; using std::string; -class KeyboardTarget; -class ArdourDialog; - -class Keyboard : public SigC::Object, Stateful +class Keyboard : public sigc::trackable, Stateful { public: Keyboard (); @@ -47,24 +44,12 @@ class Keyboard : public SigC::Object, Stateful typedef vector State; - void set_target (KeyboardTarget *); - void set_default_target (KeyboardTarget *); - void allow_focus (bool); - - gint focus_in_handler (GdkEventFocus*); - gint focus_out_handler (GdkEventFocus*); - int get_prefix(float&, bool& was_floating); void start_prefix (); static State translate_key_name (const string&); static string get_real_keyname (const string& name); - void register_target (KeyboardTarget *); - - void set_current_dialog (ArdourDialog*); - void close_current_dialog (); - typedef uint32_t ModifierMask; static uint32_t Control; @@ -80,6 +65,9 @@ class Keyboard : public SigC::Object, Stateful return (ev->state & RelevantModifierKeyMask) == 0; } + bool leave_window (GdkEventCrossing *ev, Gtk::Window*); + bool enter_window (GdkEventCrossing *ev, Gtk::Window*); + static bool modifier_state_contains (guint state, ModifierMask); static bool modifier_state_equals (guint state, ModifierMask); @@ -111,21 +99,15 @@ class Keyboard : public SigC::Object, Stateful bool _queue_events; bool _flush_queue; - guint32 playback_ignore_count; guint snooper_id; State state; - KeyboardTarget* target; - KeyboardTarget* default_target; - bool focus_allowed; bool collecting_prefix; string current_prefix; int* modifier_masks; int modifier_mask; int min_keycode; int max_keycode; - ArdourDialog* current_dialog; - std::vector known_dialogs; static guint edit_but; static guint edit_mod; @@ -136,16 +118,10 @@ class Keyboard : public SigC::Object, Stateful static gint _snooper (GtkWidget*, GdkEventKey*, gpointer); gint snooper (GtkWidget*, GdkEventKey*); - void maybe_unset_target (KeyboardTarget *); void queue_event (GdkEventKey*); - void playback_queue (); - void clear_queue (); void get_modifier_masks (); void check_modifier_state (); void clear_modifier_state (); - gint enter_window (GdkEventCrossing*, KeyboardTarget*); - gint leave_window (GdkEventCrossing*); - gint current_dialog_vanished (GdkEventAny*); void check_meta_numlock (char keycode, guint mod, string modname); };