/* GWEN Copyright (c) 2010 Facepunch Studios See license in Gwen.h */ #include "UnitTest.h" #include "Gwen/Platform.h" #include "Gwen/Controls/TreeControl.h" using namespace Gwen; #define ADD_UNIT_TEST( name )\ GUnit* RegisterUnitTest_##name( Gwen::Controls::TabControl* tab );\ RegisterUnitTest_##name( m_TabControl )->SetUnitTest( this ); GWEN_CONTROL_CONSTRUCTOR( UnitTest ) { SetTitle( L"GWEN Unit Test" ); SetSize( 600, 450 ); m_TabControl = new Controls::TabControl( this ); m_TabControl->Dock( Pos::Fill ); m_TabControl->SetMargin( Margin( 2, 2, 2, 2 ) ); m_TextOutput = new Controls::ListBox( this ); m_TextOutput->Dock( Pos::Bottom ); m_TextOutput->SetHeight( 100 ); ADD_UNIT_TEST( ImagePanel ); //ADD_UNIT_TEST( MenuStrip ); Gwen::UnicodeString str1(L"testje"); Gwen::Controls::TabButton* tab = m_TabControl->AddPage(str1); Gwen::Controls::TreeControl* ctrl=0; { ctrl = new Gwen::Controls::TreeControl(tab->GetPage()); ctrl->SetKeyboardInputEnabled(true); ctrl->AddNode( L"Node One" ); { Gwen::Controls::TreeNode* pNode = ctrl->AddNode( L"Node Two" ); pNode->AddNode( L"Node Two Inside" ); pNode->AddNode( L"Eyes" ); } { Gwen::Controls::TreeNode* pNode = ctrl->AddNode( L"Node Two" ); pNode->AddNode( L"Node Two Inside" ); pNode->AddNode( L"Eyes" ); } { Gwen::Controls::TreeNode* pNode = ctrl->AddNode( L"Node Two" ); pNode->AddNode( L"Node Two Inside" ); pNode->AddNode( L"Eyes" ); } { Gwen::Controls::TreeNode* pNode = ctrl->AddNode( L"Node Two" ); pNode->AddNode( L"Node Two Inside" ); pNode->AddNode( L"Eyes" ); } { Gwen::Controls::TreeNode* pNode = ctrl->AddNode( L"Node Two" ); pNode->AddNode( L"Node Two Inside" ); pNode->AddNode( L"Eyes" ); } { Gwen::Controls::TreeNode* pNode = ctrl->AddNode( L"Node Two" ); pNode->AddNode( L"Node Two Inside" ); pNode->AddNode( L"Eyes" ); pNode->SetSelected(true); pNode->AddNode( L"Brown" )->AddNode( L"Node Two Inside" )->AddNode( L"Eyes" )->AddNode( L"Brown" ); } ctrl->AddNode( L"Node Three" ); ctrl->Focus(); ctrl->SetKeyboardInputEnabled(true); ctrl->SetBounds( 30, 30, 200, 30+16*10 ); //ctrl->ExpandAll(); ctrl->ForceUpdateScrollBars(); ctrl->OnKeyDown(true); } //GUnit* u = new TreeControl2(m_TabControl);..Gwen::Controls::TreeControl2( m_TabControl ); //GUnit* RegisterUnitTest_TreeControl2( Gwen::Controls::TabControl* tab );\ //RegisterUnitTest_TreeControl2( m_TabControl )->SetUnitTest( this ); //#define DEFINE_UNIT_TEST( name, displayname ) //GUnit* RegisterUnitTest_TreeControl2( Gwen::Controls::TabControl* tab ) //{ // GUnit* u = new TreeControl2( tab ); // tab->AddPage( displayname, u ); // return u; //} //ADD_UNIT_TEST( TreeControl2 ); ADD_UNIT_TEST( Properties2 ); ADD_UNIT_TEST( TabControl2 ); ADD_UNIT_TEST( ScrollControl ); ADD_UNIT_TEST( MenuStrip ); ADD_UNIT_TEST( Numeric ); ADD_UNIT_TEST( ComboBox ); ADD_UNIT_TEST( TextBox ); ADD_UNIT_TEST( ListBox ); ADD_UNIT_TEST( Slider ); ADD_UNIT_TEST( ProgressBar ); ADD_UNIT_TEST( RadioButton2 ); ADD_UNIT_TEST( Label ); ADD_UNIT_TEST( Checkbox ); ADD_UNIT_TEST( Button ); ADD_UNIT_TEST( CrossSplitter ); ADD_UNIT_TEST( PanelListPanel ); ADD_UNIT_TEST( GroupBox2 ); ADD_UNIT_TEST( StatusBar ); ctrl->Focus(); PrintText( L"Unit Test Started.\n" ); m_fLastSecond = Gwen::Platform::GetTimeInSeconds(); m_iFrames = 0; } void UnitTest::PrintText( const Gwen::UnicodeString& str ) { m_TextOutput->AddItem( str ); m_TextOutput->Scroller()->ScrollToBottom(); } void UnitTest::Render( Gwen::Skin::Base* skin ) { m_iFrames++; if ( m_fLastSecond < Gwen::Platform::GetTimeInSeconds() ) { SetTitle( Gwen::Utility::Format( L"GWEN Unit Test - %i fps", m_iFrames ) ); m_fLastSecond = Gwen::Platform::GetTimeInSeconds() + 1.0f; m_iFrames = 0; } BaseClass::Render( skin ); } void GUnit::UnitPrint( const Gwen::UnicodeString& str ) { m_pUnitTest->PrintText( str ); } void GUnit::UnitPrint( const Gwen::String& str ) { UnitPrint( Utility::StringToUnicode( str ) ); }