TGuiFactory.h

Go to the documentation of this file.
00001 // @(#)root/base:$Id: TGuiFactory.h 20877 2007-11-19 11:17:07Z rdm $
00002 // Author: Fons Rademakers   15/11/95
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 
00013 #ifndef ROOT_TGuiFactory
00014 #define ROOT_TGuiFactory
00015 
00016 //////////////////////////////////////////////////////////////////////////
00017 //                                                                      //
00018 // TGuiFactory                                                          //
00019 //                                                                      //
00020 // This ABC is a factory for GUI components. Depending on which         //
00021 // factory is active one gets either ROOT native (X11 based with Win95  //
00022 // look and feel), Win32 or Mac components.                             //
00023 // In case there is no platform dependent implementation on can run in  //
00024 // batch mode directly using an instance of this base class.            //
00025 //                                                                      //
00026 //////////////////////////////////////////////////////////////////////////
00027 
00028 #ifndef ROOT_TNamed
00029 #include "TNamed.h"
00030 #endif
00031 
00032 class TApplicationImp;
00033 class TCanvasImp;
00034 class TCanvas;
00035 class TBrowserImp;
00036 class TBrowser;
00037 class TContextMenuImp;
00038 class TContextMenu;
00039 class TControlBarImp;
00040 class TControlBar;
00041 class TInspectorImp;
00042 
00043 
00044 class TGuiFactory : public TNamed {
00045 
00046 public:
00047    TGuiFactory(const char *name = "Batch", const char *title = "Batch GUI Factory");
00048    virtual ~TGuiFactory() { }
00049 
00050    virtual TApplicationImp *CreateApplicationImp(const char *classname, int *argc, char **argv);
00051 
00052    virtual TCanvasImp *CreateCanvasImp(TCanvas *c, const char *title, UInt_t width, UInt_t height);
00053    virtual TCanvasImp *CreateCanvasImp(TCanvas *c, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height);
00054 
00055    virtual TBrowserImp *CreateBrowserImp(TBrowser *b, const char *title, UInt_t width, UInt_t height, Option_t *opt="");
00056    virtual TBrowserImp *CreateBrowserImp(TBrowser *b, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height, Option_t *opt="");
00057 
00058    virtual TContextMenuImp *CreateContextMenuImp(TContextMenu *c, const char *name, const char *title);
00059 
00060    virtual TControlBarImp *CreateControlBarImp(TControlBar *c, const char *title);
00061    virtual TControlBarImp *CreateControlBarImp(TControlBar *c, const char *title, Int_t x, Int_t y);
00062 
00063    virtual TInspectorImp *CreateInspectorImp(const TObject *obj, UInt_t width, UInt_t height);
00064 
00065    ClassDef(TGuiFactory,0)  //Abstract factory for GUI components
00066 };
00067 
00068 R__EXTERN TGuiFactory *gGuiFactory;
00069 R__EXTERN TGuiFactory *gBatchGuiFactory;
00070 
00071 #endif

Generated on Tue Jul 5 14:10:27 2011 for ROOT_528-00b_version by  doxygen 1.5.1