summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/okeyconfigmanager.h19
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)
{