X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Module.h;h=03207f25273d751d8110922cf89607d0efe39706;hb=29cf3cffcf4536d96e3546f6c451359387e670e6;hp=fcf98a0c32920465955216376030dec8541d88cd;hpb=e0599afe13a8f2be4fe593e6d50b23a23b0a6c81;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Module.h b/src/PartSet/PartSet_Module.h index fcf98a0c3..03207f252 100644 --- a/src/PartSet/PartSet_Module.h +++ b/src/PartSet/PartSet_Module.h @@ -11,6 +11,13 @@ #include +#include + +class QMouseEvent; +class QKeyEvent; +class PartSet_Listener; +class ModelAPI_Feature; + class PARTSET_EXPORT PartSet_Module: public QObject, public XGUI_Module { Q_OBJECT @@ -19,29 +26,75 @@ 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(); - /// SLOT, that is called after the operation is started. Perform some specific for module - /// actions, e.g. connect the sketch feature to the viewer selection and show the sketch preview. - void onOperationStarted(); /// 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 listen the selection. - void onViewSelectionChanged(); + /// 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); -private: - /// Displays or erase the current operation preview, if it has it. - /// \param isDisplay the state whether the presentation should be displayed or erased - void visualizePreview(bool isDisplay); + /// 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; };