#include #include #include #include #include #include #include #include #include #include void test_vsplitter() { TGMainFrame* mf = new TGMainFrame(gClient->GetRoot(), 500, 400); mf->SetWindowName("Foo"); TGHorizontalFrame* hMain = new TGHorizontalFrame(mf, 500, 400); mf->AddFrame(hMain, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 5, 10, 10, 0)); TGVerticalFrame* vf1 = new TGVerticalFrame(hMain, 200, 400, kFixedWidth); //TGCompositeFrame* vfc1 = new TGCompositeFrame(vf1, 200, 400); TGVerticalFrame* vf2 = new TGVerticalFrame(hMain, 200, 400); //TGCompositeFrame* vfc2 = new TGCompositeFrame(vf2, 200, 400); //vf1->AddFrame(vfc1, new TGLayoutHints(kLHintsLeft | kLHintsExpandY | kLHintsExpandX)); //vf2->AddFrame(vfc2, new TGLayoutHints(kLHintsLeft | kLHintsExpandY | kLHintsExpandX)); // Add tabs TGTab* tab1 = new TGTab(vf1, 150, 400); TGTab* tab2 = new TGTab(vf2, 300, 400); TGCompositeFrame* frame1 = tab1->AddTab("Files"); TGCompositeFrame* frame2 = tab2->AddTab("Canvas"); vf1->AddFrame(tab1, new TGLayoutHints(kLHintsLeft | kLHintsExpandY | kLHintsExpandX)); vf2->AddFrame(tab2, new TGLayoutHints(kLHintsLeft | kLHintsExpandY | kLHintsExpandX)); // Add vertical splitter in main frame TGVSplitter *splitter = new TGVSplitter(hMain,2,30); splitter->SetFrame(vf1, kTRUE); hMain->AddFrame(vf1, new TGLayoutHints(kLHintsLeft | kLHintsExpandY)); hMain->AddFrame(splitter, new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 10, 10, 0, 0)); TGVerticalFrame *file = new TGVerticalFrame(frame1, 100, 400); frame1->AddFrame(file, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY)); frame2->ChangeOptions(kHorizontalFrame); TGVerticalFrame *vframe2 = new TGVerticalFrame(frame2, 150, 400, kFixedWidth); // Add vertical splitter to other tab TGVSplitter *split2 = new TGVSplitter(frame2,2,30); split2->SetFrame(vframe2, kTRUE); // Canvas frame TGHorizontalFrame *evf = new TGHorizontalFrame(frame2, 300, 400); frame2->AddFrame(evf, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 20, 20, 20, 20)); // Add splitter and right fixed width frame frame2->AddFrame(split2, new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 5, 5, 0, 0)); frame2->AddFrame(vframe2, new TGLayoutHints(kLHintsLeft | kLHintsExpandY)); hMain->AddFrame(vf2, new TGLayoutHints(kLHintsLeft | kLHintsExpandX | kLHintsExpandY)); mf->MapSubwindows(); mf->Layout(); // Embed canvas evf->SetEditable(); TCanvas* c = new TCanvas("Foo", "Bar", 300, 400); evf->SetEditable(kFALSE); mf->Layout(); mf->MapWindow(); }