Salome HOME
Issue #1933:Set auxiliary presentation style
[modules/shaper.git] / src / PartSet / PartSet_WidgetPoint2dDistance.h
index c81a3dc8291b004e79386b13cd96a8c4735e0a0d..0ad39f03cda875779d7f4c54de9eefb706db925e 100644 (file)
@@ -8,7 +8,9 @@
 #define PartSet_WidgetPoint2dDistance_H
 
 #include "PartSet.h"
-#include <ModuleBase_WidgetDoubleValue.h>
+#include "PartSet_MouseProcessor.h"
+
+#include <ModuleBase_WidgetLabelValue.h>
 
 #include <ModelAPI_CompositeFeature.h>
 
@@ -34,7 +36,8 @@ class QMouseEvent;
 * </point2ddistance>
 * \endcode
 */ 
-class PARTSET_EXPORT PartSet_WidgetPoint2dDistance : public ModuleBase_WidgetDoubleValue
+class PARTSET_EXPORT PartSet_WidgetPoint2dDistance : public ModuleBase_WidgetLabelValue,
+                                                     public PartSet_MouseProcessor
 {
 Q_OBJECT
  public:
@@ -47,8 +50,10 @@ Q_OBJECT
 
   virtual ~PartSet_WidgetPoint2dDistance();
 
-  /// The methiod called when widget is deactivated
-  virtual void deactivate();
+  /// Checks if the selection presentation is valid in widget
+  /// \param theValue a selected presentation in the view
+  /// \return a boolean value
+  virtual bool isValidSelectionCustom(const std::shared_ptr<ModuleBase_ViewerPrs>& theValue);
 
   /// \returns the sketch instance
   CompositeFeaturePtr sketch() const { return mySketch; }
@@ -59,17 +64,15 @@ Q_OBJECT
   /// Returns true if the event is processed.
   virtual bool processEnter();
 
-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);
+  /// Processing the mouse move event in the viewer
+  /// \param theWindow a view window
+  /// \param theEvent a mouse event
+  virtual void mouseMoved(ModuleBase_IViewWindow* theWindow, 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);
+  /// Processing the mouse release event in the viewer
+  /// \param theWindow a view window
+  /// \param theEvent a mouse event
+  virtual void mouseReleased(ModuleBase_IViewWindow* theWindow, QMouseEvent* theEvent);
 
 protected:
   /// Store current value in cashed value
@@ -83,10 +86,8 @@ protected:
   /// \return true if the widget current value is reset
   virtual bool resetCustom();
 
-  /// 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
+  /// 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
@@ -96,19 +97,23 @@ protected:
   virtual double computeValue(const std::shared_ptr<GeomAPI_Pnt2d>& theFirstPnt,
                               const std::shared_ptr<GeomAPI_Pnt2d>& theCurrentPnt);
 
+  /// Saves the internal parameters to the given feature
+  /// \return True in success
+  virtual bool storeValueCustom();
+
 protected:
   /// A reference to workshop
   ModuleBase_IWorkshop* myWorkshop;
-  
+
   /// A name of the first point
   std::string myFirstPntName;
 
   /// Reference to sketch
   CompositeFeaturePtr mySketch;
 
-  bool myValueIsCashed; /// boolean state if the value is cashed during value state change
-  bool myIsFeatureVisibleInCash; /// boolean value if the feature was visible when cash if filled
-  double myValueInCash; /// the cashed X value during value state change
+  bool myValueIsCashed; ///< boolean state if the value is cashed during value state change
+  bool myIsFeatureVisibleInCash; ///< boolean value if the feature was visible when cash if filled
+  double myValueInCash; ///< the cashed X value during value state change
 };
 
 #endif