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