Dear Rooters Yesterday I have attached to my question a macro with name "guitab.C". When I received the mail from roottalk, I could not open my macro. Is it not possible to send an attachment with ending "*.C"? Anyhow, now I put my macro below in the hope that someone can tell me what the problem is. Thank you Christian //------------------guitab.C---------------------// #include <stdio.h> #include <stdlib.h> #include <iostream.h> #include <fstream.h> class TMyFrame { RQ_OBJECT() private: TGMainFrame *fMain; TGCompositeFrame *fSF; TGCompositeFrame *fSF1001; TGVerticalFrame *fV1; TGCanvas *fTreeView; TGListTree *fLt; TGVerticalFrame *fV2; TGCanvas *fCanvas; TGTab *fTab; TGCompositeFrame *fFT1; TGGroupFrame *fFT1G1; TGGroupFrame *fFT1G2; TGCompositeFrame *fFT2; TGGroupFrame *fFT2G1; TList *fTrash; public: TMyFrame(const TGWindow *vWindow, UInt_t vWidth, UInt_t vHeight); virtual ~TMyFrame(); // Slots void FCloseWindow(); // ClassDef(TMyFrame,0) //TMyFrame }; //ClassImp(TMyFrame); //----------------------------------------------------------------------// TMyFrame::TMyFrame(const TGWindow *vWindow, UInt_t vWidth, UInt_t vHeight) { fTrash = new TList; TGLayoutHints *vHints; fMain = new TGMainFrame(vWindow, vWidth, vHeight); fMain->Connect("CloseWindow()", "TMyFrame", this, "FCloseWindow()"); vHints = new TGLayoutHints(kLHintsTop | kLHintsExpandX | kLHintsExpandY); fTrash->Add(vHints); fSF = new TGCompositeFrame(fMain,10,10); fMain->AddFrame(fSF, vHints); fSF1001 = new TGCompositeFrame(fSF,0,0, kHorizontalFrame); fV1 = new TGVerticalFrame(fSF1001, 10, 10, kFixedWidth); fV2 = new TGVerticalFrame(fSF1001, 10, 10); // Create tree fTreeView = new TGCanvas(fV1, 10,10, kSunkenFrame | kDoubleBorder); fLt = new TGListTree(fTreeView->GetViewPort(), 10,10, kHorizontalFrame, fMain->GetWhitePixel()); fLt->Associate(fMain); // fLt->SetAutoTips(); //?? fTreeView->SetContainer(fLt); fLt->SetCanvas(fTreeView); fTreeView->Resize(200,200); vHints = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY); fTrash->Add(vHints); fV1->AddFrame(fTreeView, vHints); // Create tabs in canvas fCanvas = new TGCanvas(fV2, 10, 10, 0); fTab = new TGTab(fCanvas, 20, 20); fTab->Associate(fMain); //? fCanvas->SetContainer(fTab); TGCompositeFrame *vTabFrame; // Tab 1 vTabFrame = fTab->AddTab("Tab 1"); fFT1 = new TGCompositeFrame(vTabFrame, 20, 20, kVerticalFrame); vHints = new TGLayoutHints(kLHintsTop | kLHintsLeft); fTrash->Add(vHints); vTabFrame->AddFrame(fFT1, vHints); vHints = new TGLayoutHints(kLHintsTop | kLHintsLeft); fTrash->Add(vHints); fFT1G1 = new TGGroupFrame(fFT1, "GroupFrame 1 for Tab 1", kFixedWidth | kFixedHeight | kVerticalFrame); fFT1->AddFrame(fFT1G1, vHints); fFT1G1->Resize(300,80); vHints = new TGLayoutHints(kLHintsTop | kLHintsLeft); fTrash->Add(vHints); fFT1G2 = new TGGroupFrame(fFT1, "GroupFrame 2 for Tab 1", kFixedWidth | kFixedHeight | kVerticalFrame); fFT1->AddFrame(fFT1G2, vHints); fFT1G2->Resize(300,200); // Tab 2 vTabFrame = fTab->AddTab("Tab 2"); fFT2 = new TGCompositeFrame(vTabFrame, 20, 20, kVerticalFrame); vHints = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY); fTrash->Add(vHints); vTabFrame->AddFrame(fFT2, vHints); vHints = new TGLayoutHints(kLHintsTop | kLHintsLeft); fTrash->Add(vHints); fFT2G1 = new TGGroupFrame(fFT2, "GroupFrame for Tab 2", kFixedSize | kVerticalFrame); fFT2->AddFrame(fFT2G1, vHints); fFT2G1->Resize(300,100); vHints = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY); fTrash->Add(vHints); fV2->AddFrame(fCanvas, vHints); fV1->Resize(fCanvas->GetDefaultWidth()+100, fV1->GetDefaultHeight()); vHints = new TGLayoutHints(kLHintsLeft | kLHintsExpandY); fTrash->Add(vHints); fSF1001->AddFrame(fV1, vHints); TGVSplitter *vSplitter = new TGVSplitter(fSF1001); vSplitter->SetFrame(fV1, kTRUE); vHints = new TGLayoutHints(kLHintsLeft | kLHintsExpandY); fTrash->Add(vSplitter); fTrash->Add(vHints); fSF1001->AddFrame(vSplitter, vHints); vHints = new TGLayoutHints(kLHintsRight | kLHintsExpandX | kLHintsExpandY); fTrash->Add(vHints); fSF1001->AddFrame(fV2, vHints); fSF1001->Resize(500, 250); fSF->AddFrame(fSF1001, vHints); // Main settings fMain->SetWindowName("TabTest"); fMain->MapSubwindows(); fMain->Resize(fMain->GetDefaultSize()); fMain->SetWMPosition(140,120); fMain->MapWindow(); }//Constructor //----------------------------------------------------------------------// TMyFrame::~TMyFrame() { delete fFT2G1; delete fFT2; delete fFT1G1; delete fFT1G2; delete fFT1; delete fTab;delete fCanvas; delete fV2; delete fTreeView; delete fLt; delete fV1; delete fSF1001; delete fSF; delete fMain; fTrash->Delete(); delete fTrash; }//Destructor //----------------------------------------------------------------------// void TMyFrame::FCloseWindow() { delete this; }//FCloseWindow //----------------------------------------------------------------------// void guitab() { new TMyFrame(gClient->GetRoot(), 400, 220); } //--------------------------------------------------// "cstrato@EUnet.at" wrote: > Dear Rooters > > In the attached macro ("guitab.C") I have a TGCanvas containing TGTab > frames > which contain e.g. TGGroupFrames of fixed size. When I reduce the window > > size so that TGGroupFrames are covered, scrollbars should appear in > TGCanvas. > > In the attached macro, reducing the window either vertically OR > horizontally > results in appearance of the corresponding scrollbar. However, when > reducing > the window both vertically AND horizontally NO scrollbars appear. The > same > problem exists when I move the splitter. > > Is there a mistake in my macro which causes this behaviour? > What do I have to change? > > Thank you in advance. > > Best regards > Christian > ---------------------------------- > C.h.r.i.s.t.i.a.n S.t.r.a.t.o.w.a > V.i.e.n.n.a, A.u.s.t.r.i.a > > ------------------------------------------------------------------------ > [Image]
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:07 MET