Salome HOME
Issue #6 Extended processing of nested actions.
[modules/shaper.git] / src / XGUI / XGUI_Command.h
index b1227ba2e88335a0636ee9c3416141477ddf516d..380b64ae4b8ce90eb1761995cc724d67dc5f81ca 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_Command_H
 #define XGUI_Command_H
 
+#include "XGUI.h"
 #include <QWidgetAction>
 
 #define MIN_BUTTON_HEIGHT 18
  * \ingroup GUI
  * \brief Represents a command item in the application menu (Workbench)
  */
-class XGUI_Command: public QWidgetAction
+class XGUI_EXPORT XGUI_Command: public QWidgetAction
 {
 Q_OBJECT
 public:
-  XGUI_Command(const QString& theId, QObject * parent);
-  XGUI_Command(const QString& theId, const QIcon& icon, const QString& text, QObject* parent);
+  XGUI_Command(const QString& theId, QObject * parent, bool isCheckable = false);
+  XGUI_Command(const QString& theId, const QIcon& icon, const QString& text, QObject* parent, bool isCheckable = false);
   ~XGUI_Command();
 
   //! Returns true if the command is enabled
@@ -33,6 +34,9 @@ public:
     return myId;
   }
 
+  const QStringList& unblockableCommands() const;
+  void setUnblockableCommands(const QStringList& myUnblockableCommands);
+
   //! Connect the command to a slot
   virtual void connectTo(const QObject* theResiver, const char* theSlot);
 
@@ -42,6 +46,9 @@ protected:
 
 private:
   QString myId;
+  bool myCheckable;
+  //! List of Ids of commands which WILL NOT be blocked when the command is on.
+  QStringList myUnblockableCommands;
 };
 
 #endif