Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-16 09:09:25

0001 // @(#)root/ged:$Id$
0002 // Author: Ilka  Antcheva 10/05/04
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TGedFrame
0013 #define ROOT_TGedFrame
0014 
0015 
0016 #include "TGFrame.h"
0017 
0018 class TVirtualPad;
0019 class TCanvas;
0020 class TGLabel;
0021 class TGToolTip;
0022 class TList;
0023 class TGTab;
0024 class TGedEditor;
0025 class TGHSlider;
0026 
0027 class TGedFrame : public TGCompositeFrame {
0028 
0029 public:
0030    // Inner class to store information for each extra tab.
0031    class TGedSubFrame : public TObject {
0032    private:
0033       TGedSubFrame(const TGedSubFrame&) = delete;
0034       TGedSubFrame& operator=(const TGedSubFrame&) = delete;
0035    public:
0036       TString            fName;
0037       TGCompositeFrame  *fFrame;
0038 
0039       TGedSubFrame(TString n,  TGCompositeFrame* f) : fName(n), fFrame(f) {}
0040    };
0041 
0042 private:
0043    TGedFrame(const TGedFrame&) = delete;
0044    TGedFrame& operator=(const TGedFrame&) = delete;
0045 
0046 protected:
0047    Bool_t          fInit;        ///< init flag for setting signals/slots
0048    TGedEditor     *fGedEditor;   ///< manager of this frame
0049    TClass         *fModelClass;  ///< class corresponding to instantiated GedFrame
0050    Bool_t          fAvoidSignal; ///< flag for executing slots
0051 
0052    TList          *fExtraTabs;   ///< addtional tabs in ged editor
0053    Int_t           fPriority;    ///< location in GedEditor
0054 
0055    virtual void MakeTitle(const char *title);
0056 
0057 public:
0058    TGedFrame(const TGWindow *p = nullptr,
0059              Int_t width = 140, Int_t height = 30,
0060              UInt_t options = kChildFrame,
0061              Pixel_t back = GetDefaultFrameBackground());
0062    ~TGedFrame() override;
0063 
0064    virtual void      Update();
0065 
0066    Option_t *GetDrawOption() const override;
0067 
0068    TClass*           GetModelClass()              { return fModelClass;  }
0069    Int_t             GetPriority()                { return fPriority;    }
0070    TList*            GetExtraTabs()               { return fExtraTabs;   }
0071    TGedEditor*       GetGedEditor()               { return fGedEditor;   }
0072    virtual void      AddExtraTab(TGedSubFrame* sf);
0073    virtual TGVerticalFrame* CreateEditorTabSubFrame(const char* name);
0074 
0075    virtual void      Refresh(TObject *model);
0076    void      SetDrawOption(Option_t *option="") override;
0077    virtual Bool_t    AcceptModel(TObject*) { return kTRUE; }
0078    void              SetModelClass(TClass* mcl)   { fModelClass = mcl; }
0079    virtual void      SetModel(TObject* obj) = 0;
0080    virtual void      SetGedEditor(TGedEditor* ed) { fGedEditor = ed; }
0081    virtual void      ActivateBaseClassEditors(TClass* cl);
0082 
0083    ClassDefOverride(TGedFrame, 0); //base editor's frame
0084 };
0085 
0086 class TGedNameFrame : public TGedFrame {
0087 private:
0088    TGedNameFrame(const TGedNameFrame&) = delete;
0089    TGedNameFrame& operator=(const TGedNameFrame&) = delete;
0090 
0091 protected:
0092    TGLabel          *fLabel;      //label of attribute frame
0093    TGCompositeFrame *f1, *f2;     //container frames
0094    TGToolTip        *fTip;        //tool tip associated with button
0095 
0096 public:
0097    TGedNameFrame(const TGWindow *p = nullptr,
0098                  Int_t width = 170, Int_t height = 30,
0099                  UInt_t options = kChildFrame,
0100                  Pixel_t back = GetDefaultFrameBackground());
0101    ~TGedNameFrame() override;
0102 
0103    Bool_t   HandleButton(Event_t *event) override;
0104    Bool_t   HandleCrossing(Event_t *event) override;
0105 
0106    void     SetModel(TObject* obj) override;
0107 
0108    ClassDefOverride(TGedNameFrame,0)      //frame showing the selected object name
0109 };
0110 
0111 #endif
0112