Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TGuiFactory.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/base:$Id$
0002 // Author: Fons Rademakers   15/11/95
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, 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_TGuiFactory
0014 #define ROOT_TGuiFactory
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TGuiFactory                                                          //
0019 //                                                                      //
0020 // This ABC is a factory for GUI components. Depending on which         //
0021 // factory is active one gets either ROOT native (X11 based with Win95  //
0022 // look and feel), Win32 or Mac components.                             //
0023 // In case there is no platform dependent implementation on can run in  //
0024 // batch mode directly using an instance of this base class.            //
0025 //                                                                      //
0026 //////////////////////////////////////////////////////////////////////////
0027 
0028 #include "TNamed.h"
0029 
0030 class TApplicationImp;
0031 class TCanvasImp;
0032 class TCanvas;
0033 class TBrowserImp;
0034 class TBrowser;
0035 class TContextMenuImp;
0036 class TContextMenu;
0037 class TControlBarImp;
0038 class TControlBar;
0039 class TInspectorImp;
0040 
0041 
0042 class TGuiFactory : public TNamed {
0043 
0044 public:
0045    TGuiFactory(const char *name = "Batch", const char *title = "Batch GUI Factory");
0046    virtual ~TGuiFactory() { }
0047 
0048    virtual TApplicationImp *CreateApplicationImp(const char *classname, int *argc, char **argv);
0049 
0050    virtual TCanvasImp *CreateCanvasImp(TCanvas *c, const char *title, UInt_t width, UInt_t height);
0051    virtual TCanvasImp *CreateCanvasImp(TCanvas *c, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height);
0052 
0053    virtual TBrowserImp *CreateBrowserImp(TBrowser *b, const char *title, UInt_t width, UInt_t height, Option_t *opt="");
0054    virtual TBrowserImp *CreateBrowserImp(TBrowser *b, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height, Option_t *opt="");
0055 
0056    virtual TContextMenuImp *CreateContextMenuImp(TContextMenu *c, const char *name, const char *title);
0057 
0058    virtual TControlBarImp *CreateControlBarImp(TControlBar *c, const char *title);
0059    virtual TControlBarImp *CreateControlBarImp(TControlBar *c, const char *title, Int_t x, Int_t y);
0060 
0061    virtual TInspectorImp *CreateInspectorImp(const TObject *obj, UInt_t width, UInt_t height);
0062 
0063    ClassDefOverride(TGuiFactory,0)  //Abstract factory for GUI components
0064 };
0065 
0066 R__EXTERN TGuiFactory *gGuiFactory;
0067 R__EXTERN TGuiFactory *gBatchGuiFactory;
0068 
0069 #endif