X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Module.h;h=03207f25273d751d8110922cf89607d0efe39706;hb=29cf3cffcf4536d96e3546f6c451359387e670e6;hp=dc22f1f440137b4a13912da4ca494081584acf26;hpb=c80e8ac643930b858f4f653e2659896ba587b165;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Module.h b/src/PartSet/PartSet_Module.h index dc22f1f44..03207f252 100644 --- a/src/PartSet/PartSet_Module.h +++ b/src/PartSet/PartSet_Module.h @@ -6,28 +6,97 @@ #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); public slots: void onFeatureTriggered(); - void onBeforeOperationStart(); - void onOperationStopped(); - void onVisualizePreview(bool isDisplay); + /// SLOT, that is called after the operation is stopped. Disconnect the sketch feature + /// from the viewer selection and show the sketch preview. + void onOperationStopped(ModuleBase_Operation* theOperation); + + /// SLOT, that is called by the selection in the viewer is changed. + /// The selection is sent to the current operation if it listens selection. + void onSelectionChanged(); + /// 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 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