Salome HOME
Merge branch 'Dev_0.6.1' of newgeom:newgeom.git into Dev_0.6.1
[modules/shaper.git] / src / ModuleBase / ModuleBase_IViewer.h
index 6858fbefc099ee1e140d62cf06b200cbbd828ac6..33205b817d06bb8b814e88b4c0256b0d0ff8a2bb 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #ifndef ModuleBase_IViewer_H
 #define ModuleBase_IViewer_H
 
@@ -9,6 +11,7 @@
 class QMouseEvent;
 class QKeyEvent;
 class QContextMenuEvent;
+class ModuleBase_IViewWindow;
 
 /**
  * A Base object for definition of connector object to
@@ -53,19 +56,32 @@ Q_OBJECT
   /// \param theZ the Z projection value
   virtual void setViewProjection(double theX, double theY, double theZ) = 0;
 
+  /// Add selection filter to the viewer
+  virtual void addSelectionFilter(const Handle(SelectMgr_Filter)& theFilter) = 0;
+
+  /// Remove selection filter from the viewer
+  virtual void removeSelectionFilter(const Handle(SelectMgr_Filter)& theFilter) = 0;
+
+  /// Remove all selection filters from the viewer
+  virtual void clearSelectionFilters() = 0;
+
+  /// Update current viewer
+  virtual void update() = 0;
 
 signals:
   void lastViewClosed();
-  void tryCloseView();
-  void deleteView();
-  void viewCreated();
-  void mousePress(QMouseEvent* theEvent);
-  void mouseRelease(QMouseEvent* theEvent);
-  void mouseDoubleClick(QMouseEvent* theEvent);
-  void mouseMove(QMouseEvent* theEvent);
-  void keyPress(QKeyEvent* theEvent);
-  void keyRelease(QKeyEvent* theEvent);
-  void activated();
+  void tryCloseView(ModuleBase_IViewWindow* theWnd);
+  void deleteView(ModuleBase_IViewWindow* theWnd);
+  void viewCreated(ModuleBase_IViewWindow* theWnd);
+  void activated(ModuleBase_IViewWindow* theWnd);
+
+  void mousePress(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent);
+  void mouseRelease(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent);
+  void mouseDoubleClick(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent);
+  void mouseMove(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent);
+
+  void keyPress(ModuleBase_IViewWindow* theWnd, QKeyEvent* theEvent);
+  void keyRelease(ModuleBase_IViewWindow* theWnd, QKeyEvent* theEvent);
 
   void selectionChanged();
   void contextMenuRequested(QContextMenuEvent*);