X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FPartSet%2FPartSet_WidgetPoint2dDistance.h;h=889ee2ed0fb210b3b206ee7f4eda3cc7e9b4f98a;hb=73b63afd03a150740406d8c5cebf45ac5125f2e3;hp=ca95b75fd3ee11f0bd851fa1319dbc76d4a9985d;hpb=340b387f8fe22028900d0f2ba2b81eac538014c4;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_WidgetPoint2dDistance.h b/src/PartSet/PartSet_WidgetPoint2dDistance.h index ca95b75fd..889ee2ed0 100644 --- a/src/PartSet/PartSet_WidgetPoint2dDistance.h +++ b/src/PartSet/PartSet_WidgetPoint2dDistance.h @@ -12,57 +12,88 @@ #include +class PartSet_LockApplyMgr; class GeomAPI_Pnt2d; -class XGUI_Workshop; +class ModuleBase_IWorkshop; class ModuleBase_IViewWindow; class QMouseEvent; +/** +* \ingroup Modules +* Implementation of model widget for widget which provides input of a distance between two points +* In XML file can be defined as following: +* \code +* +* +* +* \endcode +*/ class PARTSET_EXPORT PartSet_WidgetPoint2dDistance : public ModuleBase_WidgetDoubleValue { Q_OBJECT public: /// Constructor - /// \theParent the parent object - /// \theData the widget configuation. The attribute of the model widget is obtained from - PartSet_WidgetPoint2dDistance(QWidget* theParent, const Config_WidgetAPI* theData, - const std::string& theParentId); + /// \param theParent the parent object + /// \param theWorkshop a current workshop + /// \param theData the widget configuation. The attribute of the model widget is obtained from + /// \param theParentId is Id of a parent of the current attribute + PartSet_WidgetPoint2dDistance(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop, + const Config_WidgetAPI* theData, + const std::string& theParentId); virtual ~PartSet_WidgetPoint2dDistance(); - /// The methiod called when widget is activated - virtual void activate(); - /// The methiod called when widget is deactivated virtual void deactivate(); - /// Set the given wrapped value to the current widget - /// This value should be processed in the widget according to the needs - /// \param theValue the wrapped widget value - //virtual bool setValue(ModuleBase_WidgetValue* theValue); - - XGUI_Workshop* workshop() const { return myWorkshop; } - - void setWorkshop(XGUI_Workshop* theWork) { myWorkshop = theWork; } - /// \returns the sketch instance CompositeFeaturePtr sketch() const { return mySketch; } + + /// Set sketch instance void setSketch(CompositeFeaturePtr theSketch) { mySketch = theSketch; } - protected slots: - void onMouseRelease(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent); +public slots: + /// Process of mouse move + /// \param theWnd a pointer to a window + /// \param theEvent a mouse event void onMouseMove(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent); + protected slots: + /// Process of mouse release + /// \param theWnd a pointer to a window + /// \param theEvent a mouse event + void onMouseRelease(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent); + protected: + /// The methiod called when widget is activated + virtual void activateCustom(); + /// Set the second point which defines a value in the widget as a distance with a first point defined by feature void setPoint(FeaturePtr theFeature, const std::shared_ptr& thePnt); + /// Compute the distance between points + /// \param theFirstPnt a point value of the out point attribute + /// \param theCurrentPnt a point of the current widget + /// \return a double value + virtual double computeValue(const std::shared_ptr& theFirstPnt, + const std::shared_ptr& theCurrentPnt); + private slots: + /// Process values changed event void onValuesChanged(); - private: - XGUI_Workshop* myWorkshop; - std::string myFirstPntName; +protected: + ModuleBase_IWorkshop* myWorkshop; + PartSet_LockApplyMgr* myLockApplyMgr; ///< a manager to lock/unlock Apply button in PP + std::string myFirstPntName; CompositeFeaturePtr mySketch; };