// @(#)root/ged:$Name: $:$Id: TGedAttFrame.h,v 1.6 2004/04/22 16:28:28 brun Exp $ // Author: Marek Biskup, Ilka Antcheva 28/07/03 /************************************************************************* * 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. * *************************************************************************/ #ifndef ROOT_TGedAttFrame #define ROOT_TGedAttFrame ////////////////////////////////////////////////////////////////////////// // // // TGedAttFrame, TGedAttNameFrame, TGedAttFillFrame, // // TGedAttLineFrame, TGedAttTextFrame, TGedAttMarkerFrame // // // // Frames with object attributes, just like on TAttCanvases. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_TGButton #include "TGWidget.h" #endif #ifndef ROOT_TGFrame #include "TGFrame.h" #endif class TPad; class TCanvas; class TGLabel; class TGComboBox; class TGNumberEntry; class TGCheckButton; class TGRadioButton; class TGTextEntry; class TGColorSelect; class TGedPatternSelect; class TGedMarkerSelect; class TGLineStyleComboBox; class TGLineWidthComboBox; class TGFontTypeComboBox; class TGedAttFrame : public TGCompositeFrame, public TGWidget { protected: TObject *fModel; // selected object, if exists TCanvas *fCanvas; // selected canvas, if exists TPad *fPad; // selected pad, if exists Long_t ExecuteInt(TObject *obj, const char *method, const char *params); char *ExecuteChar(TObject *obj, const char *method, const char *params); Float_t ExecuteFloat(TObject *obj, const char *method, const char *params); virtual TGCompositeFrame *MakeTitle(const char *c); public: TGedAttFrame(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttFrame() { } virtual void SetActive(Bool_t active = true); virtual void SetModel(TPad *pad, TObject *obj, Int_t event) = 0; virtual void Refresh(); virtual void Update(); virtual void ConnectToCanvas(TCanvas *c); ClassDef(TGedAttFrame, 0); //attribute frame }; class TGedAttNameFrame : public TGedAttFrame { protected: TGLabel *fLabel; //label of attribute frame public: TGedAttNameFrame(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttNameFrame() { Cleanup(); } virtual void SetModel(TPad *pad, TObject *obj, Int_t event); ClassDef(TGedAttNameFrame,0) //name attribute farme }; class TGedAttFillFrame : public TGedAttFrame { protected: TGColorSelect *fColorSelect; TGedPatternSelect *fPatternSelect; public: TGedAttFillFrame(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttFillFrame() { Cleanup(); } virtual void SetModel(TPad *pad, TObject *obj, Int_t event); virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2); ClassDef(TGedAttFillFrame,0) //fill attribute frame }; class TGedAttLineFrame : public TGedAttFrame { protected: TGLineStyleComboBox *fStyleCombo; // line style combo box TGLineWidthComboBox *fWidthCombo; // line width combo box TGColorSelect *fColorSelect; // color selection widget public: TGedAttLineFrame(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttLineFrame() { Cleanup(); } virtual void SetModel(TPad *pad, TObject *obj, Int_t event); virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2); ClassDef(TGedAttLineFrame,0) // line attribute frame }; class TGedAttTextFrame : public TGedAttFrame { protected: TGFontTypeComboBox *fTypeCombo; // font style combo box TGComboBox *fSizeCombo; // font size combo box TGComboBox *fAlignCombo; // font aligh combo box TGColorSelect *fColorSelect; // color selection widget static TGComboBox *BuildFontSizeComboBox(TGFrame *parent, Int_t id); static TGComboBox *BuildTextAlignComboBox(TGFrame *parent, Int_t id); public: TGedAttTextFrame(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttTextFrame() { Cleanup(); } virtual void SetModel(TPad *pad, TObject *obj, Int_t event); virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2); ClassDef(TGedAttTextFrame,0) //text attribute frame }; class TGedAttMarkerFrame : public TGedAttFrame { protected: TGFontTypeComboBox *fTypeCombo; // font style combo box TGComboBox *fSizeCombo; // font size combo box TGColorSelect *fColorSelect; // color selection widget TGedMarkerSelect *fMarkerSelect; // marker selection widget static TGComboBox *BuildMarkerSizeComboBox(TGFrame *parent, Int_t id); public: TGedAttMarkerFrame(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttMarkerFrame() { Cleanup(); } virtual void SetModel(TPad *pad, TObject *obj, Int_t event); virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2); ClassDef(TGedAttMarkerFrame,0) //marker attribute farme }; ////////////////////////////////////////////////////////////////////////// // // // TGedAttAxis, TGedAttAxisTitle, TGedAttAxisLabel // // // // Frames with axis, axis title and axis label attributes // // // ////////////////////////////////////////////////////////////////////////// class TGedAttAxisFrame : public TGedAttFrame { protected: TGColorSelect *fAxisColor; // color selection widget TGCheckButton *fLogAxis; // logarithmic check box TGNumberEntry *fTickLength; // tick length number entry TGNumberEntry *fDiv1; // primary axis division number entry TGNumberEntry *fDiv2; // secondary axis division number entry TGNumberEntry *fDiv3; // tertiary axis division number entry TGCheckButton *fOptimize; // tick optimization check box TGCheckButton *fTicksBoth; // check box setting ticks on both axis sides TGCheckButton *fMoreLog; // more logarithmic labels check box Int_t fTicksFlag; // positive/negative ticks' flag public: TGedAttAxisFrame(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttAxisFrame() { Cleanup(); } virtual void SetModel(TPad *pad, TObject *obj, Int_t event); virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2); virtual void DoTickLength(); virtual void DoTicks(); virtual void DoDivisions(); virtual void DoLogAxis(); virtual void DoMoreLog(); ClassDef(TGedAttAxisFrame,0) // axis attribute frame }; class TGedAttAxisTitle : public TGedAttFrame { protected: TGColorSelect *fTitleColor; // color selection widget TGFontTypeComboBox *fTitleFont; // title font combo box Int_t fPrecision; // font precision level TGNumberEntry *fTitleSize; // title size number entry TGNumberEntry *fTitleOffset; // title offset number entry TGCheckButton *fCentered; // check button for centered title TGCheckButton *fRotated; // check button for rotated title public: TGedAttAxisTitle(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttAxisTitle() { Cleanup(); } virtual void SetModel(TPad *pad, TObject *obj, Int_t event); virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2); virtual void DoTitleSize(); virtual void DoTitleFont(); virtual void DoTitleOffset(); virtual void DoTitleCentered(); virtual void DoTitleRotated(); ClassDef(TGedAttAxisTitle,0) // axis title frame }; class TGedAttAxisLabel : public TGedAttFrame { protected: TGColorSelect *fLabelColor; // color selection widget TGFontTypeComboBox *fLabelFont; // label font combo box Int_t fPrecision; // font precision level TGNumberEntry *fLabelSize; // label size number entry TGNumberEntry *fLabelOffset; // label offset number entry TGCheckButton *fNoExponent; // check box for No exponent choice public: TGedAttAxisLabel(const TGWindow *p, Int_t id, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~TGedAttAxisLabel() { Cleanup(); } virtual void SetModel(TPad *pad, TObject *obj, Int_t event); virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2); virtual void DoLabelSize(); virtual void DoLabelFont(); virtual void DoLabelOffset(); virtual void DoNoExponent(); ClassDef(TGedAttAxisLabel,0) // axis label frame }; #endif