• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

KDECore

kshortcut.h

Go to the documentation of this file.
00001 /*  This file is part of the KDE libraries
00002     Copyright (C) 2001,2002 Ellis Whitehead <ellis@kde.org>
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation; either
00007     version 2 of the License, or (at your option) any later version.
00008 
00009     This library is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Library General Public License for more details.
00013 
00014     You should have received a copy of the GNU Library General Public License
00015     along with this library; see the file COPYING.LIB.  If not, write to
00016     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017     Boston, MA 02110-1301, USA.
00018 */
00019 
00020 #ifndef __KSHORTCUT_H
00021 #define __KSHORTCUT_H
00022 
00023 #include <qkeysequence.h>
00024 #include <qstring.h>
00025 #include "kdelibs_export.h"
00026 
00027 class QKeyEvent;
00028 class KKeyNative;
00029 
00040 class KDECORE_EXPORT KKey
00041 {
00042  public:
00047     enum { MOD_FLAG_COUNT = 4 };
00048     enum { QtWIN = (Qt::META) };
00053     enum ModFlag {
00054         SHIFT = 0x01,
00055         CTRL = 0x02,
00056         ALT = 0x04,
00057         WIN = 0x08
00058     };
00059 
00066     KKey();
00067 
00073     KKey( int keyQt );
00074 
00079     KKey( const QKeySequence& keySeq );
00080 
00085     KKey( const QKeyEvent* keyEvent );
00086 
00090     KKey( const KKey& key );
00091 
00100     KKey( const QString& key );
00104     KKey( uint key, uint mod );
00105     ~KKey();
00106 
00107  // Initialization methods
00112     void clear();
00113 
00120     bool init( int keyQt );
00121 
00127     bool init( const QKeySequence& keySeq );
00128 
00134     bool init( const QKeyEvent* keyEvent );
00135 
00141     bool init( const KKey& key );
00142 
00152     bool init( const QString& key);
00153 
00157     bool init( uint key, uint mod );
00158 
00162     KKey& operator =( const KKey& key )
00163         { init( key ); return *this; }
00164 
00165  // Query methods.
00173     bool isNull() const;
00174 
00178     uint sym() const;
00182     uint modFlags() const;
00183 
00184  // Comparison Methods
00195     int compare( const KKey& key ) const;
00196 
00201     bool operator == ( const KKey& key ) const
00202         { return compare( key ) == 0; }
00207     bool operator != ( const KKey& key ) const
00208         { return compare( key ) != 0; }
00213     bool operator < ( const KKey& key ) const
00214         { return compare( key ) < 0; }
00215 
00216  // Conversion methods.
00222     int keyCodeQt() const;
00223 
00231     QString toString() const;
00232 
00237     QString toStringInternal() const;
00238 
00239  // Operation methods
00243     void simplify();
00244 
00251     static KKey& null();
00252 
00258     static QString modFlagLabel( ModFlag f );
00259 
00260  private:
00261     /*
00262      * Under X11, m_key will hold an X11 key symbol.
00263      * For Qt/Embedded, it will hold the Qt key code.
00264      */
00271     uint m_sym;
00275     uint m_mod;
00276 
00277  private:
00278     friend class KKeyNative;
00279 };
00280 
00288 class KDECORE_EXPORT KKeySequence
00289 {
00290  public:
00292         enum { MAX_KEYS = 4 };
00293 
00300     KKeySequence();
00301 
00306     KKeySequence( const QKeySequence& keySeq );
00307 
00312     KKeySequence( const KKey& key );
00313 
00318     KKeySequence( const KKeyNative& key );
00319 
00324     KKeySequence( const KKeySequence& keySeq );
00325 
00334     KKeySequence( const QString& keySeq );
00335 
00336     ~KKeySequence();
00337 
00343     void clear();
00344 
00350     bool init( const QKeySequence& keySeq );
00351 
00357     bool init( const KKey& key );
00358 
00364     bool init( const KKeyNative& key );
00365 
00371     bool init( const KKeySequence& keySeq );
00372 
00382     bool init( const QString& key );
00383 
00387     KKeySequence& operator =( const KKeySequence& seq )
00388         { init( seq ); return *this; }
00389 
00395     uint count() const;
00396 
00405     const KKey& key( uint i ) const;
00406 
00410     bool isTriggerOnRelease() const;
00411 
00420     bool setKey( uint i, const KKey& key );
00421 
00429     bool isNull() const;
00430 
00436     bool startsWith( const KKeySequence& keySeq ) const;
00437 
00450     int compare( const KKeySequence& keySeq ) const;
00451 
00456     bool operator == ( const KKeySequence& seq ) const
00457         { return compare( seq ) == 0; }
00458 
00463     bool operator != ( const KKeySequence& seq ) const
00464         { return compare( seq ) != 0; }
00465 
00470     bool operator < ( const KKeySequence& seq ) const
00471         { return compare( seq ) < 0; }
00472     // TODO: consider adding Qt::SequenceMatch matches(...) methods for QKeySequence equivalence
00473 
00478     QKeySequence qt() const;
00479 
00486     int keyCodeQt() const;
00487 
00494     QString toString() const;
00495 
00499     QString toStringInternal() const;
00500 
00507     static KKeySequence& null();
00508 
00509  protected:
00510     uchar m_nKeys;
00511     uchar m_bTriggerOnRelease;
00512     // BCI: m_rgvar should be renamed to m_rgkey for KDE 4.0
00513     KKey m_rgvar[MAX_KEYS];
00514 
00515  private:
00516     class KKeySequencePrivate* d;
00517     friend class KKeyNative;
00518 };
00519 
00543 class KDECORE_EXPORT KShortcut
00544 {
00545  public:
00550     enum { MAX_SEQUENCES = 2 };
00551 
00558     KShortcut();
00559 
00566     KShortcut( int keyQt );
00567 
00573     KShortcut( const QKeySequence& keySeq );
00574 
00580     KShortcut( const KKey& key );
00581 
00587     KShortcut( const KKeySequence& keySeq );
00588 
00593     KShortcut( const KShortcut& shortcut );
00594 
00602     KShortcut( const char* shortcut );
00603 
00611     KShortcut( const QString& shortcut );
00612     ~KShortcut();
00613 
00619     void clear();
00620 
00627     bool init( int keyQt );
00628 
00633     bool init( const QKeySequence& keySeq );
00634 
00639     bool init( const KKey& key );
00640 
00645     bool init( const KKeySequence& keySeq );
00646 
00651     bool init( const KShortcut& shortcut );
00652 
00660     bool init( const QString& shortcut );
00661 
00665     KShortcut& operator =( const KShortcut& cut )
00666         { init( cut ); return *this; }
00667 
00674     uint count() const;
00675 
00683     const KKeySequence& seq( uint i ) const;
00684 
00692     int keyCodeQt() const;
00693 
00701     bool isNull() const;
00702 
00716     int compare( const KShortcut& shortcut ) const;
00717 
00722     bool operator == ( const KShortcut& cut ) const
00723         { return compare( cut ) == 0; }
00724 
00729     bool operator != ( const KShortcut& cut ) const
00730         { return compare( cut ) != 0; }
00731 
00736     bool operator < ( const KShortcut& cut ) const
00737         { return compare( cut ) < 0; }
00738 
00745     bool contains( const KKey& key ) const;
00746 
00753     bool contains( const KKeyNative& key ) const;
00754 
00760     bool contains( const KKeySequence& keySeq ) const;
00761 
00770     bool setSeq( uint i, const KKeySequence& keySeq );
00771 
00781     bool append( const KKeySequence& keySeq );
00782 
00788     void remove( const KKeySequence& keySeq );
00789 
00798     bool append( const KKey& spec );
00799 
00807     bool append( const KShortcut& cut );
00808 
00813     operator QKeySequence () const;
00814 
00822     QString toString() const;
00823 
00827     QString toStringInternal( const KShortcut* pcutDefault = 0 ) const;
00828 
00835     static KShortcut& null();
00836 
00837  protected:
00838     uint m_nSeqs;
00839     KKeySequence m_rgseq[MAX_SEQUENCES];
00840 
00841  private:
00842     class KShortcutPrivate* d;
00843     friend class KKeyNative;
00844 
00845 #ifndef KDE_NO_COMPAT
00846  public:
00847     operator int () const    { return keyCodeQt(); }
00848 #endif
00849 };
00850 
00851 #endif // __KSHORTCUT_H

KDECore

Skip menu "KDECore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal