Salome HOME
Implementation of color as integer array attribute
[modules/shaper.git] / src / ModelAPI / ModelAPI_Session.h
index f3ebb3d00aa4c5bdd4bf419c1b411f64e8b5c2fb..613122a35a7e01ae0dbb312770127cce08926d5d 100644 (file)
@@ -32,7 +32,6 @@ class MODELAPI_EXPORT ModelAPI_Session
 
   //! Loads the OCAF document from the file.
   //! \param theFileName full name of the file to load
-  //! \param theStudyID identifier of the SALOME study to associate with loaded file
   //! \returns true if file was loaded successfully
   virtual bool load(const char* theFileName) = 0;
 
@@ -46,7 +45,8 @@ class MODELAPI_EXPORT ModelAPI_Session
   virtual void closeAll() = 0;
 
   //! Starts a new operation (opens a tansaction)
-  virtual void startOperation() = 0;
+  //! \param theId of operation for history (optional)
+  virtual void startOperation(const std::string& theId = "") = 0;
   //! Finishes the previously started operation (closes the transaction)
   virtual void finishOperation() = 0;
   //! Aborts the operation 
@@ -64,6 +64,10 @@ class MODELAPI_EXPORT ModelAPI_Session
   virtual bool canRedo() = 0;
   //! Redoes last operation
   virtual void redo() = 0;
+  //! Returns stack of performed operations (from last to first)
+  virtual std::list<std::string> undoList() = 0;
+  //! Returns stack of rolled back operations (from last rolled back to first)
+  virtual std::list<std::string> redoList() = 0;
 
   /// Registers the plugin that creates features.
   /// It is obligatory for each plugin to call this function on loading to be found by 
@@ -104,7 +108,7 @@ class MODELAPI_EXPORT ModelAPI_Session
  protected:
   /// Creates the feature object using plugins functionality
   virtual std::shared_ptr<ModelAPI_Feature> createFeature(std::string theFeatureID) = 0;
-
+  /// Sets the session interface implementation (once per application launch)
   static void setSession(std::shared_ptr<ModelAPI_Session> theManager);
 
   friend class Model_Document;