pgLab/pglab/plugin_support/MenuAction.h

49 lines
1.1 KiB
C
Raw Normal View History

#ifndef MENUACTION_H
2019-01-01 08:26:20 +01:00
#define MENUACTION_H
#include "MenuLocation.h"
#include "ToolbarLocation.h"
2019-01-01 08:26:20 +01:00
#include <QIcon>
#include <QKeySequence>
#include <QString>
#include <functional>
class QAction;
class IPluginContentWidgetContext;
/** An action for in a menu or toolbar that does not pertain to a specific
* widget. It often will create a widget for instance a New or Open action.
* It does need a context.
*
*/
class MenuAction {
2019-01-01 08:26:20 +01:00
public:
using Func = std::function<void(IPluginContentWidgetContext *context)>;
MenuAction(QString text, Func func);
const QIcon& icon() const;
const MenuLocation& menuLocation() const;
void setIcon(QIcon icon);
void setMenuLocation(MenuLocation menu_location);
void setShortcut(QKeySequence shortcut);
void setText(QString text);
void setToolTip(QString tooltip);
const QKeySequence& shortcut() const;
const QString& text() const;
const QString& toolTip() const;
void perform(IPluginContentWidgetContext *context) const;
private:
QString m_text;
QString m_toolTip;
QIcon m_icon;
QKeySequence m_shortcut;
MenuLocation m_menuLocation;
Func m_func;
2019-01-01 08:26:20 +01:00
};
#endif // MENUACTION_H