00001
00002 #include "MouseEvent.h"
00003 #include "MouseInterface.h"
00004
00005 namespace RenderTools{
00006
00007 MouseEvent::MouseEvent( Type type, const Vec2 & location, int button ):
00008 m_type( type ),
00009 m_button( button ),
00010 m_state( type == MOUSE_DOWN ),
00011 m_location( location ){
00012
00013 switch( m_type ){
00014 case MOUSE_UP:
00015 switch( m_button ){
00016 case 0:
00017 MouseInterface::s_leftButton = false;
00018 break;
00019 case 1:
00020 MouseInterface::s_middleButton = false;
00021 break;
00022 case 2:
00023 MouseInterface::s_rightButton = false;
00024 break;
00025 }
00026 break;
00027 case MOUSE_DOWN:
00028 switch( m_button ){
00029 case 0:
00030 MouseInterface::s_leftButton = true;
00031 break;
00032 case 1:
00033 MouseInterface::s_middleButton = true;
00034 break;
00035 case 2:
00036 MouseInterface::s_rightButton = true;
00037 break;
00038 }
00039 break;
00040 case MOUSE_MOVE:
00041 MouseInterface::s_mouseBefore = MouseInterface::s_mouseNow;
00042 MouseInterface::s_mouseNow = m_location;
00043 break;
00044 }
00045 }
00046
00047 MouseEvent::Type MouseEvent::getType( void ) const {
00048 return( m_type );
00049 }
00050
00051 int MouseEvent::getButton( void ) const {
00052 return( m_button );
00053 }
00054
00055 bool MouseEvent::getState( void ) const {
00056 return( m_state );
00057 }
00058
00059 const Vec2 & MouseEvent::getLocation( void ) const{
00060 return( m_location );
00061 }
00062
00063 };
00064
00065