# kdecore Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# kshortcut.h

    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., 59 Temple Place - Suite 330,
    00017     Boston, MA 02111-1307, 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

This file is part of the documentation for kdecore Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:18:10 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003