/*
<img src="gif/TFrameEditor.gif">
*/
//End_Html
#include "TFrameEditor.h"
#include "TGedEditor.h"
#include "TGComboBox.h"
#include "TGButtonGroup.h"
#include "TGLabel.h"
#include "TFrame.h"
#include "TVirtualPad.h"
ClassImp(TFrameEditor)
enum EFrameWid {
kFR_BSIZE,
kFR_BMODE
};
TFrameEditor::TFrameEditor(const TGWindow *p, Int_t width,
Int_t height, UInt_t options, Pixel_t back)
: TGedFrame(p, width, height, options | kVerticalFrame, back)
{
TGCompositeFrame *f2 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
TGButtonGroup *bgr = new TGButtonGroup(f2,3,1,3,0, "Frame Border Mode");
bgr->SetRadioButtonExclusive(kTRUE);
fBmode = new TGRadioButton(bgr, " Sunken", 77);
fBmode->SetToolTipText("Set a sunken border of the frame");
fBmode0 = new TGRadioButton(bgr, " No border", 78);
fBmode0->SetToolTipText("Set no border of the frame");
fBmode1 = new TGRadioButton(bgr, " Raised", 79);
fBmode1->SetToolTipText("Set a raised border of the frame");
bgr->SetButton(79, kTRUE);
fBmodelh = new TGLayoutHints(kLHintsLeft, 0,0,3,0);
bgr->SetLayoutHints(fBmodelh, fBmode);
bgr->Show();
bgr->ChangeOptions(kFitWidth|kChildFrame|kVerticalFrame);
f2->AddFrame(bgr, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 1, 0, 0));
AddFrame(f2, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));
TGCompositeFrame *f3 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
TGLabel *fSizeLbl = new TGLabel(f3, "Size:");
f3->AddFrame(fSizeLbl, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 6, 1, 0, 0));
fBsize = new TGLineWidthComboBox(f3, kFR_BSIZE);
fBsize->Resize(92, 20);
f3->AddFrame(fBsize, new TGLayoutHints(kLHintsLeft, 13, 1, 0, 0));
fBsize->Associate(this);
AddFrame(f3, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));
}
TFrameEditor::~TFrameEditor()
{
delete fBmode;
delete fBmode0;
delete fBmode1;
delete fBmodelh;
}
void TFrameEditor::ConnectSignals2Slots()
{
fBmode->Connect("Toggled(Bool_t)","TFrameEditor",this,"DoBorderMode()");
fBmode0->Connect("Toggled(Bool_t)","TFrameEditor",this,"DoBorderMode()");
fBmode1->Connect("Toggled(Bool_t)","TFrameEditor",this,"DoBorderMode()");
fBsize->Connect("Selected(Int_t)", "TFrameEditor", this, "DoBorderSize(Int_t)");
fInit = kFALSE;
}
void TFrameEditor::SetModel(TObject* obj)
{
fFrame = (TFrame *)obj;
Int_t par;
par = fFrame->GetBorderMode();
if (par == -1) fBmode->SetState(kButtonDown, kTRUE);
else if (par == 1) fBmode1->SetState(kButtonDown, kTRUE);
else fBmode0->SetState(kButtonDown, kTRUE);
par = fFrame->GetBorderSize();
if (par < 1) par = 1;
if (par > 16) par = 16;
fBsize->Select(par, kFALSE);
if (fInit) ConnectSignals2Slots();
}
void TFrameEditor::DoBorderMode()
{
Int_t mode = 0;
if (fBmode->GetState() == kButtonDown) mode = -1;
else if (fBmode0->GetState() == kButtonDown) mode = 0;
else mode = 1;
if (!mode) {
fBsize->SetEnabled(kFALSE);
} else {
fBsize->SetEnabled(kTRUE);
}
fFrame->SetBorderMode(mode);
Update();
gPad->Modified();
gPad->Update();
}
void TFrameEditor::DoBorderSize(Int_t size)
{
fFrame->SetBorderSize(size);
Update();
}
Last change: Wed Jun 25 08:39:19 2008
Last generated: 2008-06-25 08:39
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.