// @(#)root/ged:$Name: $:$Id: TAttLineEditor.cxx,v 1.6 2005/05/14 00:19:58 rdm Exp $
// Author: Ilka Antcheva 10/05/04
/*************************************************************************
* Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
//////////////////////////////////////////////////////////////////////////
// //
// TAttLineEditor //
// //
// Implements GUI for editing line attributes. // //
// color, line width, line style //
// //
//////////////////////////////////////////////////////////////////////////
//
/*
*/
//
#include "TAttLineEditor.h"
#include "TGColorSelect.h"
#include "TGColorDialog.h"
#include "TGClient.h"
#include "TGComboBox.h"
#include "TColor.h"
#include "TAttLine.h"
#include "TVirtualPad.h"
ClassImp(TAttLineEditor)
enum ELineWid {
kCOLOR,
kLINE_WIDTH,
kLINE_STYLE
};
//______________________________________________________________________________
TAttLineEditor::TAttLineEditor(const TGWindow *p, Int_t id, Int_t width,
Int_t height, UInt_t options, Pixel_t back)
: TGedFrame(p, id, width, height, options | kVerticalFrame, back)
{
// Constructor of line attributes GUI.
fAttLine = 0;
MakeTitle("Line");
TGCompositeFrame *f2 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
AddFrame(f2, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));
fColorSelect = new TGColorSelect(f2, 0, kCOLOR);
f2->AddFrame(fColorSelect, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
fColorSelect->Associate(this);
fStyleCombo = new TGLineStyleComboBox(this, kLINE_STYLE);
fStyleCombo->Resize(137, 20);
AddFrame(fStyleCombo, new TGLayoutHints(kLHintsLeft, 3, 1, 1, 1));
fStyleCombo->Associate(this);
fWidthCombo = new TGLineWidthComboBox(f2, kLINE_WIDTH);
fWidthCombo->Resize(91, 20);
f2->AddFrame(fWidthCombo, new TGLayoutHints(kLHintsLeft, 3, 1, 1, 1));
fWidthCombo->Associate(this);
TClass *cl = TAttLine::Class();
TGedElement *ge = new TGedElement;
ge->fGedFrame = this;
ge->fCanvas = 0;
cl->GetEditorList()->Add(ge);
}
//______________________________________________________________________________
TAttLineEditor::~TAttLineEditor()
{
// Destructor of line editor.
TGFrameElement *el;
TIter next(GetList());
while ((el = (TGFrameElement *)next())) {
if (!strcmp(el->fFrame->ClassName(), "TGCompositeFrame"))
((TGCompositeFrame *)el->fFrame)->Cleanup();
}
Cleanup();
}
//______________________________________________________________________________
void TAttLineEditor::ConnectSignals2Slots()
{
// Connect signals to slots.
fColorSelect->Connect("ColorSelected(Pixel_t)", "TAttLineEditor", this, "DoLineColor(Pixel_t)");
fStyleCombo->Connect("Selected(Int_t)", "TAttLineEditor", this, "DoLineStyle(Int_t)");
fWidthCombo->Connect("Selected(Int_t)", "TAttLineEditor", this, "DoLineWidth(Int_t)");
fInit = kFALSE;
}
//______________________________________________________________________________
void TAttLineEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
{
// Pick up the used line attributes.
fModel = 0;
fPad = 0;
if (!obj || !obj->InheritsFrom("TAttLine") || obj->InheritsFrom("TPad")) {
SetActive(kFALSE);
return;
}
fModel = obj;
fPad = pad;
fAttLine = dynamic_cast<TAttLine *>(fModel);
fStyleCombo->Select(fAttLine->GetLineStyle());
fWidthCombo->Select(fAttLine->GetLineWidth());
Color_t c = fAttLine->GetLineColor();
Pixel_t p = TColor::Number2Pixel(c);
fColorSelect->SetColor(p);
if (fInit) ConnectSignals2Slots();
SetActive();
}
//______________________________________________________________________________
void TAttLineEditor::DoLineColor(Pixel_t color)
{
// Slot connected to the line color.
fAttLine->SetLineColor(TColor::GetColor(color));
Update();
}
//______________________________________________________________________________
void TAttLineEditor::DoLineStyle(Int_t style)
{
// Slot connected to the line style.
fAttLine->SetLineStyle(style);
Update();
}
//______________________________________________________________________________
void TAttLineEditor::DoLineWidth(Int_t width)
{
// Slot connected to the line width.
fAttLine->SetLineWidth(width);
Update();
}
ROOT page - Class index - Class Hierarchy - Top of the page
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.