#include <ModelAPI_CompositeFeature.h>
+class PartSet_LockApplyMgr;
class GeomAPI_Pnt2d;
-class XGUI_Workshop;
+class ModuleBase_IWorkshop;
class ModuleBase_IViewWindow;
class QMouseEvent;
public:
/// Constructor
/// \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, const Config_WidgetAPI* theData,
- const std::string& theParentId);
+ PartSet_WidgetPoint2dDistance(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
+ const Config_WidgetAPI* theData,
+ const std::string& theParentId);
virtual ~PartSet_WidgetPoint2dDistance();
- /// Fills the widget with default values
- virtual void reset();
-
/// The methiod called when widget is deactivated
virtual void deactivate();
- /// Returns workshop
- XGUI_Workshop* workshop() const { return myWorkshop; }
-
- /// Set workshop
- /// \param theWork a pointer to workshop
- void setWorkshop(XGUI_Workshop* theWork) { myWorkshop = theWork; }
-
/// \returns the sketch instance
CompositeFeaturePtr sketch() const { return mySketch; }
/// 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<GeomAPI_Pnt2d>& 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<GeomAPI_Pnt2d>& theFirstPnt,
+ const std::shared_ptr<GeomAPI_Pnt2d>& 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;
};