Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Rendering/vtkInteractorStyleUser.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkInteractorStyleUser.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00016 
00055 #ifndef __vtkInteractorStyleUser_h
00056 #define __vtkInteractorStyleUser_h
00057 
00058 #include "vtkInteractorStyle.h"
00059 
00060 // new motion flag
00061 #define VTKIS_USERINTERACTION 8 
00062 
00063 class VTK_RENDERING_EXPORT vtkInteractorStyleUser : public vtkInteractorStyle 
00064 {
00065 public:
00066   static vtkInteractorStyleUser *New();
00067   vtkTypeRevisionMacro(vtkInteractorStyleUser,vtkInteractorStyle);
00068   void PrintSelf(ostream& os, vtkIndent indent);
00069   
00070 #ifndef VTK_REMOVE_LEGACY_CODE
00071 
00072 
00073   void SetMouseMoveMethod(void (*f)(void *), void *arg);
00074   void SetMouseMoveMethodArgDelete(void (*f)(void *));
00075   void SetButtonPressMethod(void (*f)(void *), void *arg);
00076   void SetButtonPressMethodArgDelete(void (*f)(void *));
00077   void SetButtonReleaseMethod(void (*f)(void *), void *arg);
00078   void SetButtonReleaseMethodArgDelete(void (*f)(void *));
00079   void SetKeyPressMethod(void (*f)(void *), void *arg);
00080   void SetKeyPressMethodArgDelete(void (*f)(void *));
00081   void SetKeyReleaseMethod(void (*f)(void *), void *arg);
00082   void SetKeyReleaseMethodArgDelete(void (*f)(void *));
00083   void SetCharMethod(void (*f)(void *), void *arg);
00084   void SetCharMethodArgDelete(void (*f)(void *));
00085   void SetConfigureMethod(void (*f)(void *), void *arg);
00086   void SetConfigureMethodArgDelete(void (*f)(void *));
00087   void SetExposeMethod(void (*f)(void *), void *arg);
00088   void SetExposeMethodArgDelete(void (*f)(void *));
00089   void SetEnterMethod(void (*f)(void *), void *arg);
00090   void SetEnterMethodArgDelete(void (*f)(void *));
00091   void SetLeaveMethod(void (*f)(void *), void *arg);
00092   void SetLeaveMethodArgDelete(void (*f)(void *));
00093   void SetTimerMethod(void (*f)(void *), void *arg);
00094   void SetTimerMethodArgDelete(void (*f)(void *));
00095   void SetUserInteractionMethod(void (*f)(void *), void *arg);
00096   void SetUserInteractionMethodArgDelete(void (*f)(void *));
00097   void StartUserInteraction();
00098   void EndUserInteraction();
00100 #endif
00101   
00103 
00107   vtkGetVector2Macro(LastPos,int);
00109 
00111 
00114   vtkGetVector2Macro(OldPos,int);
00116 
00118 
00120   vtkGetMacro(ShiftKey,int);
00121   vtkGetMacro(CtrlKey,int);
00123 
00125 
00126   vtkGetMacro(Char,int);
00128 
00130 
00132   vtkGetStringMacro(KeySym);
00134 
00136 
00138   vtkGetMacro(Button,int);
00140 
00142 
00143   virtual void OnMouseMove();
00144   virtual void OnLeftButtonDown();
00145   virtual void OnLeftButtonUp();
00146   virtual void OnMiddleButtonDown();
00147   virtual void OnMiddleButtonUp();
00148   virtual void OnRightButtonDown();
00149   virtual void OnRightButtonUp();
00151 
00153 
00154   virtual void OnChar();
00155   virtual void OnKeyPress();
00156   virtual void OnKeyRelease();
00158 
00160 
00161   virtual void OnExpose();
00162   virtual void OnConfigure();
00163   virtual void OnEnter();
00164   virtual void OnLeave();
00166 
00167   virtual void OnTimer();
00168 
00169 protected:
00170 
00171   vtkInteractorStyleUser();
00172   ~vtkInteractorStyleUser();
00173 
00174   int LastPos[2];
00175   int OldPos[2];
00176 
00177   int ShiftKey;
00178   int CtrlKey;
00179   int Char;
00180   char *KeySym;
00181   int Button;
00182 
00183   unsigned long MouseMoveTag;
00184   unsigned long KeyPressTag;
00185   unsigned long KeyReleaseTag;
00186   unsigned long CharTag;
00187   unsigned long EnterTag;
00188   unsigned long LeaveTag;
00189   unsigned long ExposeTag;
00190   unsigned long ConfigureTag;
00191   unsigned long TimerTag;
00192   unsigned long UserTag;
00193 
00194 #ifndef VTK_REMOVE_LEGACY_CODE
00195   void vtkSetOldCallback(unsigned long &tag, unsigned long event, 
00196                          void (*f)(void *), void *arg);
00197   void vtkSetOldDelete(unsigned long tag, void (*f)(void *));
00198 #endif
00199 private:
00200   vtkInteractorStyleUser(const vtkInteractorStyleUser&);  // Not implemented.
00201   void operator=(const vtkInteractorStyleUser&);  // Not implemented.
00202 };
00203 
00204 #endif