]> SALOME platform Git repositories - modules/shaper.git/blob - src/XGUI/XGUI_Command.h
Salome HOME
Make XGUI as a shared library
[modules/shaper.git] / src / XGUI / XGUI_Command.h
1 #ifndef XGUI_Command_H
2 #define XGUI_Command_H
3
4 #include "XGUI.h"
5 #include <QWidgetAction>
6
7 #define MIN_BUTTON_HEIGHT 18
8 #define MIN_BUTTON_WIDTH 40
9
10 /**\class XGUI_Command
11  * \ingroup GUI
12  * \brief Represents a command item in the application menu (Workbench)
13  */
14 class XGUI_EXPORT XGUI_Command: public QWidgetAction
15 {
16 Q_OBJECT
17 public:
18   XGUI_Command(const QString& theId, QObject * parent);
19   XGUI_Command(const QString& theId, const QIcon& icon, const QString& text, QObject* parent);
20   ~XGUI_Command();
21
22   //! Returns true if the command is enabled
23   virtual bool enabled() const;
24
25   //! Set the command enabled
26   virtual void enable();
27
28   //! Set the command disabled
29   virtual void disable();
30
31   //! Returns Id of the command
32   virtual QString id() const
33   {
34     return myId;
35   }
36
37   //! Connect the command to a slot
38   virtual void connectTo(const QObject* theResiver, const char* theSlot);
39
40 protected:
41   //! Creates a command representation widget dependently on parent widget type
42   virtual QWidget* createWidget(QWidget* theParent);
43
44 private:
45   QString myId;
46 };
47
48 #endif