Blender V2.61 - r43446

GlutMouseManager.h

Go to the documentation of this file.
00001 
00028 #ifndef NAN_INCLUDED_GlutMouseManager_h
00029 #define NAN_INCLUDED_GlutMouseManager_h
00030 
00031 #include "MEM_NonCopyable.h"
00032 #include "MEM_SmartPtr.h"
00033 #include "GHOST_Types.h"
00034 
00035 class GHOST_IWindow;
00036 
00037 class GlutMouseHandler {
00038 public :
00039 
00040     virtual     
00041         void
00042     ButtonUp(
00043         GHOST_IWindow * window,
00044         GHOST_TButtonMask button_mask,
00045         int x,
00046         int y
00047     ) = 0;
00048 
00049     virtual     
00050         void
00051     ButtonDown(
00052         GHOST_IWindow * window,
00053         GHOST_TButtonMask button_mask,
00054         int x,
00055         int y
00056     ) = 0;
00057 
00058 
00059     virtual
00060         void
00061     Motion(
00062         GHOST_IWindow * window,
00063         int x,
00064         int y
00065     ) = 0;
00066 
00067     virtual 
00068     ~GlutMouseHandler(
00069     ){};        
00070 };
00071 
00072 class GlutMouseManager : public MEM_NonCopyable{
00073 
00074 public :
00075 
00076     static
00077         GlutMouseManager *
00078     Instance(
00079     );
00080 
00081     static
00082         void
00083     ButtonUp(
00084         GHOST_IWindow * window,
00085         GHOST_TButtonMask button_mask,
00086         int x,
00087         int y
00088     );
00089 
00090     static
00091         void
00092     ButtonDown(
00093         GHOST_IWindow * window,
00094         GHOST_TButtonMask button_mask,
00095         int x,
00096         int y
00097     );
00098 
00099     static
00100         void
00101     Motion(
00102         GHOST_IWindow * window,
00103         int x,
00104         int y
00105     );
00106 
00107         void
00108     InstallHandler(
00109         GlutMouseHandler *
00110     );
00111 
00112         void
00113     ReleaseHandler(
00114     );
00115 
00116     ~GlutMouseManager(
00117     );
00118 
00119 private :
00120 
00121     GlutMouseManager (
00122     ) :
00123         m_handler (0)
00124     {
00125     };
00126     
00127     GlutMouseHandler * m_handler;
00128 
00129     static MEM_SmartPtr<GlutMouseManager> m_s_instance;
00130 };  
00131 
00132 
00133 #endif
00134