Salome HOME
Sketch selection in the browser for extrusion operation
[modules/shaper.git] / src / ModuleBase / ModuleBase_IModule.h
index 01896bb8fa3610406fe3e357df9130c9eeff5704..ffe5139479fdc09fdcc09043798e4b6fcd413786 100644 (file)
@@ -69,6 +69,10 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject
   /// Realizes some functionality by an operation abort\r
   virtual void operationAborted(ModuleBase_Operation* theOperation) {}\r
 \r
+  /// Realizes some functionality by an operation start\r
+  /// \param theOperation a started operation\r
+  virtual ModuleBase_Operation* currentOperation() const = 0;\r
+\r
   /// Add menu atems for viewer into the given menu\r
   /// \param theMenu a popup menu to be shown in the viewer\r
   virtual void addViewerItems(QMenu* theMenu) const {}\r
@@ -86,9 +90,8 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject
   /// \param theWidgetApi the widget configuation. The attribute of the model widget is obtained from\r
   /// \param theParentId is Id of a parent of the current attribute\r
   /// \param theModelWidgets list of widget objects\r
-  virtual QWidget* createWidgetByType(const std::string& theType, QWidget* theParent,\r
-                                      Config_WidgetAPI* theWidgetApi, std::string theParentId,\r
-                                      QList<ModuleBase_ModelWidget*>& theModelWidgets)\r
+  virtual ModuleBase_ModelWidget* createWidgetByType(const std::string& theType, QWidget* theParent,\r
+                                      Config_WidgetAPI* theWidgetApi, std::string theParentId)\r
   {\r
     return 0;\r
   }\r
@@ -100,11 +103,21 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject
   /// It is called as on clearing of property panel as on filling with new widgets\r
   virtual void propertyPanelDefined(ModuleBase_Operation* theOperation) {}\r
 \r
+  //! Returns True if there are available Undos and there is not an active operation\r
+  virtual bool canUndo() const;\r
+\r
+  //! Returns True if there are available Redos and there is not an active operation\r
+  virtual bool canRedo() const;\r
+\r
   /// Returns whether the object can be displayed at the bounds of the active operation.\r
   /// Display only current operation results\r
   /// \param theObject a model object\r
   virtual bool canDisplayObject(const ObjectPtr& theObject) const;\r
 \r
+  /// Reacts to the delete action in module\r
+  /// \returns true if the action is processed\r
+  virtual bool deleteObjects() { return false; };\r
+\r
 public slots:\r
   /// Called on call of command corresponded to a feature\r
   void onFeatureTriggered();\r