Salome HOME
Refs #289 - Spline profile is represented in OCC view as polyline profile
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_Widget.h
index 7da055ae967a3229301a7ac6fdd0a3425afa9289..2d4348cc2152b18e7af00416684274b8fe392f60 100644 (file)
@@ -56,7 +56,15 @@ public:
   enum ActionFlags {
     NoFlags              = 0x00000000,
     DisableDetectionMode = 0x00000001,
-    DisableNewSection    = 0x00000002
+    DisableNewSection    = 0x00000002,
+    DisableClosedSection = 0x00000004
+  };
+
+  enum ActionMode {
+    NoneMode,
+    AdditionMode,
+    ModificationMode,
+    DetectionMode
   };
 
 public:
@@ -77,14 +85,17 @@ public:
   void setCurve( CurveCreator_ICurve* theCurve );
 
   QList<int> getSelectedSections();
-  QList< QPair< int, int > > getSelectedPoints();
+  void setSelectedSections( const QList<int>& theSections );
 
   void  removeSelected();
   bool  removeEnabled();
 
+  void setActionMode( const ActionMode& theMode );
+  ActionMode getActionMode() const;
+
 signals:
   void selectionChanged();
-  void subOperationStarted( QWidget* );
+  void subOperationStarted( QWidget*, bool );
   void subOperationFinished( QWidget* );
 
 public slots:
@@ -128,7 +139,8 @@ protected:
   void     addCoordsByClick( QMouseEvent* );
 
 protected:
-  enum ActionId{ UNDO_ID, 
+  enum ActionId{ NONE_ID,
+                 UNDO_ID, 
                  REDO_ID, 
                  NEW_SECTION_ID, 
                  ADDITION_MODE_ID, 
@@ -146,20 +158,13 @@ protected:
                  DETECTION_MODE_ID 
   };
 
-  enum ActionMode {
-    NoneMode,
-    AdditionMode,
-    ModificationMode,
-    DetectionMode
-  };
-
 private:
   OCCViewer_Viewer* getOCCViewer();
 
   QAction* createAction( ActionId theId, const QString& theName, const QPixmap& theImage,
                          const QString& theToolTip, const QKeySequence& theShortcut );
   QAction* getAction(ActionId theId);
-  ActionMode getActionMode() const;
+  QAction* getAction(ActionMode theMode);
 
   void updateActionsStates();
   void updateUndoRedo();
@@ -179,7 +184,7 @@ private:
   void setSelectedPoints( const CurveCreator_ICurve::SectionToPointList& =
                                CurveCreator_ICurve::SectionToPointList() );
 
-  void stopModificationMode();
+  void stopActionMode();
 
   void startCurveModification( CurveCreator_ICurve::SectionToPointList& thePoints,
                                const bool theFillPoints = true );
@@ -211,8 +216,11 @@ private:
   QPoint                      myDragStartPosition;
   int                         myDragInteractionStyle;
   CurveCreator_ICurve::SectionToPointList myDragPoints;
+  QMap<CurveCreator_ICurve::SectionToPoint, CurveCreator::Coordinates> myInitialDragPointsCoords;
   bool                        myDragged;
   QByteArray                  myGuiState;
+  int                         myPressedX;
+  int                         myPressedY;
 };
 
 #endif // CURVECREATOR_WIDGET_H