1 #include "CtrlPosTest.h"
2 
ToInfo(const String & s)3 void CtrlPosTest::ToInfo(const String& s)
4 {
5 	vis.info.Insert(vis.info.GetLength(), s + "\n");
6 	vis.info.SetCursor(vis.info.GetLength());
7 }
8 
OnSelect(Ctrl & c,Point p,dword keyflags)9 void CtrlPosTest::OnSelect(Ctrl& c, Point p, dword keyflags)
10 {
11 	String inf = "Selected: ";
12 	inf << String(typeid(c).name());
13 	ToInfo(inf);
14 }
15 
VisitCB()16 void CtrlPosTest::VisitCB()
17 {
18 	hk.SetSource(&vis);
19 }
ClearCB()20 void CtrlPosTest::ClearCB()
21 {
22 	hk.ClearSource();
23 }
EnableCB()24 void CtrlPosTest::EnableCB()
25 {
26 	hk.Enable();
27 	hk.SetFocus();
28 }
DisableCB()29 void CtrlPosTest::DisableCB()
30 {
31 	hk.Disable();
32 }
33 
DeepCB()34 void CtrlPosTest::DeepCB()
35 {
36 	hk.flags &= ~CtrlFinder::DEEP;
37 	hk.flags |= (~ft.deep)?(CtrlFinder::DEEP):(0);
38 }
39 
FrameCB()40 void CtrlPosTest::FrameCB()
41 {
42 	hk.flags &= ~CtrlFinder::FRAME;
43 	hk.flags |= (~ft.frame)?(CtrlFinder::FRAME):(0);
44 }
45 
ViewCB()46 void CtrlPosTest::ViewCB()
47 {
48 	hk.flags &= ~CtrlFinder::VIEW;
49 	hk.flags |= (~ft.view)?(CtrlFinder::VIEW):(0);
50 }
51 
CtrlPosTest()52 CtrlPosTest::CtrlPosTest()
53 {
54 	SetRect(Size(400,400));
55 	Sizeable().Zoomable();
56 
57 	CtrlLayout(vis);
58 
59 	CtrlLayout(sb);
60 	sb.Width(sb.GetSize().cx);
61 	vis.AddFrame(sb);
62 	vis.pc.Add(es.HCenterPos(50).VCenterPos(20));
63 	st.SetText("STATIC");
64 	vis.pc.Add(st.LeftPos(10,50).TopPos(20,20));
65 
66 	CtrlLayout(ft);
67 	ft.Height(ft.GetSize().cy);
68 	AddFrame(ft);
69 
70 	CtrlLayout(bot);
71 	bot.Height(50);
72 	vis.pc.AddFrame(bot);
73 
74 	ft.visit <<= THISBACK(VisitCB);
75 	ft.clear <<= THISBACK(ClearCB);
76 	ft.enable <<= THISBACK(EnableCB);
77 	ft.disable <<= THISBACK(DisableCB);
78 	ft.deep <<= THISBACK(DeepCB);
79 	ft.frame <<= THISBACK(FrameCB);
80 	ft.view <<= THISBACK(ViewCB);
81 
82 	ft.deep <<= true;
83 	DeepCB();
84 
85 	ft.frame <<= true;
86 	FrameCB();
87 
88 	ft.view <<= true;
89 	ViewCB();
90 
91 	Add(sc.SizePos());
92 	sc.AddPane(vis);
93 	sc.WhenScrolled = callback(&hk, &CtrlPos::Update);
94 
95 	hk.WhenLeftSelect = THISBACK(OnSelect);
96 	hk.SetSource(&vis);
97 	hk.SetFocus();
98 }
99 
Activate()100 void CtrlPosTest::Activate()
101 {
102 	hk.SetFocus();
103 }
104 
105 GUI_APP_MAIN
106 {
107 	CtrlPosTest().Run();
108 }
109 
110