Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:11:33

0001 // @(#)root/base:$Id$
0002 // Author: Fons Rademakers   15/11/95
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2021, 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 
0013 #ifndef ROOT_TBrowserImp
0014 #define ROOT_TBrowserImp
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TBrowserImp                                                          //
0019 //                                                                      //
0020 // ABC describing GUI independent browser implementation protocol.      //
0021 //                                                                      //
0022 //////////////////////////////////////////////////////////////////////////
0023 
0024 #include "TObject.h"
0025 
0026 class TBrowser;
0027 class TGMainFrame;
0028 
0029 class TBrowserImp {
0030 
0031 protected:
0032    TBrowser  *fBrowser{nullptr};     ///< TBrowser associated with this implementation
0033    Bool_t     fShowCycles{kFALSE};   ///< Show object cycle numbers in browser
0034 
0035    TBrowserImp(const TBrowserImp&) = delete;
0036    TBrowserImp &operator=(const TBrowserImp& br) = delete;
0037 
0038 public:
0039    TBrowserImp(TBrowser *b = nullptr);
0040    TBrowserImp(TBrowser *b, const char *title, UInt_t width, UInt_t height, Option_t *opt = "");
0041    TBrowserImp(TBrowser *b, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height, Option_t *opt = "");
0042    virtual ~TBrowserImp() = default;
0043 
0044    virtual void      Add(TObject *, const char *, Int_t) { }
0045    virtual void      AddCheckBox(TObject *, Bool_t = kFALSE) { }
0046    virtual void      CheckObjectItem(TObject *, Bool_t = kFALSE) { }
0047    virtual void      RemoveCheckBox(TObject *) { }
0048    virtual void      BrowseObj(TObject *) { }
0049    TBrowser         *Browser() const { return fBrowser; }
0050    virtual void      CloseTabs() { }
0051    virtual void      ExecuteDefaultAction(TObject *) { }
0052    virtual void      Iconify() { }
0053    virtual void      RecursiveRemove(TObject *) { }
0054    virtual void      Refresh(Bool_t = kFALSE) { }
0055    virtual void      Show() { }
0056    virtual void      SetDrawOption(Option_t * = "") { }
0057    virtual Option_t *GetDrawOption() const { return nullptr; }
0058 
0059    virtual Longptr_t ExecPlugin(const char *, const char *, const char *, Int_t, Int_t) { return 0; }
0060    virtual void      SetStatusText(const char *, Int_t) { }
0061    virtual void      StartEmbedding(Int_t, Int_t) { }
0062    virtual void      StopEmbedding(const char *) { }
0063 
0064    virtual TGMainFrame *GetMainFrame() const { return nullptr; }
0065 
0066    virtual TBrowser *GetBrowser() const      { return fBrowser; }
0067    virtual void      SetBrowser(TBrowser *b) { fBrowser = b; }
0068 
0069    ClassDef(TBrowserImp,0)  //ABC describing browser implementation protocol
0070 };
0071 
0072 #endif