CrossSplitter.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #include "UnitTest.h"
  2. #include "Gwen/Controls/CrossSplitter.h"
  3. #include "Gwen/Controls/StatusBar.h"
  4. #include "Gwen/Controls/Button.h"
  5. using namespace Gwen;
  6. class CrossSplitter : public GUnit
  7. {
  8. public:
  9. GWEN_CONTROL_INLINE( CrossSplitter, GUnit )
  10. {
  11. m_bSplittersVisible = false;
  12. m_iCurZoom = 0;
  13. m_Splitter = new Gwen::Controls::CrossSplitter( this );
  14. m_Splitter->SetPos(0, 0);
  15. m_Splitter->Dock( Pos::Fill );
  16. {
  17. Gwen::Controls::Button* testButton = new Gwen::Controls::Button( m_Splitter );
  18. testButton->SetText( "TOPLEFT");
  19. m_Splitter->SetPanel( 0, testButton );
  20. }
  21. {
  22. Gwen::Controls::Button* testButton = new Gwen::Controls::Button( m_Splitter );
  23. testButton->SetText( "TOPRIGHT");
  24. m_Splitter->SetPanel( 1, testButton );
  25. }
  26. {
  27. Gwen::Controls::Button* testButton = new Gwen::Controls::Button( m_Splitter );
  28. testButton->SetText( "BOTTOMRIGHT");
  29. m_Splitter->SetPanel( 2, testButton );
  30. }
  31. {
  32. Gwen::Controls::Button* testButton = new Gwen::Controls::Button( m_Splitter );
  33. testButton->SetText( "BOTTOMLEFT");
  34. m_Splitter->SetPanel( 3, testButton );
  35. }
  36. //Status bar to hold unit testing buttons
  37. Gwen::Controls::StatusBar* pStatus = new Gwen::Controls::StatusBar( this );
  38. pStatus->Dock( Pos::Bottom );
  39. {
  40. Gwen::Controls::Button* pButton = new Gwen::Controls::Button( pStatus );
  41. pButton->SetText( "Zoom" );
  42. pButton->onPress.Add( this, &CrossSplitter::ZoomTest );
  43. pStatus->AddControl( pButton, false );
  44. }
  45. {
  46. Gwen::Controls::Button* pButton = new Gwen::Controls::Button( pStatus );
  47. pButton->SetText( "UnZoom" );
  48. pButton->onPress.Add( this, &CrossSplitter::UnZoomTest );
  49. pStatus->AddControl( pButton, false );
  50. }
  51. {
  52. Gwen::Controls::Button* pButton = new Gwen::Controls::Button( pStatus );
  53. pButton->SetText( "CenterPanels" );
  54. pButton->onPress.Add( this, &CrossSplitter::CenterPanels );
  55. pStatus->AddControl( pButton, true );
  56. }
  57. {
  58. Gwen::Controls::Button* pButton = new Gwen::Controls::Button( pStatus );
  59. pButton->SetText( "Splitters" );
  60. pButton->onPress.Add( this, &CrossSplitter::ToggleSplitters );
  61. pStatus->AddControl( pButton, true );
  62. }
  63. }
  64. void ZoomTest( Gwen::Controls::Base* pFromPanel )
  65. {
  66. m_Splitter->Zoom(m_iCurZoom);
  67. m_iCurZoom++;
  68. if (m_iCurZoom == 4)
  69. m_iCurZoom = 0;
  70. }
  71. void UnZoomTest( Gwen::Controls::Base* pFromPanel )
  72. {
  73. m_Splitter->UnZoom();
  74. }
  75. void CenterPanels( Gwen::Controls::Base* pFromPanel )
  76. {
  77. m_Splitter->CenterPanels();
  78. m_Splitter->UnZoom();
  79. }
  80. void ToggleSplitters( Gwen::Controls::Base* pFromPanel )
  81. {
  82. m_Splitter->SetSplittersVisible( !m_bSplittersVisible );
  83. m_bSplittersVisible = !m_bSplittersVisible;
  84. }
  85. bool m_bSplittersVisible;
  86. int m_iCurZoom;
  87. Controls::CrossSplitter* m_Splitter;
  88. };
  89. DEFINE_UNIT_TEST( CrossSplitter, L"CrossSplitter" );