kdecore Library API Documentation

kglobalaccel_x11.h

00001 #ifndef _KGLOBALACCEL_X11_H
00002 #define _KGLOBALACCEL_X11_H
00003 
00004 #include <qmap.h>
00005 #include <qwidget.h>
00006 
00007 #include "kaccelbase.h"
00008 #include "kkeyserver_x11.h"
00009 #include "kshortcut.h"
00010 
00015 class CodeMod
00016 {
00017  public:
00021     uchar code;
00025     uint mod;
00026 
00030     bool operator < ( const CodeMod& b ) const
00031     {
00032         if( code < b.code ) return true;
00033         if( code == b.code && mod < b.mod ) return true;
00034         return false;
00035     }
00036 };
00037 typedef QMap<CodeMod, KAccelAction*> CodeModMap;
00038 
00042 class KGlobalAccelPrivate : public QWidget, public KAccelBase
00043 {
00044     friend class KGlobalAccel;
00045     Q_OBJECT
00046  public:
00047     KGlobalAccelPrivate();
00048     virtual ~KGlobalAccelPrivate();
00049 
00050     virtual void setEnabled( bool );
00051 
00052     virtual bool emitSignal( Signal );
00053     virtual bool connectKey( KAccelAction&, const KKeyServer::Key& );
00054     virtual bool connectKey( const KKeyServer::Key& );
00055     virtual bool disconnectKey( KAccelAction&, const KKeyServer::Key& );
00056     virtual bool disconnectKey( const KKeyServer::Key& );
00057 
00058  signals:
00059     void activated();
00060     void activated( int );
00061     void activated( const QString& sAction, const QString& sDesc, const KKeySequence& seq );
00062 
00063  protected:
00064     CodeModMap m_rgCodeModToAction;
00065 
00069     bool grabKey( const KKeyServer::Key&, bool bGrab, KAccelAction* );
00070 
00078     virtual bool x11Event( XEvent* );
00079     void x11MappingNotify();
00080     bool x11KeyPress( const XEvent *pEvent );
00081     void activate( KAccelAction* pAction, const KKeySequence& seq );
00082 
00083  protected slots:
00084     void slotActivated( int iAction );
00085 };
00086 
00087 #endif // _KGLOBALACCEL_X11_H
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.0.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Oct 8 12:20:40 2003 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2001