X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_WidgetPoint2d.h;h=e39011c9054e32484b65472bdf9bdda846078354;hb=c910e9e2e9e68bc1a9f857d555a0201c2c4c75f1;hp=0e8ae42b158cf60a807716a5268eae56ee111721;hpb=0753cbb25872a1e8b5126d5f4542a19218e9623c;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_WidgetPoint2d.h b/src/PartSet/PartSet_WidgetPoint2d.h index 0e8ae42b1..e39011c90 100644 --- a/src/PartSet/PartSet_WidgetPoint2d.h +++ b/src/PartSet/PartSet_WidgetPoint2d.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: PartSet_WidgetPoint2d.h // Created: 25 Apr 2014 // Author: Natalia ERMOLAEVA @@ -12,9 +14,9 @@ #include #include +#include class ModelAPI_Feature; -class ModuleBase_WidgetValue; class ModuleBase_IWorkshop; class ModuleBase_DoubleSpinBox; class ModuleBase_IViewWindow; @@ -25,60 +27,62 @@ class QGroupBox; class QMouseEvent; /**\class PartSet_WidgetPoint2D - * \ingroup GUI - * \brief Custom widget. An abstract class to be redefined to fill with some GUI controls + * \ingroup Modules + * \brief Implementation of model widget to provide widget to input point 2d + * In XML can be defined as folloung: + * \code + * + * \endcode */ class PARTSET_EXPORT PartSet_WidgetPoint2D : public ModuleBase_ModelWidget { Q_OBJECT public: /// Constructor - /// \theParent the parent object - /// \theParent the parent object - /// \theData the widget configuation. The attribute of the model widget is obtained from + /// \param theParent the parent object + /// \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_WidgetPoint2D(QWidget* theParent, const Config_WidgetAPI* theData, const std::string& theParentId); /// Destructor virtual ~PartSet_WidgetPoint2D(); + /// Fills the widget with default values + virtual void reset(); + /// 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); - - /// Saves the internal parameters to the given feature - /// \param theObject a model feature to be changed - virtual bool storeValue() const; + virtual bool setSelection(ModuleBase_ViewerPrs theValue); virtual bool restoreValue(); - /// Returns the internal parent wiget control, that can be shown anywhere - /// \returns the widget - QWidget* getControl() const; - /// Returns list of widget controls /// \return a control list virtual QList getControls() const; //bool initFromPrevious(ObjectPtr theObject); - /// The methiod called when widget is activated - virtual void activate(); - /// The methiod called when widget is deactivated virtual void deactivate(); + /// Return workshop XGUI_Workshop* workshop() const { return myWorkshop; } + /// Set workshop 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; } /// Fill the widget values by given point - /// \param thePoint the point - void setPoint(double theX, double theY); + /// \param theX the X coordinate + /// \param theY the Y coordinate + /// \returns True in case of success + bool setPoint(double theX, double theY); /// Returns coordinate X currently defined in the control double x() const; @@ -88,15 +92,41 @@ Q_OBJECT signals: /// Signal about selection of an existing vertex from an object - /// \param theObject - the selected object - /// \param theShape - the selected shape - void vertexSelected(ObjectPtr theObject, const TopoDS_Shape& theShape); + void vertexSelected(); + +public slots: + /// Process mouse move event + /// \param theWnd a view window + /// \param theEvent a mouse event + void onMouseMove(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent); protected slots: + /// Process mouse release event + /// \param theWnd a view window + /// \param theEvent a mouse event void onMouseRelease(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent); - void onMouseMove(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent); + +protected: + /// Saves the internal parameters to the given feature + /// \return True in success + virtual bool storeValueCustom() const; + + /// The methiod called when widget is activated + virtual void activateCustom(); + +private slots: + /// Process value changed event + void onValuesChanged(); private: + /// Returns point 2d from selected vertex + /// \param theView a view window + /// \param theShape a vertex shape + /// \param theX an output value of X coordinate + /// \param theY an output value of Y coordinate + bool getPoint2d(const Handle(V3d_View)& theView, const TopoDS_Shape& theShape, + double& theX, double& theY) const; + XGUI_Workshop* myWorkshop; QGroupBox* myGroupBox; ///< the parent group box for all intenal widgets