splitter.cpp

00001 #include <gui/MessageBox.h>
00002 #include <gui/MessageQueue.h>
00003 #include <gui/Button.h>
00004 #include <gui/Splitter.h>
00005 #include <gui/TopView.h>
00006 #include <gui/Exceptions.h>
00007 #include <gui/Window.h>
00008 #include <gui/StringView.h>
00009 #include <gui/ApplicationWindow.h>
00010 #include <gui/Application.h>
00011 #include <gui/Menu.h>
00012 #include <gui/TextView.h>
00013 #include <gui/StatusBar.h>
00014 #include <gui/CheckBox.h>
00015 #include <iostream> 
00016 
00017 using namespace SkyGI;
00018 
00019 class MySplitter : public View
00020 {
00021 public:
00022         MySplitter(Window *pParent, const Rect &rFrame, unsigned int nWindowLayoutFlags);
00023         Splitter *pSplitter;
00024         Button *pToggle;
00025         void Toggle();
00026 };
00027 
00028 void MySplitter::Toggle()
00029 {
00030         if (pSplitter->GetOrientation() == SPLITTER_ORIENTATION_HORIZONTAL)
00031                 pSplitter->SetOrientation(SPLITTER_ORIENTATION_VERTICAL);
00032         else
00033                 pSplitter->SetOrientation(SPLITTER_ORIENTATION_HORIZONTAL);
00034 
00035         pSplitter->ReLayout();
00036 }
00037 
00038 MySplitter::MySplitter(Window *pParent, const Rect &rFrame, unsigned int nWindowLayoutFlags) : View(pParent, rFrame, nWindowLayoutFlags)
00039 {
00040         printf("height: %d\n", rFrame.Height());
00041 
00042         pSplitter = new Splitter(this, Rect(0,0,0,Height() - 40), SPLITTER_ORIENTATION_HORIZONTAL, WINDOW_LAYOUT_SAME_WIDTH | WINDOW_LAYOUT_FOLLOW_BOTTOM);
00043         pToggle   = new Button(this, Rect(10, Height() - 30, 150, Height() - 30), "Toggle Orientation", WINDOW_LAYOUT_FOLLOW_V);
00044         pToggle->SetRect(Point(10, Height() - 30), Point(120, pToggle->GetPreferredSize().y));
00045         pToggle->Clicked.Connect(this, &MySplitter::Toggle);
00046 
00047         pSplitter->SetRatio(0.7);
00048         TextView *pTextView1 = new TextView(pSplitter, Rect(0,0,0,0), WINDOW_LAYOUT_SAME_SIZE);
00049         TextView *pTextView2 = new TextView(pSplitter, Rect(0,0,0,0), WINDOW_LAYOUT_SAME_SIZE);
00050 
00051         pSplitter->Attach(SPLITTER_POSITION_LEFT , pTextView1);
00052         pSplitter->Attach(SPLITTER_POSITION_RIGHT, pTextView2);
00053         pSplitter->ReLayout();
00054 }
00055 
00056 void SplitterTest()
00057 {
00058         Rect r(Point(100, 100), Point(400, 440));
00059 
00060         ApplicationWindow* pApplicationWindow = new ApplicationWindow(r, "Splitter", WINDOW_LAYOUT_NOTHING, APPLICATION_WINDOW_NO_VIEW);
00061         
00062         pApplicationWindow->GetTitleWindow()->SetFlags( (TitleWindowFlags)(pApplicationWindow->GetTitleWindow()->GetFlags() ));
00063         pApplicationWindow->AttachView(new MySplitter(pApplicationWindow, pApplicationWindow->GetClientRect(), WINDOW_LAYOUT_NOTHING));
00064         pApplicationWindow->Show();
00065 }
00066 

Generated on Thu Dec 13 18:13:10 2007 for SkyGI by  doxygen 1.5.1-p1