Merged in f5soh/librepilot/update_credits (pull request #529)
[librepilot.git] / ground / gcs / src / plugins / coreplugin / actionmanager / actioncontainer.h
blob83a1c93d500d98439df1d81d0bdeb2167cad673d
1 /**
2 ******************************************************************************
4 * @file actioncontainer.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 ACTIONCONTAINER_H
30 #define ACTIONCONTAINER_H
32 #include <QtCore/QObject>
33 #include <QMenu>
34 #include <QMenuBar>
35 #include <QAction>
37 namespace Core {
38 class Command;
40 class ActionContainer : public QObject {
41 public:
42 enum EmptyAction {
43 EA_Mask = 0xFF00,
44 EA_None = 0x0100,
45 EA_Hide = 0x0200,
46 EA_Disable = 0x0300
49 virtual void setEmptyAction(EmptyAction ea) = 0;
51 virtual int id() const = 0;
53 virtual QMenu *menu() const = 0;
54 virtual QMenuBar *menuBar() const = 0;
56 virtual QAction *insertLocation(const QString &group) const = 0;
57 virtual void appendGroup(const QString &group) = 0;
58 virtual void addAction(Core::Command *action, const QString &group = QString()) = 0;
59 virtual void addMenu(Core::ActionContainer *menu, const QString &group = QString()) = 0;
61 virtual bool update() = 0;
62 virtual ~ActionContainer() {}
64 } // namespace Core
66 #endif // ACTIONCONTAINER_H