LP-56 - Better txpid option namings, fix tabs-spaces, tooltips. headers, variable...
[librepilot.git] / ground / openpilotgcs / src / plugins / coreplugin / actionmanager / command.h
blob6f4b394bc4e8b3d066275c8f3a39f43ea240796a
1 /**
2 ******************************************************************************
4 * @file command.h
5 * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
6 * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009.
7 * @addtogroup GCSPlugins GCS Plugins
8 * @{
9 * @addtogroup CorePlugin Core Plugin
10 * @{
11 * @brief The Core GCS plugin
12 *****************************************************************************/
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 3 of the License, or
17 * (at your option) any later version.
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
21 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 * for more details.
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29 #ifndef COMMAND_H
30 #define COMMAND_H
32 #include <coreplugin/core_global.h>
34 #include <QtCore/QObject>
36 QT_BEGIN_NAMESPACE
37 class QAction;
38 class QShortcut;
39 class QKeySequence;
40 QT_END_NAMESPACE
43 namespace Core {
44 class CORE_EXPORT Command : public QObject {
45 Q_OBJECT
46 public:
47 enum CommandAttribute {
48 CA_Hide = 0x0100,
49 CA_UpdateText = 0x0200,
50 CA_UpdateIcon = 0x0400,
51 CA_NonConfigureable = 0x8000,
52 CA_Mask = 0xFF00
55 virtual void setDefaultKeySequence(const QKeySequence &key) = 0;
56 virtual QKeySequence defaultKeySequence() const = 0;
57 virtual QKeySequence keySequence() const = 0;
58 virtual void setDefaultText(const QString &text) = 0;
59 virtual QString defaultText() const = 0;
61 virtual int id() const = 0;
63 virtual QAction *action() const = 0;
64 virtual QShortcut *shortcut() const = 0;
66 virtual void setAttribute(CommandAttribute attr) = 0;
67 virtual void removeAttribute(CommandAttribute attr) = 0;
68 virtual bool hasAttribute(CommandAttribute attr) const = 0;
70 virtual bool isActive() const = 0;
72 virtual ~Command() {}
74 virtual void setKeySequence(const QKeySequence &key) = 0;
76 virtual QString stringWithAppendedShortcut(const QString &str) const = 0;
78 signals:
79 void keySequenceChanged();
81 } // namespace Core
83 #endif // COMMAND_H