Blender  V2.59
GlutMouseManager.cpp
Go to the documentation of this file.
00001 
00029 #include "GlutMouseManager.h"
00030 #include "MT_assert.h"
00031 
00032 MEM_SmartPtr<GlutMouseManager> GlutMouseManager::m_s_instance = MEM_SmartPtr<GlutMouseManager>();
00033 
00034 
00035         GlutMouseManager *
00036 GlutMouseManager::
00037 Instance(
00038 ){
00039         if (m_s_instance == NULL) {
00040                 m_s_instance = new GlutMouseManager();
00041         }
00042 
00043         return m_s_instance;
00044 }       
00045 
00046 // these are the functions you should pass to GLUT      
00047 
00048         void
00049 GlutMouseManager::
00050 Mouse(
00051         int button,
00052         int state,
00053         int x,
00054         int y
00055 ){
00056         GlutMouseManager *manager = GlutMouseManager::Instance();
00057 
00058         if (manager->m_handler != NULL) {
00059                 manager->m_handler->Mouse(button,state,x,y);
00060         }
00061 }
00062 
00063         void
00064 GlutMouseManager::
00065 Motion(
00066         int x,
00067         int y
00068 ){
00069         GlutMouseManager *manager = GlutMouseManager::Instance();
00070 
00071         if (manager->m_handler != NULL) {
00072                 manager->m_handler->Motion(x,y);
00073         }
00074 }
00075 
00076         void
00077 GlutMouseManager::
00078 InstallHandler(
00079         GlutMouseHandler *handler
00080 ){
00081 
00082         MT_assert(m_handler == NULL);
00083         m_handler = handler;
00084 }
00085 
00086         void
00087 GlutMouseManager::
00088 ReleaseHandler(
00089 ){
00090         m_handler = NULL;
00091 }
00092 
00093 GlutMouseManager::
00094 ~GlutMouseManager(
00095 ){
00096 
00097         delete(m_handler);
00098 }
00099 
00100