Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals

xbutton.cpp

Go to the documentation of this file.
00001 #include "SdlArs.h"
00002 
00003 namespace Ars
00004 {
00005 
00006 XButton::XButton( void )
00007 : m_MouseButton( 0 )
00008 {
00009 }
00010 
00011 XButton::~XButton( void )
00012 {
00013 }
00014 
00015 const bool XButton::SetupWindow( const Message &msg )
00016 {
00017         XLabel::SetupWindow( msg );
00018 
00019         MessageServer::Instance().RegisterMessageClient( this , Message::MOUSE_BUTTONDOWN );
00020         MessageServer::Instance().RegisterMessageClient( this , Message::MOUSE_BUTTONUP );
00021         MessageServer::Instance().RegisterMessageClient( this , Message::MOUSE_MOVE );
00022         
00023         return true;
00024 }
00025 
00026 const bool XButton::evMouseMove( const MouseMessage &msg )
00027 {
00028         bool ans = XLabel::evMouseMove( msg );
00029 
00030         if( FindWindow( &msg.Point ) == this )
00031                 ResetState( S_FOCUS );
00032         return ans;
00033 }
00034 
00035 const bool XButton::evMouseButtonDown( const MouseMessage &msg )
00036 {
00037         bool ans = XLabel::evMouseButtonDown( msg );
00038 
00039         if( (GetStates() & S_DISABLED)  == 0 )
00040                 if( (GetStates() & S_SELECTED) != S_SELECTED && FindWindow( &msg.Point ) == this )
00041                 {
00042                         ans = SetState( S_HIGHLIGHT|S_FOCUS|S_SELECTED );
00043                 }
00044 
00045         return ans;
00046 }
00047 
00048 const bool XButton::evMouseButtonUp( const MouseMessage &msg )
00049 {
00050         bool ans = XLabel::evMouseButtonUp( msg );
00051 
00052         if( (GetStates() & S_SELECTED) == S_SELECTED )
00053         {
00054                 SetState( S_HIGHLIGHT|S_FOCUS );
00055                 ans = ResetState( S_SELECTED ) || ans;
00056         }
00057         return ans;
00058 }
00059 
00060 }

Generated on Fri Dec 5 04:06:00 2003 for Borqueror by doxygen 1.3.3