Loading [MathJax]/extensions/tex2jax.js
Logo ROOT  
Reference Guide
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
splitterHorizontal.C File Reference

Detailed Description

This macro gives an example of how to create a horizontal splitter.

To run it do either:

.x splitterHorizontal.C
.x splitterHorizontal.C++
#include <TGClient.h>
#include <TGButton.h>
#include <TGLabel.h>
#include <TGFrame.h>
#include <TGLayout.h>
#include <TGSplitter.h>
class MyMainFrame : public TGMainFrame {
public:
MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h);
virtual ~MyMainFrame();
void DoSave();
void CloseWindow();
ClassDef(MyMainFrame, 0)
};
void MyMainFrame::DoSave()
{
//------ TGMainFrame::SaveSource() --------
Printf("Save in progress...");
SaveSource("","");
}
MyMainFrame::MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h) :
TGMainFrame(p, w, h)
{
// Create horizontal splitter
TGVerticalFrame *fVf = new TGVerticalFrame(this, 10, 10);
TGHorizontalFrame *fH2 = new TGHorizontalFrame(fVf, 10, 10);
TGCompositeFrame *fFtop = new TGCompositeFrame(fH1, 10, 10, kSunkenFrame);
TGCompositeFrame *fFbottom = new TGCompositeFrame(fH2, 10, 10, kSunkenFrame);
TGLabel *fLtop = new TGLabel(fFtop, "Top Frame");
TGLabel *fLbottom = new TGLabel(fFbottom, "Bottom Frame");
3, 0, 0, 0));
fFbottom->AddFrame(fLbottom, new TGLayoutHints(kLHintsLeft | kLHintsCenterY,
3, 0, 0, 0));
kLHintsExpandX, 0, 0, 1, 2));
kLHintsExpandX, 0, 0, 1, 2));
fH1->Resize(fFtop->GetDefaultWidth(), fH1->GetDefaultHeight()+20);
fH2->Resize(fFbottom->GetDefaultWidth(), fH2->GetDefaultHeight()+20);
TGHSplitter *hsplitter = new TGHSplitter(fVf,2,2);
hsplitter->SetFrame(fH1, kTRUE);
// button frame
TGVerticalFrame *hframe = new TGVerticalFrame(this, 10, 10);
TGCompositeFrame *cframe2 = new TGCompositeFrame(hframe, 170, 50,
TGTextButton *save = new TGTextButton(cframe2, "&Save");
3, 2, 2, 2));
save->Connect("Clicked()", "MyMainFrame", this, "DoSave()");
save->SetToolTipText("Click on the button to save the application as C++ macro");
TGTextButton *exit = new TGTextButton(cframe2, "&Exit ","gApplication->Terminate(0)");
2, 0, 2, 2));
hframe->AddFrame(cframe2, new TGLayoutHints(kLHintsExpandX, 2, 2, 5, 1));
AddFrame(hframe, new TGLayoutHints(kLHintsExpandX, 2, 2, 5, 1));
// What to clean up in dtor
SetCleanup(kDeepCleanup);
// Set a name to the main frame
SetWindowName("Horizontal Splitter");
SetWMSizeHints(300, 250, 600, 600, 0, 0);
MapSubwindows();
Resize(GetDefaultSize());
MapWindow();
}
MyMainFrame::~MyMainFrame()
{
// Clean up all widgets, frames and layouthints that were used
Cleanup();
}
//______________________________________________________________________________
void MyMainFrame::CloseWindow()
{
// Called when window is closed via the window manager.
delete this;
}
void splitterHorizontal()
{
// Popup the GUI...
new MyMainFrame(gClient->GetRoot(), 300, 250);
}
@ kSunkenFrame
Definition: GuiTypes.h:383
@ kFixedWidth
Definition: GuiTypes.h:387
@ kHorizontalFrame
Definition: GuiTypes.h:382
@ kFixedHeight
Definition: GuiTypes.h:389
#define h(i)
Definition: RSha256.hxx:106
unsigned int UInt_t
Definition: RtypesCore.h:44
const Bool_t kTRUE
Definition: RtypesCore.h:89
#define ClassDef(name, id)
Definition: Rtypes.h:322
#define gClient
Definition: TGClient.h:166
@ kDeepCleanup
Definition: TGFrame.h:51
@ kLHintsRight
Definition: TGLayout.h:33
@ kLHintsExpandY
Definition: TGLayout.h:38
@ kLHintsLeft
Definition: TGLayout.h:31
@ kLHintsCenterY
Definition: TGLayout.h:35
@ kLHintsTop
Definition: TGLayout.h:34
@ kLHintsExpandX
Definition: TGLayout.h:37
void Printf(const char *fmt,...)
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition: TGButton.cxx:397
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1101
virtual UInt_t GetDefaultWidth() const
Definition: TGFrame.h:349
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:351
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:589
virtual void SetFrame(TGFrame *frame, Bool_t above)
Set frame to be resized.
Definition: TGSplitter.cxx:340
virtual void CloseWindow()
Close and delete main frame.
Definition: TGFrame.cxx:1730
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Definition: TQObject.cxx:866
Author
Ilka Antcheva 1/12/2006

Definition in file splitterHorizontal.C.