KDECore
kshortcutmenu.h
Go to the documentation of this file.00001 /* This file is part of the KDE libraries 00002 Copyright (C) 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 __KSHORTCUTMENU_H 00021 #define __KSHORTCUTMENU_H 00022 00023 #include <qmap.h> 00024 #include <qpopupmenu.h> 00025 00026 #include "kshortcut.h" 00027 00028 class QLabel; 00029 00030 class KAccelActions; 00031 00035 class KDECORE_EXPORT KShortcutMenu : public QPopupMenu 00036 { 00037 Q_OBJECT 00038 public: 00039 KShortcutMenu( QWidget* pParent, KAccelActions* pActions, KKeySequence seq ); 00040 00041 bool insertAction( uint iAction, KKeySequence seq ); 00042 00043 void updateShortcuts(); 00044 00045 protected: 00046 void keyPressEvent( QKeyEvent* pEvent ); 00047 00048 private: 00049 int searchForKey( KKey key ); 00050 void keepItemsMatching( KKey key ); 00051 00052 private: 00053 typedef QMap<uint, KKeySequence> IndexToKKeySequence; 00054 00055 KAccelActions* m_pActions; 00056 KKeySequence m_seq; 00057 QLabel* pTitle; 00058 IndexToKKeySequence m_seqs; 00059 }; 00060 00061 #endif // __KSHORTCUTMENU_H