#include "UnitTest.h" #include "Gwen/Controls/CrossSplitter.h" #include "Gwen/Controls/StatusBar.h" #include "Gwen/Controls/Button.h" using namespace Gwen; class CrossSplitter : public GUnit { public: GWEN_CONTROL_INLINE( CrossSplitter, GUnit ) { m_bSplittersVisible = false; m_iCurZoom = 0; m_Splitter = new Gwen::Controls::CrossSplitter( this ); m_Splitter->SetPos(0, 0); m_Splitter->Dock( Pos::Fill ); { Gwen::Controls::Button* testButton = new Gwen::Controls::Button( m_Splitter ); testButton->SetText( "TOPLEFT"); m_Splitter->SetPanel( 0, testButton ); } { Gwen::Controls::Button* testButton = new Gwen::Controls::Button( m_Splitter ); testButton->SetText( "TOPRIGHT"); m_Splitter->SetPanel( 1, testButton ); } { Gwen::Controls::Button* testButton = new Gwen::Controls::Button( m_Splitter ); testButton->SetText( "BOTTOMRIGHT"); m_Splitter->SetPanel( 2, testButton ); } { Gwen::Controls::Button* testButton = new Gwen::Controls::Button( m_Splitter ); testButton->SetText( "BOTTOMLEFT"); m_Splitter->SetPanel( 3, testButton ); } //Status bar to hold unit testing buttons Gwen::Controls::StatusBar* pStatus = new Gwen::Controls::StatusBar( this ); pStatus->Dock( Pos::Bottom ); { Gwen::Controls::Button* pButton = new Gwen::Controls::Button( pStatus ); pButton->SetText( "Zoom" ); pButton->onPress.Add( this, &CrossSplitter::ZoomTest ); pStatus->AddControl( pButton, false ); } { Gwen::Controls::Button* pButton = new Gwen::Controls::Button( pStatus ); pButton->SetText( "UnZoom" ); pButton->onPress.Add( this, &CrossSplitter::UnZoomTest ); pStatus->AddControl( pButton, false ); } { Gwen::Controls::Button* pButton = new Gwen::Controls::Button( pStatus ); pButton->SetText( "CenterPanels" ); pButton->onPress.Add( this, &CrossSplitter::CenterPanels ); pStatus->AddControl( pButton, true ); } { Gwen::Controls::Button* pButton = new Gwen::Controls::Button( pStatus ); pButton->SetText( "Splitters" ); pButton->onPress.Add( this, &CrossSplitter::ToggleSplitters ); pStatus->AddControl( pButton, true ); } } void ZoomTest( Gwen::Controls::Base* pFromPanel ) { m_Splitter->Zoom(m_iCurZoom); m_iCurZoom++; if (m_iCurZoom == 4) m_iCurZoom = 0; } void UnZoomTest( Gwen::Controls::Base* pFromPanel ) { m_Splitter->UnZoom(); } void CenterPanels( Gwen::Controls::Base* pFromPanel ) { m_Splitter->CenterPanels(); m_Splitter->UnZoom(); } void ToggleSplitters( Gwen::Controls::Base* pFromPanel ) { m_Splitter->SetSplittersVisible( !m_bSplittersVisible ); m_bSplittersVisible = !m_bSplittersVisible; } bool m_bSplittersVisible; int m_iCurZoom; Controls::CrossSplitter* m_Splitter; }; DEFINE_UNIT_TEST( CrossSplitter, L"CrossSplitter" );