1 #include "CtrlPosTest.h" 2 ToInfo(const String & s)3void 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)9void 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()16void CtrlPosTest::VisitCB() 17 { 18 hk.SetSource(&vis); 19 } ClearCB()20void CtrlPosTest::ClearCB() 21 { 22 hk.ClearSource(); 23 } EnableCB()24void CtrlPosTest::EnableCB() 25 { 26 hk.Enable(); 27 hk.SetFocus(); 28 } DisableCB()29void CtrlPosTest::DisableCB() 30 { 31 hk.Disable(); 32 } 33 DeepCB()34void CtrlPosTest::DeepCB() 35 { 36 hk.flags &= ~CtrlFinder::DEEP; 37 hk.flags |= (~ft.deep)?(CtrlFinder::DEEP):(0); 38 } 39 FrameCB()40void CtrlPosTest::FrameCB() 41 { 42 hk.flags &= ~CtrlFinder::FRAME; 43 hk.flags |= (~ft.frame)?(CtrlFinder::FRAME):(0); 44 } 45 ViewCB()46void CtrlPosTest::ViewCB() 47 { 48 hk.flags &= ~CtrlFinder::VIEW; 49 hk.flags |= (~ft.view)?(CtrlFinder::VIEW):(0); 50 } 51 CtrlPosTest()52CtrlPosTest::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()100void CtrlPosTest::Activate() 101 { 102 hk.SetFocus(); 103 } 104 105 GUI_APP_MAIN 106 { 107 CtrlPosTest().Run(); 108 } 109 110