BIE |
/home/weinberg/src/BIE/include/vtkGtkRenderWindowInteractor.h00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile$ 00005 Language: C++ 00006 Date: $Date: 2006-01-13 19:45:37 -0500 (Fri, 13 Jan 2006) $ 00007 Version: $Revision: 1527 $ 00008 00009 Based on wvXRenderWindowInteractor and wxVTKRenderWindowInteractor. 00010 00011 Copyright (c) 2004 Dov Grobgeld <dov.grobgeld@weizmann.ac.il> 00012 00013 Based on code copyright by: Ken Martin, Will Schroeder, Bill Lorensen 00014 00015 All rights reserved. 00016 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00017 00018 This software is distributed WITHOUT ANY WARRANTY; without even 00019 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00020 PURPOSE. See the above copyright notice for more information. 00021 00022 =========================================================================*/ 00023 #ifndef __vtkGtkRenderWindowInteractor_h 00024 #define __vtkGtkRenderWindowInteractor_h 00025 00026 //=========================================================== 00027 // now we define the C++ class 00028 00029 #include <vtk/vtkRenderWindowInteractor.h> 00030 #include <vtk/vtkRenderWindow.h> 00031 #include <gtk/gtk.h> 00032 00034 class VTK_RENDERING_EXPORT vtkGtkRenderWindowInteractor : public vtkRenderWindowInteractor 00035 { 00036 public: 00038 vtkGtkRenderWindowInteractor(); 00039 00041 ~vtkGtkRenderWindowInteractor(); 00042 00044 static vtkGtkRenderWindowInteractor *New(); 00045 00047 00048 void Initialize(); 00049 void Enable(); 00050 void Disable(); 00051 void Start(); 00052 void UpdateSize(int x, int y); 00053 int CreateTimer(int timertype); 00054 int DestroyTimer(); 00055 void TerminateApp() {}; 00056 void Render(); 00058 00060 GtkWidget *get_drawing_area() { return drawing_area; } 00061 00062 // Make all callback friends 00064 friend void cb_realize (GtkWidget*, gpointer user_data); 00065 friend gboolean cb_configure (GtkWidget *widget, 00066 GdkEventConfigure *event, 00067 gpointer user_data); 00068 friend gboolean cb_expose (GtkWidget *widget, 00069 GdkEventExpose *event, 00070 gpointer user_data); 00071 friend gboolean cb_key_press_event(GtkWidget *widget, 00072 GdkEventKey *event, 00073 gpointer user_data); 00074 friend gboolean cb_key_release_event(GtkWidget *widget, 00075 GdkEventKey *event, 00076 gpointer user_data); 00077 friend gboolean cb_button_press_event(GtkWidget *widget, 00078 GdkEventButton *event, 00079 gpointer user_data); 00080 friend gboolean cb_button_release_event(GtkWidget *widget, 00081 GdkEventButton *event, 00082 gpointer user_data); 00083 friend gboolean cb_motion_notify_event(GtkWidget *widget, 00084 GdkEventMotion *event, 00085 gpointer user_data); 00087 00089 friend gboolean vtkGtkRenderWindowInteractorTimer(gpointer user_data); 00090 00091 protected: 00092 int ActiveButton; 00093 int RenderAllowed; 00094 long GetHandle(); 00095 int Stereo; 00096 00097 private: 00098 long Handle; 00099 bool Created; 00100 int RenderWhenDisabled; 00101 int UseCaptureMouse; 00102 GtkWidget *drawing_area; 00103 gint last_xpos, last_ypos, last_key_state; 00104 00105 // Flag used to break timer loop 00106 bool do_break_timer; 00107 00108 void update_mouse_pos(); 00109 }; 00110 00111 #endif 00112 00113 00114 Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:11 2010 by
|