ROOT  6.06/09
Reference Guide
TBrowser.h
Go to the documentation of this file.
1 // @(#)root/base:$Id$
2 // Author: Fons Rademakers 25/10/95
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 
13 #ifndef ROOT_TBrowser
14 #define ROOT_TBrowser
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TBrowser //
19 // //
20 // Using a TBrowser on can browse all ROOT objects. It shows in a list //
21 // on the left side of the window all browsable ROOT classes. Selecting //
22 // one of the classes displays, in the iconbox on the right side, all //
23 // objects in the class. Selecting one of the objects in the iconbox, //
24 // will place all browsable objects in a new list and draws the //
25 // contents of the selected class in the iconbox. And so on.... //
26 // //
27 //////////////////////////////////////////////////////////////////////////
28 
29 #ifndef ROOT_TNamed
30 #include "TNamed.h"
31 #endif
32 #ifndef ROOT_TBrowserImp
33 #include "TBrowserImp.h"
34 #endif
35 
36 
37 class TContextMenu;
38 class TBrowserTimer;
39 
40 
41 class TBrowser : public TNamed {
42 
43 private:
44  TObject *fLastSelectedObject; //!The last TObject selected by user
45 
46  TBrowser(const TBrowser&); // TBrowser can not be copied since we do not know the type of the TBrowserImp (and it can not be 'Cloned')
47  TBrowser& operator=(const TBrowser&); // TBrowser can not be copied since we do not know the type of the TBrowserImp (and it can not be 'Cloned')
48 
49 protected:
50  TBrowserImp *fImp; //!Window system specific browser implementation
51  TBrowserTimer *fTimer; //!Browser's timer
52  TContextMenu *fContextMenu; //!Context menu pointer
53  Bool_t fNeedRefresh; //True if the browser needs refresh
54 
55 public:
56  enum {
57  kNoHidden = BIT(9) // don't show '.' files and directories
58  };
59 
60  TBrowser(const char *name="Browser", const char *title="ROOT Object Browser", TBrowserImp *extimp=0, Option_t *opt="");
61  TBrowser(const char *name, const char *title, UInt_t width, UInt_t height, TBrowserImp *extimp=0, Option_t *opt="");
62  TBrowser(const char *name, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height, TBrowserImp *extimp=0, Option_t *opt="");
63 
64  TBrowser(const char *name, TObject *obj, const char *title="ROOT Object Browser", Option_t *opt="");
65  TBrowser(const char *name, TObject *obj, const char *title, UInt_t width, UInt_t height, Option_t *opt="");
66  TBrowser(const char *name, TObject *obj, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height, Option_t *opt="");
67 
68  TBrowser(const char *name, void *obj, TClass *cl, const char *objname="", const char *title="ROOT Foreign Browser", Option_t *opt="");
69  TBrowser(const char *name, void *obj, TClass *cl, const char *objname, const char *title, UInt_t width, UInt_t height, Option_t *opt="");
70  TBrowser(const char *name, void *obj, TClass *cl, const char *objname, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height, Option_t *opt="");
71 
72  // In a world with only standard C++ compliant compilers, we could also add:
73  // template <class T> TBrowser(const char *name, T *obj, const char *objname="", const char *title="ROOT Foreign Browser") :
74  // : TNamed(name, title), fLastSelectedObject(0), fTimer(0), fContextMenu(0),
75  // fNeedRefresh(kFALSE)
76  // {
77  // Create a new browser with a name, title, width and height for TObject *obj.
78  //
79  // fImp = gGuiFactory->CreateBrowserImp(this, title, width, height);
80  // Create(new TBrowserObject(obj,gROOT->GetClass(typeid(T)),objname));
81  // }
82 
83  virtual ~TBrowser();
84 
85  void Add(TObject *obj, const char *name = 0, Int_t check = -1);
86  void Add(void *obj, TClass *cl, const char *name = 0, Int_t check = -1);
87 
88  void AddCheckBox(TObject *obj, Bool_t check = kFALSE);
89  void CheckObjectItem(TObject *obj, Bool_t check = kFALSE);
90  void RemoveCheckBox(TObject *obj);
91 
92  virtual void Create(TObject *obj = 0); // Create this Browser
93  virtual void Destructor();
94  void BrowseObject(TObject *obj) { fImp->BrowseObj(obj); }
96  TBrowserImp *GetBrowserImp() const { return fImp; }
97  void SetBrowserImp(TBrowserImp *i) { fImp = i; }
99  Bool_t GetRefreshFlag() const { return fNeedRefresh; }
101  void SetRefreshFlag(Bool_t flag) { fNeedRefresh = flag; }
102  void Iconify() { fImp->Iconify(); }
103  virtual void RecursiveRemove(TObject *obj);
104  void Refresh();
105  void SetSelected(TObject *clickedObject);
106  void Show() { fImp->Show(); }
107  void SetDrawOption(Option_t *option="") { fImp->SetDrawOption(option); }
108  Option_t *GetDrawOption() const { return fImp->GetDrawOption(); }
109 
110  Long_t ExecPlugin(const char *name = 0, const char *fname = 0,
111  const char *cmd = 0, Int_t pos = 1, Int_t subpos = -1) {
112  return fImp->ExecPlugin(name, fname, cmd, pos, subpos);
113  }
114  void SetStatusText(const char *txt, Int_t col) {
115  fImp->SetStatusText(txt, col);
116  }
117  void StartEmbedding(Int_t pos, Int_t subpos) {
118  fImp->StartEmbedding(pos, subpos);
119  }
120  void StopEmbedding(const char *name = "") { fImp->StopEmbedding(name); }
121 
122  ClassDef(TBrowser,0) //ROOT Object Browser
123 };
124 
125 #endif
void SetBrowserImp(TBrowserImp *i)
Definition: TBrowser.h:97
void Add(TObject *obj, const char *name=0, Int_t check=-1)
Add object with name to browser.
Definition: TBrowser.cxx:259
virtual ~TBrowser()
Delete the browser.
Definition: TBrowser.cxx:236
TBrowserTimer * fTimer
Window system specific browser implementation.
Definition: TBrowser.h:51
void StartEmbedding(Int_t pos, Int_t subpos)
Definition: TBrowser.h:117
TObject * GetSelected() const
Definition: TBrowser.h:100
Option_t * GetDrawOption() const
Get option used by the graphics system to draw this object.
Definition: TBrowser.h:108
virtual void BrowseObj(TObject *)
Definition: TBrowserImp.h:53
TObject * fLastSelectedObject
Definition: TBrowser.h:44
const char Option_t
Definition: RtypesCore.h:62
TBrowser(const TBrowser &)
The last TObject selected by user.
#define BIT(n)
Definition: Rtypes.h:120
Bool_t GetRefreshFlag() const
Definition: TBrowser.h:99
void ExecuteDefaultAction(TObject *obj)
Execute default action for selected object (action is specified in the $HOME/.root.mimes or $ROOTSYS/etc/root.mimes file).
Definition: TBrowser.cxx:355
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
void CheckObjectItem(TObject *obj, Bool_t check=kFALSE)
Change status of checkbox for this item.
Definition: TBrowser.cxx:302
TBrowserImp * GetBrowserImp() const
Definition: TBrowser.h:96
void SetSelected(TObject *clickedObject)
Assign the last selected object.
Definition: TBrowser.cxx:385
void AddCheckBox(TObject *obj, Bool_t check=kFALSE)
Add checkbox for this item.
Definition: TBrowser.cxx:292
virtual void Create(TObject *obj=0)
Create the browser, called by the ctors.
Definition: TBrowser.cxx:322
Double_t x[n]
Definition: legend1.C:17
virtual void SetDrawOption(Option_t *option="")
#define ClassDef(name, id)
Definition: Rtypes.h:254
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
virtual void Iconify()
Definition: TBrowserImp.h:57
virtual Option_t * GetDrawOption() const
Definition: TBrowserImp.h:62
TBrowser & operator=(const TBrowser &)
void SetStatusText(const char *txt, Int_t col)
Definition: TBrowser.h:114
virtual void StopEmbedding(const char *)
Definition: TBrowserImp.h:67
virtual void SetStatusText(const char *, Int_t)
Definition: TBrowserImp.h:65
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:41
Long_t ExecPlugin(const char *name=0, const char *fname=0, const char *cmd=0, Int_t pos=1, Int_t subpos=-1)
Definition: TBrowser.h:110
Bool_t fNeedRefresh
Context menu pointer.
Definition: TBrowser.h:53
This class provides an interface to context sensitive popup menus.
Definition: TContextMenu.h:44
void SetRefreshFlag(Bool_t flag)
Definition: TBrowser.h:101
unsigned int UInt_t
Definition: RtypesCore.h:42
virtual Long_t ExecPlugin(const char *, const char *, const char *, Int_t, Int_t)
Definition: TBrowserImp.h:64
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:81
void RemoveCheckBox(TObject *obj)
Remove checkbox for this item.
Definition: TBrowser.cxx:312
long Long_t
Definition: RtypesCore.h:50
Double_t y[n]
Definition: legend1.C:17
virtual void StartEmbedding(Int_t, Int_t)
Definition: TBrowserImp.h:66
virtual void Show()
Definition: TBrowserImp.h:60
#define name(a, b)
Definition: linkTestLib0.cpp:5
Mother of all ROOT objects.
Definition: TObject.h:58
void StopEmbedding(const char *name="")
Definition: TBrowser.h:120
virtual void Destructor()
Actual browser destructor.
Definition: TBrowser.cxx:244
void Show()
Definition: TBrowser.h:106
void BrowseObject(TObject *obj)
Definition: TBrowser.h:94
void Iconify()
Definition: TBrowser.h:102
TBrowserImp * fImp
Definition: TBrowser.h:50
TContextMenu * fContextMenu
Browser's timer.
Definition: TBrowser.h:52
TObject * obj
TContextMenu * GetContextMenu() const
Definition: TBrowser.h:98
void Refresh()
Refresh browser contents.
Definition: TBrowser.cxx:375
void SetDrawOption(Option_t *option="")
Set drawing option for object.
Definition: TBrowser.h:107
virtual void RecursiveRemove(TObject *obj)
Recursively remove obj from browser.
Definition: TBrowser.cxx:364
ABC describing GUI independent browser implementation protocol.
Definition: TBrowserImp.h:31