X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FNewGeom%2FNewGeom_SalomeViewer.h;h=0377ce7e06d17ed86a351dc1cd22a6b271d40b8e;hb=67a7fe404a60e872f2012cfd0e9a621b99d9883a;hp=c0d1ec6ce7008a2a24c40396520ad68ede17f7d3;hpb=976244bad37e04fcebaf8866d7d7a02efd2b7d35;p=modules%2Fshaper.git diff --git a/src/NewGeom/NewGeom_SalomeViewer.h b/src/NewGeom/NewGeom_SalomeViewer.h index c0d1ec6ce..0377ce7e0 100644 --- a/src/NewGeom/NewGeom_SalomeViewer.h +++ b/src/NewGeom/NewGeom_SalomeViewer.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + #ifndef NewGeom_SalomeViewer_H #define NewGeom_SalomeViewer_H @@ -5,19 +7,54 @@ #include "NewGeom.h" #include +#include + +#include 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; @@ -64,18 +101,30 @@ Q_OBJECT 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