Salome HOME
Fix for bugs 10287, 9986: SIGSEGV in VISU on Views management
[modules/visu.git] / src / VISU_I / VISU_View_i.hh
index af96f2f41994ea972cd3310b3066781cb0a9af75..76b44da55bc089c5f24c561ea4994f2a1e2bdbe4 100644 (file)
@@ -49,40 +49,58 @@ namespace VISU
                  public virtual Storable
   {
   public:
-    QWidget         *myWorkspace;
-    SUIT_ViewWindow *myViewWindow;
-
-  protected:
-    SalomeApp_Application *myApplication;
-    SUIT_ViewManager      *myViewManager;
-
     View_i (SalomeApp_Application *theApplication,
-           SUIT_ViewManager* theViewManager);
+            SUIT_ViewManager* theViewManager);
     virtual ~View_i();
 
   public:
-    virtual void ShowPart( VISU::View::ViewRepresentation ViewRepr, CORBA::Boolean state  );
+    virtual void ShowPart( VISU::View::ViewRepresentation ViewRepr, CORBA::Boolean state );
     virtual CORBA::Boolean IsPartShown( VISU::View::ViewRepresentation ViewRepr );
+
+    // Begin: New methods for view parameters management
+    virtual void SplitRight();
+    virtual void SplitLeft();
+    virtual void SplitBottom();
+    virtual void SplitTop();
+
+    virtual void OnTop();
+
+    virtual void Attract   (VISU::View_ptr theView);
+    virtual void AttractAll(VISU::View_ptr theView);
+
+    virtual void SetRelativePositionInSplitter(CORBA::Double thePosition);
+    virtual void SetRelativeSizeInSplitter(CORBA::Double theSize);
+
+    virtual void SetRelativePositionX(CORBA::Double thePosition);
+    virtual void SetRelativePositionY(CORBA::Double thePosition);
+
+    virtual void SetRelativeSizeX(CORBA::Double theSize);
+    virtual void SetRelativeSizeY(CORBA::Double theSize);
+    // End: New methods for view parameters management
+
+    // Begin: Old methods for view parameters management, they don't work now
     virtual void SetViewWidth(CORBA::Long Width);
     virtual void SetViewHeight(CORBA::Long Height);
     virtual CORBA::Long GetViewWidth();
     virtual CORBA::Long GetViewHeight();
     virtual void SetViewPositionHorizontal(VISU::View::ViewPosition ViewPosHor);
     virtual void SetViewPositionVertical(VISU::View::ViewPosition ViewPosVer);
-
     virtual void SetRelativePosition( CORBA::Double x, CORBA::Double y );
     virtual void SetRelativeSize( CORBA::Double x, CORBA::Double y );
-
-    virtual void SetBackground(const SALOMEDS::Color& theColor);
-    virtual SALOMEDS::Color GetBackground();
     virtual void Minimize();
     virtual void Restore();
     virtual void Maximize();
+    // End: Old methods for view parameters management, they don't work now
+
+    virtual void SetBackground(const SALOMEDS::Color& theColor);
+    virtual SALOMEDS::Color GetBackground();
+
     virtual void EraseAll();
     virtual void DisplayAll();
     virtual void Erase(PrsObject_ptr thePrsObj);
     virtual void Display(PrsObject_ptr thePrsObj);
     virtual void DisplayOnly(PrsObject_ptr thePrsObj);
+
     virtual void Update();
 
     virtual CORBA::Boolean SavePicture(const char* theFileName);
@@ -90,6 +108,18 @@ namespace VISU
     virtual void Close() = 0;
     virtual void ToStream(std::ostringstream& theStr);
     virtual const char* GetComment() const;
+
+    SUIT_ViewWindow* GetViewWindow();
+    void             SetViewWindow(SUIT_ViewWindow* theViewWindow);
+
+  public:
+    QWidget *myWorkspace;
+
+    SalomeApp_Application *myApplication;
+    SUIT_ViewManager      *myViewManager;
+
+  private:
+    SUIT_ViewWindow *myViewWindow;
   };
 
 
@@ -118,9 +148,9 @@ namespace VISU
     virtual CORBA::Long GetMarkerSize();
 
     virtual void EnableXGrid (CORBA::Boolean theMajor, CORBA::Long theNumMajor,
-                             CORBA::Boolean theMinor, CORBA::Long theNumMinor);
+                              CORBA::Boolean theMinor, CORBA::Long theNumMinor);
     virtual void EnableYGrid (CORBA::Boolean theMajor, CORBA::Long theNumMajor,
-                             CORBA::Boolean theMinor, CORBA::Long theNumMinor);
+                              CORBA::Boolean theMinor, CORBA::Long theNumMinor);
 
     virtual void SetHorScaling (VISU::Scaling theScaling);
     virtual VISU::Scaling GetHorScaling();
@@ -142,6 +172,11 @@ namespace VISU
     virtual void Update();
 
     virtual void FitAll();
+    virtual void FitXRange(const CORBA::Double xMin,const CORBA::Double xMax);
+    virtual void FitYRange(const CORBA::Double yMin,const CORBA::Double yMax);
+    virtual void FitRange(const CORBA::Double xMin,const CORBA::Double xMax,
+                         const CORBA::Double yMin,const CORBA::Double yMax);
+    virtual void GetFitRanges(double& xMin, double& xMax, double& yMin, double& yMax);
 
     virtual void Close();
   protected:
