-rw-r--r-- | libopie2/opiecore/okeyconfigmanager.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/libopie2/opiecore/okeyconfigmanager.h b/libopie2/opiecore/okeyconfigmanager.h index b861675..d0a6247 100644 --- a/libopie2/opiecore/okeyconfigmanager.h +++ b/libopie2/opiecore/okeyconfigmanager.h @@ -91,175 +91,178 @@ public: OKeyPair keyPair()const; OKeyPair defaultKeyPair()const; QCString configKey()const; void setText( const QString& text ); void setPixmap( const QPixmap& ); void setKeyPair( const OKeyPair& ); void setDefaultKeyPair( const OKeyPair& ); bool isEmpty()const; protected: QObject *object()const; QCString slot()const; void setId( int id ); void setConfigKey( const QCString& ); private: QString m_text; QCString m_config; QPixmap m_pix; int m_id; OKeyPair m_key; OKeyPair m_def; QObject *m_obj; QCString m_str; class Private; Private *d; }; /** * \brief A manager to load and save Key Actions and get notified * This is the Manager for KeyActions. * You can say from which config and group to read data, to grab the * keyboard to handle hardware keys, you can supply a blacklist of * keys which should not be used by allowed to be used. * You can even pass this manager to a Widget to do the configuration for you. * You need to add OKeyConfigItem for your keys and then issue a load() to * read the Key information. * You can either handle the QKeyEvent yourself and ask this class if it is * handled by your action and let give you the action. Or you can install * the event filter and get a signal. * You need to load and save yourself! * + * Again if you want to extend it and I missed a virtual, tell me so I can improve (zecke@handhelds.org) + * * @since 1.1.2 */ class OKeyConfigManager : public QObject { Q_OBJECT typedef QMap<int, OKeyConfigItem::List> OKeyMapConfigPrivate; public: + enum EventMask { + MaskPressed = 0x1, + MaskReleased = 0x2, + }; + OKeyConfigManager(Opie::Core::OConfig *conf = 0, const QString& group = QString::null, const OKeyPair::List &block = OKeyPair::List(), bool grabkeyboard = false, QObject * par = 0, const char* name = 0 ); - ~OKeyConfigManager(); + virtual ~OKeyConfigManager(); - void load(); - void save(); + virtual void load(); + virtual void save(); - OKeyConfigItem handleKeyEvent( QKeyEvent* ); + virtual OKeyConfigItem handleKeyEvent( QKeyEvent* ); int handleKeyEventId( QKeyEvent* ); void addKeyConfig( const OKeyConfigItem& ); void removeKeyConfig( const OKeyConfigItem& ); void clearKeyConfig(); void addToBlackList( const OKeyPair& ); void removeFromBlackList( const OKeyPair& ); void clearBlackList(); OKeyPair::List blackList()const; void handleWidget( QWidget* ); bool eventFilter( QObject*, QEvent* ); /** * Sets the event mask flags aMask. * * aMask is a combination of OKeyConfigManager::EventMask * * @see eventMask(), testEventMask(), addEventMask(), clearEventMask() */ void setEventMask(uint aMask); /** * Returns the event mask flags set. * * aMask is a combination of OKeyConfigManager::EventMask * * @see setEventMask(), testEventMask(), addEventMask(), clearEventMask() */ uint eventMask()const; /** * Test if the event mask flag aMask is set. * * @param aMask one of OKeyConfigManager::EventMask * * @see eventMask(), setEventMask(), addEventMask(), clearEventMask() */ bool testEventMask(uint aMask); /** * Add the event mask flag aMask. * * @param aMask one of OKeyConfigManager::EventMask * * @see eventMask(), setEventMask(), addEventMask(), clearEventMask() */ void addEventMask(uint aMask); /** * Clears the event mask flag aMask. * * @param aMask is one of OKeyConfigManager::EventMask * * @see eventMask(), testEventMask(), addEventMask(), setEventMask() */ void clearEventMask(uint aMask); OKeyConfigItem::List keyConfigList()const; - enum EventMask { - MaskPressed = 0x1, - MaskReleased = 0x2, - }; signals: /** * The Signals are triggered on KeyPress and KeyRelease! * You can check the isDown of the QKeyEvent * @see QKeyEvent */ void actionActivated( QWidget*, QKeyEvent*, const Opie::Core::OKeyConfigItem& ); /** * This Signal correspondents to the OKeyConfigItem slot * and object * * @see OKeyConfigItem::slot * @see OKeyConfigItem::object */ void actionActivated( QWidget* par, QKeyEvent* key); private: OKeyConfigItem::List keyList( int ); OKeyConfigItem::List m_keys; QValueList<QWidget*> m_widgets; Opie::Core::OConfig *m_conf; QString m_group; OKeyPair::List m_blackKeys; bool m_grab : 1; OKeyMapConfigPrivate *m_map; class Private; Private *d; uint m_event_mask; }; inline bool OKeyConfigManager::testEventMask(uint aMask) { return (m_event_mask&aMask)!=0; } inline void OKeyConfigManager::addEventMask(uint aMask) { m_event_mask |= aMask; } inline void OKeyConfigManager::clearEventMask(uint aMask) { m_event_mask &= ~aMask; } inline void OKeyConfigManager::setEventMask(uint aMask) { |