summaryrefslogtreecommitdiffstats
path: root/khotkeys/shared/input.h
diff options
context:
space:
mode:
Diffstat (limited to 'khotkeys/shared/input.h')
-rw-r--r--khotkeys/shared/input.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/khotkeys/shared/input.h b/khotkeys/shared/input.h
new file mode 100644
index 000000000..c6bbdf1e5
--- /dev/null
+++ b/khotkeys/shared/input.h
@@ -0,0 +1,87 @@
+/****************************************************************************
+
+ KHotKeys
+
+ Copyright (C) 1999-2001 Lubos Lunak <l.lunak@kde.org>
+
+ Distributed under the terms of the GNU General Public License version 2.
+
+****************************************************************************/
+
+#ifndef _INPUT_H_
+#define _INPUT_H_
+
+#include <tqobject.h>
+#include <tqwindowdefs.h>
+#include <tqmap.h>
+#include <tqwidget.h>
+#include <tqvaluelist.h>
+#include <tdeshortcut.h>
+
+#include <X11/X.h>
+#include <fixx11h.h>
+
+class TDEGlobalAccel;
+
+namespace KHotKeys
+{
+
+class Kbd_receiver
+ {
+ public:
+ virtual bool handle_key( const TDEShortcut& shortcut_P ) = 0;
+ };
+
+class Kbd
+ : public TQObject
+ {
+ Q_OBJECT
+ public:
+ Kbd( bool grabbing_enabled_P, TQObject* parent_P );
+ virtual ~Kbd();
+ void insert_item( const TDEShortcut& shortcut_P, Kbd_receiver* receiver_P );
+ void remove_item( const TDEShortcut& shortcut_P, Kbd_receiver* receiver_P );
+ void activate_receiver( Kbd_receiver* receiver_P );
+ void deactivate_receiver( Kbd_receiver* receiver_P );
+ static bool send_macro_key( const KKey& key, Window window_P = InputFocus );
+ protected:
+ bool x11EventFilter( const XEvent* );
+ void grab_shortcut( const TDEShortcut& shortcut_P );
+ void ungrab_shortcut( const TDEShortcut& shortcut_P );
+ private slots:
+ void key_slot( TQString key_P );
+ void update_connections();
+ private:
+ struct Receiver_data
+ {
+ Receiver_data();
+ TQValueList< TDEShortcut > shortcuts;
+ bool active;
+ };
+ TQMap< Kbd_receiver*, Receiver_data > receivers;
+ TQMap< TDEShortcut, int > grabs;
+ TDEGlobalAccel* kga;
+ };
+
+class Mouse
+ {
+ public:
+ static bool send_mouse_button( int button_P, bool release_P );
+ };
+
+
+//***************************************************************************
+// Inline
+//***************************************************************************
+
+// Kbd::Receiver_data
+
+inline
+Kbd::Receiver_data::Receiver_data()
+ : active( false )
+ {
+ }
+
+} // namespace KHotKeys
+
+#endif