@@ -190,10 +225,10 @@ namespace VISU
     virtual void SetTitle (const char* theTitle);
     virtual char* GetTitle();
 
-    static  void SetBackground (SUIT_ViewWindow* theStudyFrame,
+    static  void SetBackground (SUIT_ViewWindow* theViewWindow,
                                 const SALOMEDS::Color& theColor);
 
-    static  SALOMEDS::Color GetBackground (SUIT_ViewWindow* theStudyFrame);
+    static  SALOMEDS::Color GetBackground (SUIT_ViewWindow* theViewWindow);
 
     virtual void EraseAll();
     virtual void DisplayAll();
@@ -206,54 +241,54 @@ namespace VISU
     virtual void FitAll();
     virtual void SetView (VISU::View3D::ViewType theType);
 
-    static  void SetPointOfView (SUIT_ViewWindow* theStudyFrame,
-                                const CORBA::Double thePosition[3]);
+    static  void SetPointOfView (SUIT_ViewWindow* theViewWindow,
+                                 const CORBA::Double thePosition[3]);
     virtual void SetPointOfView (const VISU::View3D::XYZ theCoord);
 
-    static  void GetPointOfView (SUIT_ViewWindow* theStudyFrame,
-                                CORBA::Double thePosition[3]);
+    static  void GetPointOfView (SUIT_ViewWindow* theViewWindow,
+                                 CORBA::Double thePosition[3]);
     virtual VISU::View3D::XYZ_slice* GetPointOfView();
 
-    static  void SetViewUp (SUIT_ViewWindow* theStudyFrame,
-                           const CORBA::Double theViewUp[3]);
+    static  void SetViewUp (SUIT_ViewWindow* theViewWindow,
+                            const CORBA::Double theViewUp[3]);
     virtual void SetViewUp (const VISU::View3D::XYZ theDir);
 
-    static  void GetViewUp (SUIT_ViewWindow* theStudyFrame, CORBA::Double theViewUp[3]);
+    static  void GetViewUp (SUIT_ViewWindow* theViewWindow, CORBA::Double theViewUp[3]);
     virtual VISU::View3D::XYZ_slice* GetViewUp();
 
-    static  void SetFocalPoint (SUIT_ViewWindow* theStudyFrame, const CORBA::Double theFocalPnt[3]);
+    static  void SetFocalPoint (SUIT_ViewWindow* theViewWindow, const CORBA::Double theFocalPnt[3]);
     virtual void SetFocalPoint (const VISU::View3D::XYZ theCoord);
 
-    static  void View3D_i::GetFocalPoint (SUIT_ViewWindow* theStudyFrame, CORBA::Double theFocalPnt[3]);
+    static  void View3D_i::GetFocalPoint (SUIT_ViewWindow* theViewWindow, CORBA::Double theFocalPnt[3]);
     virtual VISU::View3D::XYZ_slice* GetFocalPoint();
 
-    static  void SetParallelScale (SUIT_ViewWindow* theStudyFrame, CORBA::Double theScale);
+    static  void SetParallelScale (SUIT_ViewWindow* theViewWindow, CORBA::Double theScale);
     virtual void SetParallelScale (CORBA::Double theScale);
 
-    static  CORBA::Double GetParallelScale (SUIT_ViewWindow* theStudyFrame);
+    static  CORBA::Double GetParallelScale (SUIT_ViewWindow* theViewWindow);
     virtual CORBA::Double GetParallelScale ();
 
-    static  void ScaleView (SUIT_ViewWindow* theStudyFrame,
-                           VISU::View3D::Axis theAxis, CORBA::Double theParam);
+    static  void ScaleView (SUIT_ViewWindow* theViewWindow,
+                            VISU::View3D::Axis theAxis, CORBA::Double theParam);
     virtual void ScaleView (VISU::View3D::Axis theAxis, CORBA::Double theParam);
     virtual void RemoveScale();
 
-    static std::string ToString (SUIT_ViewWindow* theStudyFrame);
+    static std::string ToString (SUIT_ViewWindow* theViewWindow);
 
-    static void ToStream (SUIT_ViewWindow* theStudyFrame, std::ostringstream& theStr);
+    static void ToStream (SUIT_ViewWindow* theViewWindow, std::ostringstream& theStr);
 
     static  bool           SaveViewParams (SUIT_ViewManager* theViewManager,
-                                          const char* theName);
+                                           const char* theName);
     virtual CORBA::Boolean SaveViewParams (const char* theName);
 
     static  bool           RestoreViewParams (SUIT_ViewManager* theViewManager,
-                                             const char* theName);
+                                              const char* theName);
     virtual CORBA::Boolean RestoreViewParams (const char* theName);
 
     static QString GenerateViewParamsName();
 
-    static  void Restore (SUIT_ViewWindow* theStudyFrame,
-                         const Storable::TRestoringMap& theMap);
+    static  void Restore (SUIT_ViewWindow* theViewWindow,
+                          const Storable::TRestoringMap& theMap);
 
     virtual void Close();