Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TBrowserImp.h
Go to the documentation of this file.
1 // @(#)root/base:$Id$
2 // Author: Fons Rademakers 15/11/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_TBrowserImp
14 #define ROOT_TBrowserImp
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TBrowserImp //
19 // //
20 // ABC describing GUI independent browser implementation protocol. //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #include "TObject.h"
25 
26 class TBrowser;
27 class TGMainFrame;
28 
29 class TBrowserImp {
30 
31 protected:
32  TBrowser *fBrowser; //TBrowser associated with this implementation
33  Bool_t fShowCycles; //Show object cycle numbers in browser
34 
35  TBrowserImp(const TBrowserImp& br)
36  : fBrowser(br.fBrowser), fShowCycles(br.fShowCycles) { }
37  TBrowserImp& operator=(const TBrowserImp& br)
38  {if(this!=&br) {fBrowser=br.fBrowser; fShowCycles=br.fShowCycles;}
39  return *this;}
40 
41 public:
42  TBrowserImp(TBrowser *b=nullptr) : fBrowser(b), fShowCycles(kFALSE) { }
43  TBrowserImp(TBrowser *b, const char *title, UInt_t width, UInt_t height, Option_t *opt = "");
44  TBrowserImp(TBrowser *b, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height, Option_t *opt = "");
45  virtual ~TBrowserImp() { }
46 
47  virtual void Add(TObject *, const char *, Int_t) { }
48  virtual void AddCheckBox(TObject *, Bool_t = kFALSE) { }
49  virtual void CheckObjectItem(TObject *, Bool_t = kFALSE) { }
50  virtual void RemoveCheckBox(TObject *) { }
51  virtual void BrowseObj(TObject *) { }
52  TBrowser *Browser() const { return fBrowser; }
53  virtual void CloseTabs() { }
54  virtual void ExecuteDefaultAction(TObject *) { }
55  virtual void Iconify() { }
56  virtual void RecursiveRemove(TObject *) { }
57  virtual void Refresh(Bool_t = kFALSE) { }
58  virtual void Show() { }
59  virtual void SetDrawOption(Option_t *option="");
60  virtual Option_t *GetDrawOption() const { return nullptr; }
61 
62  virtual Long_t ExecPlugin(const char *, const char *, const char *, Int_t, Int_t) { return 0; }
63  virtual void SetStatusText(const char *, Int_t) { }
64  virtual void StartEmbedding(Int_t, Int_t) { }
65  virtual void StopEmbedding(const char *) { }
66 
67  virtual TGMainFrame *GetMainFrame() const { return 0; }
68 
69  virtual TBrowser *GetBrowser() const { return fBrowser; }
70  virtual void SetBrowser(TBrowser *b) { fBrowser = b; }
71 
72  ClassDef(TBrowserImp,0) //ABC describing browser implementation protocol
73 };
74 
75 inline TBrowserImp::TBrowserImp(TBrowser *, const char *, UInt_t, UInt_t, Option_t *)
76  : fBrowser(0), fShowCycles(kFALSE) { }
77 inline TBrowserImp::TBrowserImp(TBrowser *, const char *, Int_t, Int_t, UInt_t, UInt_t, Option_t *)
78  : fBrowser(0), fShowCycles(kFALSE) { }
79 
80 #endif