Salome HOME
Issue #631 - Uncatched problem in XML file
[modules/shaper.git] / src / ModelAPI / ModelAPI_Object.h
index 45932c039e2046212dd9fa32b6e360d438127a02..9d1d04c395f3cfb593370a51ee38a11cd12f2311 100644 (file)
@@ -32,6 +32,12 @@ class ModelAPI_Object
   /// By default object is displayed in the object browser.
   MODELAPI_EXPORT virtual bool isInHistory();
 
+  /// Makes object presented or not in the history of the created objects
+  /// \param theObject is shared pointer to "this"
+  /// \param theFlag is boolean value: to add or remove from the history
+  MODELAPI_EXPORT virtual void setInHistory(
+    const std::shared_ptr<ModelAPI_Object> theObject, const bool theFlag);
+
   /// Returns the data manager of this object: attributes
   MODELAPI_EXPORT virtual std::shared_ptr<ModelAPI_Data> data() const;
 
@@ -44,14 +50,31 @@ class ModelAPI_Object
   /// Returns the group identifier of this object
   virtual std::string groupName() = 0;
 
+  /// Request for initialization of data model of the object: adding all attributes
+  virtual void initAttributes() = 0;
+
+  /// Returns the feature is disabled or not.
+  virtual bool isDisabled() const = 0;
+
   /// Called on change of any argument-attribute of this object
   /// \param theID identifier of changed attribute
-  // MODELAPI_EXPORT
   MODELAPI_EXPORT virtual void attributeChanged(const std::string& theID);
 
+  /// Initializes the default states of the object
+  MODELAPI_EXPORT ModelAPI_Object();
+
   /// To use virtuality for destructors
   MODELAPI_EXPORT virtual ~ModelAPI_Object();
 
+  /// Returns true if object must be displayed in the viewer: flag is stored in the
+  /// data model, so on undo/redo, open/save or recreation of object by history-playing it keeps
+  /// the original state i nthe current transaction.
+  MODELAPI_EXPORT virtual bool isDisplayed();
+
+  /// Sets the displayed/hidden state of the object. If it is changed, sends the "redisplay"
+  /// signal.
+  MODELAPI_EXPORT virtual void setDisplayed(const bool theDisplay);
+
  protected:
   /// Sets the data manager of an object (document does)
   MODELAPI_EXPORT virtual void setData(std::shared_ptr<ModelAPI_Data> theData);
@@ -62,7 +85,7 @@ class ModelAPI_Object
   /// removes all fields from this feature
   MODELAPI_EXPORT virtual void erase();
 
-  friend class Model_Document;
+  friend class Model_Objects;
 
 };