kkeydialog.h Source File (kdeui Library)

| # kdeui Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# kkeydialog.h

    00001 /* This file is part of the KDE libraries
    00002     Copyright (C) 1997 Nicolas Hadacek <hadacek@kde.org>
    00003     Copyright (C) 2001,2001 Ellis Whitehead <ellis@kde.org>
    00004
    00005     This library is free software; you can redistribute it and/or
    00006     modify it under the terms of the GNU Library General Public
    00007     License as published by the Free Software Foundation; either
    00008     version 2 of the License, or (at your option) any later version.
    00009
    00010     This library is distributed in the hope that it will be useful,
    00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013     Library General Public License for more details.
    00014
    00015     You should have received a copy of the GNU Library General Public License
    00016     along with this library; see the file COPYING.LIB.  If not, write to
    00017     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00018     Boston, MA 02111-1307, USA.
    00019 */
    00020
    00021 #ifndef __KKEYDIALOG_H__
    00022 #define __KKEYDIALOG_H__
    00023
    00024 #include <qdict.h>
    00025 #include <kdialogbase.h>
    00026 #include <klistview.h>
    00027
    00028 class QButtonGroup;
    00029 class QCheckBox;
    00030 class QGroupBox;
    00031 class QLabel;
    00032 class QLineEdit;
    00033 class QRadioButton;
    00034 class KAccel;
    00035 class KAccelActions;
    00036 class KActionCollection;
    00037 class KConfigBase;
    00038 class KGlobalAccel;
    00039 class KKeySequence;
    00040 class KShortcut;
    00041 class KShortcutList;
    00042 class KKeyChooserItem;
    00043
    00058 class KKeyChooser : public QWidget
    00059 {
    00060         Q_OBJECT
    00061  public:
    00062         enum ActionType { Application, ApplicationGlobal, Standard, Global };
    00063
    00070         KKeyChooser( QWidget* parent, ActionType type = Application, bool bAllowLetterShortcuts = true );
    00071         KKeyChooser( KActionCollection* coll, QWidget* parent, bool bAllowLetterShortcuts = true );
    00072         KKeyChooser( KAccel* actions, QWidget* parent, bool bAllowLetterShortcuts = true );
    00073         KKeyChooser( KGlobalAccel* actions, QWidget* parent );
    00074         KKeyChooser( KShortcutList*, QWidget* parent, ActionType type = Application, bool bAllowLetterShortcuts = true );
    00075
    00076         virtual ~KKeyChooser();
    00077
    00082         bool insert( KActionCollection* ); // #### KDE4 : remove me
    00089     bool insert( KActionCollection *, const QString &title);
    00090
    00091         void syncToConfig( const QString& sConfigGroup, KConfigBase* pConfig, bool bClearUnset );
    00092
    00097         void commitChanges();
    00098
    00105         void save();
    00106
    00107  signals:
    00111         void keyChange();
    00112
    00113  public slots:
    00117         void allDefault();
    00118
    00124         void setPreferFourModifierKeys( bool preferFourModifierKeys );
    00125
    00126  // KDE4 a lot of stuff in this class should be probably private:
    00127  protected:
    00128         enum { NoKey = 1, DefaultKey, CustomKey };
    00129
    00130         void initGUI( ActionType type, bool bAllowLetterShortcuts );
    00131         bool insert( KAccel* );
    00132         bool insert( KGlobalAccel* );
    00133         bool insert( KShortcutList* );
    00135         void buildListView( uint iList, const QString &title = QString::null );
    00136
    00137         void readGlobalKeys();
    00138
    00139         void updateButtons();
    00140         void fontChange( const QFont& _font );
    00141         void setShortcut( const KShortcut& cut );
    00142         bool isKeyPresent( const KShortcut& cut, bool warnuser = true );
    00143         bool isKeyPresentLocally( const KShortcut& cut, KKeyChooserItem* ignoreItem, const QString& warnText );
    00144         void _warning( const KKeySequence& seq, QString sAction, QString sTitle );
    00145
    00146  protected slots:
    00147         void slotNoKey();
    00148         void slotDefaultKey();
    00149         void slotCustomKey();
    00150         void slotListItemSelected( QListViewItem *item );
    00151         void capturedShortcut( const KShortcut& cut );
    00152         void slotSettingsChanged( int );
    00153         void slotListItemDoubleClicked ( QListViewItem * ipoQListViewItem, const QPoint & ipoQPoint, int c );
    00154
    00155  protected:
    00156         ActionType m_type;
    00157         bool m_bAllowLetterShortcuts;
    00158         bool m_bAllowWinKey;
    00159         // When set, pressing the 'Default' button will select the aDefaultKeycode4,
    00160         //  otherwise aDefaultKeycode.
    00161         bool m_bPreferFourModifierKeys;
    00162
    00163         QRadioButton* m_prbNone;
    00164         QRadioButton* m_prbDef;
    00165         QRadioButton* m_prbCustom;
    00166
    00167
    00168 #ifndef KDE_NO_COMPAT
    00169  public:
    00173         KKeyChooser( KAccel* actions, QWidget* parent,
    00174                         bool bCheckAgainstStdKeys,
    00175                         bool bAllowLetterShortcuts,
    00176                         bool bAllowWinKey = false );
    00180         KKeyChooser( KGlobalAccel* actions, QWidget* parent,
    00181                         bool bCheckAgainstStdKeys,
    00182                         bool bAllowLetterShortcuts,
    00183                         bool bAllowWinKey = false );
    00184
    00185  public slots:
    00190         void listSync();
    00191
    00192 #endif
    00193  protected:
    00194         virtual void virtual_hook( int id, void* data );
    00195  private:
    00196         class KKeyChooserPrivate *d;
    00197         friend class KKeyDialog;
    00198 };
    00199 typedef KKeyChooser KKeyChooser;
    00200
    00217 class KKeyDialog : public KDialogBase
    00218 {
    00219         Q_OBJECT
    00220
    00221 public:
    00227         KKeyDialog( bool bAllowLetterShortcuts = true, QWidget* parent = 0, const char* name = 0 );
    00228
    00232         virtual ~KKeyDialog();
    00233
    00242         bool insert( KActionCollection* ); // #### KDE4: remove me
    00243
    00256         bool insert(KActionCollection *, const QString &title);
    00257
    00258         bool configure( bool bSaveSettings = true );
    00259
    00265         void commitChanges();
    00266
    00274         static int configure( KActionCollection* coll, QWidget* parent = 0, bool bSaveSettings = true );
    00275
    00281         static int configure( KAccel* keys, QWidget* parent = 0, bool bSaveSettings = true );
    00282
    00287         static int configure( KGlobalAccel* keys, QWidget* parent = 0, bool bSaveSettings = true );
    00288
    00289
    00296         static int configure( KActionCollection* coll, bool bAllowLetterShortcuts, QWidget* parent = 0, bool bSaveSettings = true ); // BCI: merge with bAllowLetterShortcuts = true
    00297
    00302         static int configure( KAccel* keys, bool bAllowLetterShortcuts, QWidget* parent = 0, bool bSaveSettings = true ); // BCI: merge with bAllowLetterShortcuts = true
    00303
    00308         static int configure( KGlobalAccel* keys, bool bAllowLetterShortcuts, QWidget* parent = 0, bool bSaveSettings = true ); // BCI: merge with bAllowLetterShortcuts = true
    00309
    00314         static int configureKeys( KAccel* keys, bool save_settings = true, QWidget* parent = 0 )
    00315                 { return configure( keys, parent, save_settings ); }
    00320         static int configureKeys( KGlobalAccel* keys, bool save_settings = true, QWidget* parent = 0 )
    00321                 { return configure( keys, parent, save_settings ); }
    00326         static int configureKeys( KActionCollection* coll, const QString& /*xmlfile*/,
    00327                 bool save_settings = true, QWidget* parent = 0 )
    00328                 { return configure( coll, parent, save_settings ); }
    00329
    00330 private:
    00331         KKeyDialog( KKeyChooser::ActionType, bool bAllowLetterShortcuts = true, QWidget* parent = 0, const char* name = 0 );
    00332
    00333  protected:
    00334         virtual void virtual_hook( int id, void* data );
    00335
    00336  private:
    00337         class KKeyDialogPrivate* d;
    00338         KKeyChooser* m_pKeyChooser;
    00339 };
    00340
    00341 #endif // __KKEYDIALOG_H__

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 12:57:02 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001