X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_PluginManager.h;h=8fc49bdf2c6e9ccb84c136360b34c33a91bd933b;hb=053481dcc854e8f47d2674bf2cf04b424f773cde;hp=47b326ac2d3121a15d2578b3df1a3cb1bd07f2ff;hpb=475c7f8d39e081fb9defe50a05f18bca625993bf;p=modules%2Fshaper.git diff --git a/src/Model/Model_PluginManager.h b/src/Model/Model_PluginManager.h index 47b326ac2..8fc49bdf2 100644 --- a/src/Model/Model_PluginManager.h +++ b/src/Model/Model_PluginManager.h @@ -18,25 +18,31 @@ class Model_Document; * plugin contains which feature, loads and stores reference to loaded plugins by * the feature functionality request. */ - class Model_PluginManager : public ModelAPI_PluginManager, public Event_Listener { bool myPluginsInfoLoaded; ///< it true if plugins information is loaded - /// map of feature IDs to plugin name and object + /// map of feature IDs to plugin name std::map myPlugins; std::map myPluginObjs; ///< instances of the already plugins std::string myCurrentPluginName; ///< name of the plugin that must be loaded currently + std::shared_ptr myCurrentDoc; ///< current working document public: - /// Creates the feature object using plugins functionality - MODEL_EXPORT virtual std::shared_ptr createFeature(std::string theFeatureID); - /// Returns the root document of the application (that may contains sub-documents) - virtual std::shared_ptr rootDocument(); + MODEL_EXPORT virtual std::shared_ptr rootDocument(); + + /// Return true if root document has been already created + MODEL_EXPORT virtual bool hasRootDocument(); + + /// Returns the current document that used for current work in the application + MODEL_EXPORT virtual std::shared_ptr currentDocument(); + + /// Defines the current document that used for current work in the application + MODEL_EXPORT virtual void setCurrentDocument(std::shared_ptr theDoc); /// Registers the plugin that creates features. /// It is obligatory for each plugin to call this function on loading to be found by /// the plugin manager on call of the feature) - virtual void registerPlugin(ModelAPI_Plugin* thePlugin); + MODEL_EXPORT virtual void registerPlugin(ModelAPI_Plugin* thePlugin); /// Processes the configuration file reading MODEL_EXPORT virtual void processEvent(const Event_Message* theMessage); @@ -44,9 +50,12 @@ public: /// Is called only once, on startup of the application Model_PluginManager(); -private: +protected: /// Loads (if not done yet) the information about the features and plugins void LoadPluginsInfo(); + + /// Creates the feature object using plugins functionality + virtual std::shared_ptr createFeature(std::string theFeatureID); }; #endif