+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
#ifndef NewGeom_SalomeViewer_H
#define NewGeom_SalomeViewer_H
#include "NewGeom.h"
#include <ModuleBase_IViewer.h>
+#include <ModuleBase_IViewWindow.h>
+
+#include <V3d_View.hxx>
class SUIT_ViewWindow;
class QMouseEvent;
class QKeyEvent;
class NewGeom_OCCSelector;
+class OCCViewer_Viewer;
+class SUIT_ViewManager;
+
+/**
+* A class for providing access of NewGeom functionality to
+* SALOME view window functionality
+*/
+class NewGeom_SalomeView: public ModuleBase_IViewWindow
+{
+public:
+ /// Constructor
+ /// \param theViewer a reference to a viewer
+ NewGeom_SalomeView(OCCViewer_Viewer* theViewer) { myViewer = theViewer; }
+
+ virtual Handle(V3d_View) v3dView() const;
+
+ void setViewer(OCCViewer_Viewer* theViewer) { myViewer = theViewer; }
+ OCCViewer_Viewer* viewer() const { return myViewer; }
+
+private:
+ /// A reference to a viewer
+ OCCViewer_Viewer* myViewer;
+};
+
+/**
+* A class for providing access of NewGeom functionality to
+* SALOME viewer functionality
+*/
class NewGeom_SalomeViewer : public ModuleBase_IViewer
{
Q_OBJECT
public:
+ /// Constructor
+ /// \param theParent a parent object
NewGeom_SalomeViewer(QObject* theParent);
+ ~NewGeom_SalomeViewer();
+
//! Returns AIS_InteractiveContext from current OCCViewer
virtual Handle(AIS_InteractiveContext) AISContext() const;
return mySelector;
}
+ /// Update current viewer
+ virtual void update();
+
+
private slots:
- // TODO: Provide ModuleBase_IViewWindow interface
- //void onMousePress(SUIT_ViewWindow*, QMouseEvent*);
- //void onMouseRelease(SUIT_ViewWindow*, QMouseEvent*);
- //void onMouseDoubleClick(SUIT_ViewWindow*, QMouseEvent*);
- //void onMouseMove(SUIT_ViewWindow*, QMouseEvent*);
- //void onKeyPress(SUIT_ViewWindow*, QKeyEvent*);
- //void onKeyRelease(SUIT_ViewWindow*, QKeyEvent*);
+ void onMousePress(SUIT_ViewWindow*, QMouseEvent*);
+ void onMouseRelease(SUIT_ViewWindow*, QMouseEvent*);
+ void onMouseDoubleClick(SUIT_ViewWindow*, QMouseEvent*);
+ void onMouseMove(SUIT_ViewWindow*, QMouseEvent*);
+ void onKeyPress(SUIT_ViewWindow*, QKeyEvent*);
+ void onKeyRelease(SUIT_ViewWindow*, QKeyEvent*);
+
+ void onTryCloseView(SUIT_ViewWindow*);
+ void onDeleteView(SUIT_ViewWindow*);
+ void onViewCreated(SUIT_ViewWindow*);
+ void onActivated(SUIT_ViewWindow*);
+
+ void onSelectionChanged();
private:
NewGeom_OCCSelector* mySelector;
-
+ NewGeom_SalomeView* myView;
+ bool myIsSelectionChanged;
};
+
#endif