File: CrossSplitter.cpp

package info (click to toggle)
bullet 3.24%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 15,164 kB
  • sloc: cpp: 246,331; lisp: 12,017; ansic: 11,175; python: 630; makefile: 136; sh: 75
file content (107 lines) | stat: -rw-r--r-- 2,739 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#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");