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 
00034 class GlutMouseHandler {
00035 public :
00036 
00037     virtual     
00038         void
00039     Mouse(
00040         int button,
00041         int state,
00042         int x,
00043         int y
00044     ) = 0;
00045 
00046     virtual
00047         void
00048     Motion(
00049         int x,
00050         int y
00051     ) = 0;
00052 
00053     virtual 
00054     ~GlutMouseHandler(
00055     ){};        
00056 };
00057 
00058 class GlutMouseManager : public MEM_NonCopyable{
00059 
00060 public :
00061 
00062     static
00063         GlutMouseManager *
00064     Instance(
00065     );
00066 
00067     // these are the functions you should pass to GLUT  
00068 
00069     static
00070         void
00071     Mouse(
00072         int button,
00073         int state,
00074         int x,
00075         int y
00076     );
00077 
00078     static
00079         void
00080     Motion(
00081         int x,
00082         int y
00083     );
00084 
00085         void
00086     InstallHandler(
00087         GlutMouseHandler *
00088     );
00089 
00090         void
00091     ReleaseHandler(
00092     );
00093 
00094     ~GlutMouseManager(
00095     );
00096 
00097 private :
00098 
00099     GlutMouseManager (
00100     ) :
00101         m_handler (0)
00102     {
00103     };
00104     
00105     GlutMouseHandler * m_handler;
00106 
00107     static MEM_SmartPtr<GlutMouseManager> m_s_instance;
00108 };  
00109 
00110 #endif
00111