/*
-# ---------------------------------------------------------------------
-#
-# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
-# pour la Santé)
-# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
-# Previous Authors : Laurent Guigues, Jean-Pierre Roux
-# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
-#
-# This software is governed by the CeCILL-B license under French law and
-# abiding by the rules of distribution of free software. You can use,
-# modify and/ or redistribute the software under the terms of the CeCILL-B
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-# or in the file LICENSE.txt.
-#
-# As a counterpart to the access to the source code and rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty and the software's author, the holder of the
-# economic rights, and the successive licensors have only limited
-# liability.
-#
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL-B license and that you accept its terms.
-# ------------------------------------------------------------------------
-*/
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ # pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ # This software is governed by the CeCILL-B license under French law and
+ # abiding by the rules of distribution of free software. You can use,
+ # modify and/ or redistribute the software under the terms of the CeCILL-B
+ # license as circulated by CEA, CNRS and INRIA at the following URL
+ # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ # or in the file LICENSE.txt.
+ #
+ # As a counterpart to the access to the source code and rights to copy,
+ # modify and redistribute granted by the license, users are provided only
+ # with a limited warranty and the software's author, the holder of the
+ # economic rights, and the successive licensors have only limited
+ # liability.
+ #
+ # The fact that you are presently reading this means that you have had
+ # knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+
/*=========================================================================
Program: Visualization Toolkit
- Module: $RCSfile: creawxVTKRenderWindowInteractor.h,v $
+ Module: $RCSfile$
Language: C++
- Date: $Date: 2012/11/15 10:43:26 $
- Version: $Revision: 1.9 $
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
+ All rights reserved.
+ See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notice for more information.
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notice for more information.
=========================================================================*/
-// .NAME creawxVTKRenderWindowInteractor - class to enable VTK to render to
+// .NAME wxVTKRenderWindowInteractor - class to enable VTK to render to
// and interact with wxWindow.
// .SECTION Description
-// creawxVTKRenderWindowInteractor provide a VTK widget for wxWindow. This class
+// wxVTKRenderWindowInteractor provide a VTK widget for wxWindow. This class
// was completely rewrote to have the 'Look & Feel' of the python version:
-// creawxVTKRenderWindowInteractor.py
+// wxVTKRenderWindowInteractor.py
// .SECTION Caveats
// - There is a know bug that prevent this class to works for more info see
// WX_USE_X_CAPTURE. This bug only affect wxGTK from 2.3.2 to wxGTK 2.4.0.
// - This class might not be easily readable as it tried to work with VTK 3.2
// and 4.x. This class doesn't support reparenting with VTK 4.2 and earlier.
// .SECTION see also
-// creawxVTKRenderWindowInteractor.py wxVTKRenderWindow.py
-
-#ifndef _creawxVTKRenderWindowInteractor_h_
-#define _creawxVTKRenderWindowInteractor_h_
+// wxVTKRenderWindowInteractor.py wxVTKRenderWindow.py
-#ifdef USE_WXWIDGETS
-#ifdef USE_VTK
-
-#include <creaSystem.h>
-#include <creaWx.h>
+#ifndef _wxVTKRenderWindowInteractor_h_
+#define _wxVTKRenderWindowInteractor_h_
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderWindow.h"
-// Apparently since wxGTK 2.8.0 one can finally use wxWindow (just as in any
-// other port):
-// MM: tested on 2008/04/08: experienced some heavy flickering with wx-widget 2.6.0
-// using a wxWindow instead of wxGLCanvas fixed the symptoms
-//#if (!wxCHECK_VERSION(2, 6, 0))
-#if (!wxCHECK_VERSION(2, 8, 0))
#define USE_WXGLCANVAS
-#endif
#if defined(__WXGTK__) && defined(USE_WXGLCANVAS)
# if wxUSE_GLCANVAS
// Motif version (renamed into wxX11 for wxWindow 2.4 and newer)
#if defined(__WXMOTIF__)
-# error This GUI is not supported by creawxVTKRenderWindowInteractor for now
+# error This GUI is not supported by wxVTKRenderWindowInteractor for now
#endif
+#include "creaSystem.h"
+
+
// wx forward declarations
class wxPaintEvent;
class wxMouseEvent;
#if defined(__WXGTK__) && defined(USE_WXGLCANVAS)
-class CREA_EXPORT creawxVTKRenderWindowInteractor : public wxGLCanvas, virtual public vtkRenderWindowInteractor
+class wxVTKRenderWindowInteractor : public wxGLCanvas, public vtkRenderWindowInteractor
#else
-class CREA_EXPORT creawxVTKRenderWindowInteractor : virtual public vtkRenderWindowInteractor, public wxWindow
+class CREA_EXPORT wxVTKRenderWindowInteractor : public wxWindow, public vtkRenderWindowInteractor
#endif //__WXGTK__
{
- DECLARE_DYNAMIC_CLASS(creawxVTKRenderWindowInteractor)
+//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
+#if wxMAJOR_VERSION <= 2
+ DECLARE_DYNAMIC_CLASS(wxVTKRenderWindowInteractor)
+#else
+ wxDECLARE_DYNAMIC_CLASS(wxVTKRenderWindowInteractor);
+#endif
public:
//constructors
- creawxVTKRenderWindowInteractor();
+ wxVTKRenderWindowInteractor();
- creawxVTKRenderWindowInteractor(wxWindow *parent,
+ wxVTKRenderWindowInteractor(wxWindow *parent,
wxWindowID id,
const wxPoint &pos = wxDefaultPosition,
const wxSize &size = wxDefaultSize,
long style = wxWANTS_CHARS | wxNO_FULL_REPAINT_ON_RESIZE,
const wxString &name = wxPanelNameStr);
- //EED win Compilation why ??: vtkTypeRevisionMacro(creawxVTKRenderWindowInteractor,vtkRenderWindowInteractor);
- static creawxVTKRenderWindowInteractor * New();
+ //EED win Compilation why ??: vtkTypeRevisionMacro(wxVTKRenderWindowInteractor,vtkRenderWindowInteractor);
+ static wxVTKRenderWindowInteractor * New();
void PrintSelf(ostream& os, vtkIndent indent);
//destructor
- ~creawxVTKRenderWindowInteractor();
+ ~wxVTKRenderWindowInteractor();
// vtkRenderWindowInteractor overrides
void Initialize();
#if !(VTK_MAJOR_VERSION == 3 && VTK_MINOR_VERSION == 1)
void OnEnter(wxMouseEvent &event);
void OnLeave(wxMouseEvent &event);
+ void OnMouseWheel(wxMouseEvent& event);
+#if wxCHECK_VERSION(2, 8, 0)
+ void OnMouseCaptureLost(wxMouseCaptureLostEvent& event);
+#endif
void OnKeyDown(wxKeyEvent &event);
void OnKeyUp(wxKeyEvent &event);
void OnChar(wxKeyEvent &event);
#endif
void OnTimer(wxTimerEvent &event);
void OnSize(wxSizeEvent &event);
- void OnMouseWheel(wxMouseEvent& event);
void Render();
void SetRenderWhenDisabled(int newValue);
vtkSetMacro(UseCaptureMouse,int);
vtkBooleanMacro(UseCaptureMouse,int);
+#if VTK_MAJOR_VERSION > 5 || (VTK_MAJOR_VERSION == 5 && VTK_MINOR_VERSION >= 2)
+ protected:
+ virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration);
+ virtual int InternalDestroyTimer(int platformTimerId);
+#endif
+
protected:
+#if defined(__WXGTK__) && defined(USE_WXGLCANVAS)
+ wxGLContext *context;
+#endif
wxTimer timer;
int ActiveButton;
- int RenderAllowed;
long GetHandleHack();
int Stereo;
DECLARE_EVENT_TABLE()
};
-
}
-// LG : EO namespace crea
+// LG : EO namespace bbwxvtk
//======================================================================
-#endif // USE_WX
-#endif // USE_VTK
-
-
-#endif //_creawxVTKRenderWindowInteractor_h_
+#endif //_wxVTKRenderWindowInteractor_h_