Initial commit
[keepassx] / src / lib / ShortcutWidget.h
1 /***************************************************************************
2  *   Copyright (C) 2005-2008 by Felix Geyer                                *
3  *                                                                         *
4  *   This program is free software; you can redistribute it and/or modify  *
5  *   it under the terms of the GNU General Public License as published by  *
6  *   the Free Software Foundation; version 2 of the License.               *
7
8  *                                                                         *
9  *   This program is distributed in the hope that it will be useful,       *
10  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
11  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
12  *   GNU General Public License for more details.                          *
13  *                                                                         *
14  *   You should have received a copy of the GNU General Public License     *
15  *   along with this program; if not, write to the                         *
16  *   Free Software Foundation, Inc.,                                       *
17  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
18  ***************************************************************************/
19
20 #ifndef SHORTCUT_WIDGET_H
21 #define SHORTCUT_WIDGET_H
22
23
24 #if defined(GLOBAL_AUTOTYPE) && defined(Q_WS_X11)
25 #include "lib/AutoType.h"
26 #endif
27
28 class ShortcutWidget : public QLineEdit{
29         Q_OBJECT
30         
31         public:
32                 ShortcutWidget(QWidget* parent = 0);
33 #if defined(GLOBAL_AUTOTYPE) && defined(Q_WS_X11)
34                 Shortcut shortcut();
35                 void setShortcut(const Shortcut& s);
36         
37         protected:
38                 void keyPressEvent(QKeyEvent* event);
39                 void keyReleaseEvent(QKeyEvent* event);
40         
41         private:
42                 void keyEvent(QKeyEvent* event, bool release);
43                 void displayShortcut(quint32 key, bool release, bool ctrl, bool shift, bool alt, bool altgr, bool win);
44                 void setBackgroundColor(const QColor& c);
45                 bool lock;
46                 bool failed;
47                 Shortcut pShortcut;
48 #endif
49 };
50
51 #endif // SHORTCUT_WIDGET_H