X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Module.h;h=86c2d95f6b38ed99599461e1907e740b96b9813f;hb=f4797a246fbd855f80f8a2f5c620e1aae1701000;hp=dc22f1f440137b4a13912da4ca494081584acf26;hpb=11fca61445a4c008b1b703bfd4bb512fcac65135;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Module.h b/src/PartSet/PartSet_Module.h index dc22f1f44..86c2d95f6 100644 --- a/src/PartSet/PartSet_Module.h +++ b/src/PartSet/PartSet_Module.h @@ -6,28 +6,102 @@ #include #include +#include #include +#include + +#include + +class QMouseEvent; +class QKeyEvent; +class PartSet_Listener; +class ModelAPI_Feature; + class PARTSET_EXPORT PartSet_Module: public QObject, public XGUI_Module { Q_OBJECT - std::string modulePlugin(); public: PartSet_Module(XGUI_Workshop* theWshop); virtual ~PartSet_Module(); + /// Returns the module workshop + /// \returns a workshop instance + XGUI_Workshop* workshop() const; + virtual void createFeatures(); virtual void featureCreated(XGUI_Command* theFeature); + virtual QStringList nestedFeatures(QString theFeature); + std::string featureFile(const std::string&); + + /// Creates an operation and send it to loop + /// \param theCmdId the operation name + virtual void launchOperation(const QString& theCmdId); + + /// Displays or erase the current operation preview, if it has it. + /// \param theF + /// \param isDisplay the state whether the presentation should be displayed or erased + void visualizePreview(boost::shared_ptr theFeature, bool isDisplay); + + /// Updates current operation preview, if it has it. + /// \param theCmdId the operation name + void updateCurrentPreview(const std::string& theCmdId); public slots: void onFeatureTriggered(); - void onBeforeOperationStart(); - void onOperationStopped(); - void onVisualizePreview(bool isDisplay); + /// SLOT, that is called after the operation is stopped. Switched off the modfications performed + /// by the operation start + void onOperationStopped(ModuleBase_Operation* theOperation); + + /// SLOT, that is called by mouse press in the viewer. + /// The mouse released point is sent to the current operation to be processed. + /// \param theEvent the mouse event + void onMousePressed(QMouseEvent* theEvent); + /// SLOT, that is called by mouse release in the viewer. + /// The mouse released point is sent to the current operation to be processed. + /// \param theEvent the mouse event + void onMouseReleased(QMouseEvent* theEvent); + /// SLOT, that is called by mouse move in the viewer. + /// The mouse moved point is sent to the current operation to be processed. + /// \param theEvent the mouse event + void onMouseMoved(QMouseEvent* theEvent); + + /// SLOT, that is called by the key in the viewer is clicked. + /// \param theEvent the mouse event + void onKeyRelease(QKeyEvent*); + + /// SLOT, to apply to the current viewer the operation + /// \param theX the X projection value + /// \param theY the Y projection value + /// \param theZ the Z projection value + void onPlaneSelected(double theX, double theY, double theZ); + + void onLaunchOperation(std::string theName, boost::shared_ptr theFeature); + + /// SLOT, to switch on/off the multi selection in the viewer + /// \param theEnabled the enabled state + void onMultiSelectionEnabled(bool theEnabled); + + /// SLOT, to visualize the feature in another local context mode + /// \param theFeature the feature to be put in another local context mode + /// \param theMode the mode appeared on the feature + void onFeatureConstructed(boost::shared_ptr theFeature, + int theMode); +protected: + /// Creates a new operation + /// \param theCmdId the operation name + ModuleBase_Operation* createOperation(const std::string& theCmdId); + + /// Sends the operation + /// \param theOperation the operation + void sendOperation(ModuleBase_Operation* theOperation); private: XGUI_Workshop* myWorkshop; + PartSet_Listener* myListener; + + std::map myFeaturesInFiles; }; #endif