kaccelaction.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _KACCELACTION_H
00021 #define _KACCELACTION_H
00022
00023 #include <qmap.h>
00024 #include <qptrvector.h>
00025 #include <qstring.h>
00026 #include <qvaluevector.h>
00027
00028 #include <kshortcut.h>
00029
00030 class KAccelBase;
00031
00032 class QObject;
00033 class KConfig;
00034 class KConfigBase;
00035
00072 class KAccelAction
00073 {
00074 public:
00079 KAccelAction();
00080
00084 KAccelAction( const KAccelAction& );
00085
00100 KAccelAction( const QString& sName, const QString& sLabel, const QString& sWhatsThis,
00101 const KShortcut& cutDef3, const KShortcut& cutDef4,
00102 const QObject* pObjSlot, const char* psMethodSlot,
00103 bool bConfigurable, bool bEnabled );
00104 ~KAccelAction();
00105
00109 void clear();
00110
00126 bool init( const QString& sName, const QString& sLabel, const QString& sWhatsThis,
00127 const KShortcut& cutDef3, const KShortcut& cutDef4,
00128 const QObject* pObjSlot, const char* psMethodSlot,
00129 bool bConfigurable, bool bEnabled );
00130
00134 KAccelAction& operator=( const KAccelAction& );
00135
00141 const QString& name() const { return m_sName; }
00142
00148 const QString& label() const { return m_sLabel; }
00149
00155 const QString& whatsThis() const { return m_sWhatsThis; }
00156
00162 const KShortcut& shortcut() const { return m_cut; }
00163
00171 const KShortcut& shortcutDefault() const;
00172
00181 const KShortcut& shortcutDefault3() const { return m_cutDefault3; }
00182
00191 const KShortcut& shortcutDefault4() const { return m_cutDefault4; }
00192
00197 const QObject* objSlotPtr() const { return m_pObjSlot; }
00198
00203 const char* methodSlotPtr() const { return m_psMethodSlot; }
00204
00209 bool isConfigurable() const { return m_bConfigurable; }
00210
00215 bool isEnabled() const { return m_bEnabled; }
00216
00221 void setName( const QString& name );
00222
00227 void setLabel( const QString& label );
00228
00233 void setWhatsThis( const QString& whatsThis );
00234
00240 bool setShortcut( const KShortcut& rgCuts );
00241
00247 void setSlot( const QObject* pObjSlot, const char* psMethodSlot );
00248
00253 void setConfigurable( bool configurable );
00254
00259 void setEnabled( bool enable );
00260
00265 int getID() const { return m_nIDAccel; }
00266
00274 void setID( int n ) { m_nIDAccel = n; }
00275
00280 bool isConnected() const;
00281
00289 bool setKeySequence( uint i, const KKeySequence &keySeq );
00290
00296 void clearShortcut();
00297
00304 bool contains( const KKeySequence &keySeq );
00305
00311 QString toString() const;
00312
00316 QString toStringInternal() const;
00317
00322 static bool useFourModifierKeys();
00323
00329 static void useFourModifierKeys( bool use );
00330
00331 protected:
00332 QString m_sName,
00333 m_sLabel,
00334 m_sWhatsThis;
00335 KShortcut m_cut;
00336 KShortcut m_cutDefault3, m_cutDefault4;
00337 const QObject* m_pObjSlot;
00338 const char* m_psMethodSlot;
00339 bool m_bConfigurable,
00340 m_bEnabled;
00341 int m_nIDAccel;
00342 uint m_nConnections;
00343
00344 void incConnections();
00345 void decConnections();
00346
00347 private:
00348 static int g_bUseFourModifierKeys;
00349 class KAccelActionPrivate* d;
00350
00351 friend class KAccelActions;
00352 friend class KAccelBase;
00353 };
00354
00355
00356
00357
00358
00366 class KAccelActions
00367 {
00368 public:
00372 KAccelActions();
00373
00377 KAccelActions( const KAccelActions& );
00378 virtual ~KAccelActions();
00379
00383 void clear();
00384
00391 bool init( const KAccelActions &actions );
00392
00400 bool init( KConfigBase& config, const QString& sGroup );
00401
00408 void updateShortcuts( KAccelActions &shortcuts );
00409
00415 int actionIndex( const QString& sAction ) const;
00416
00424 KAccelAction* actionPtr( uint index );
00425
00433 const KAccelAction* actionPtr( uint index ) const;
00434
00441 KAccelAction* actionPtr( const QString& sAction );
00442
00449 const KAccelAction* actionPtr( const QString& sAction ) const;
00450
00457 KAccelAction* actionPtr( KKeySequence cut );
00458
00467 KAccelAction& operator []( uint index );
00468
00477 const KAccelAction& operator []( uint index ) const;
00478
00494 KAccelAction* insert( const QString& sAction, const QString& sLabel, const QString& sWhatsThis,
00495 const KShortcut& rgCutDefaults3, const KShortcut& rgCutDefaults4,
00496 const QObject* pObjSlot = 0, const char* psMethodSlot = 0,
00497 bool bConfigurable = true, bool bEnabled = true );
00498
00505 KAccelAction* insert( const QString& sName, const QString& sLabel );
00506
00512 bool remove( const QString& sAction );
00513
00521 bool readActions( const QString& sConfigGroup = "Shortcuts", KConfigBase* pConfig = 0 );
00522
00532 bool writeActions( const QString& sConfigGroup = "Shortcuts", KConfigBase* pConfig = 0,
00533 bool bWriteAll = false, bool bGlobal = false ) const;
00534
00538 void emitKeycodeChanged();
00539
00544 uint count() const;
00545
00546 protected:
00547 KAccelBase* m_pKAccelBase;
00548 KAccelAction** m_prgActions;
00549 uint m_nSizeAllocated, m_nSize;
00550
00551 void resize( uint );
00552 void insertPtr( KAccelAction* );
00553
00554 private:
00555 class KAccelActionsPrivate* d;
00556
00557 KAccelActions( KAccelBase* );
00558 void initPrivate( KAccelBase* );
00559 KAccelActions& operator =( KAccelActions& );
00560
00561 friend class KAccelBase;
00562 };
00563
00564 #endif // _KACCELACTION_H
This file is part of the documentation for kdelibs Version 3.1.4.