00001 #include "SdlArs.h"
00002
00003 namespace Ars
00004 {
00005
00006 XGroupBox::XGroupBox( void )
00007 {
00008 }
00009
00010 XGroupBox::~XGroupBox( void )
00011 {
00012 }
00013
00014
00015 void XGroupBox::Draw( void )
00016 {
00017 XRect w( GetWindowRect() );
00018
00019 w.y += GetFontSize() / 2;
00020
00021 if( GetStates() & S_RAISED )
00022 {
00023 DrawRaised( w , GetBgColor() );
00024 w.Grow( -2 );
00025 DrawSunken( w , GetBgColor() );
00026 w.Grow( 2 );
00027 }
00028 else if( GetStates() & S_SUNKEN )
00029 {
00030 DrawSunken( w , GetBgColor() );
00031 w.Grow( -2 );
00032 DrawRaised( w , GetBgColor() );
00033 w.Grow( 2 );
00034 }
00035
00036 const unsigned long stateBak = GetStates();
00037 ResetState( VALIGN_MASK|HALIGN_MASK );
00038 SetState( S_ALIGN_LEFT|S_ALIGN_TOP );
00039 w.y -= GetFontSize() / 2;
00040 w.x += GetFontSize() / 2;
00041 XPoint sz;
00042 GetMetrics( GetWindowText() , &sz , 0 , 0 );
00043 w.w = sz.x;
00044 w.h = sz.y;
00045
00046 EPaintMode prev = SetMode( PAINT_REPLACE );
00047
00048 DrawRect( w , true , GetBgColor() , GetBgColor() );
00049 TextOutStr( w , GetWindowText() , GetFgColor() );
00050 SetState( stateBak );
00051
00052 SetMode( prev );
00053 }
00054
00055 }