// @(#)root/base:$Id$ // Author: Fons Rademakers 15/11/95 /************************************************************************* * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef ROOT_TGuiFactory #define ROOT_TGuiFactory ////////////////////////////////////////////////////////////////////////// // // // TGuiFactory // // // // This ABC is a factory for GUI components. Depending on which // // factory is active one gets either ROOT native (X11 based with Win95 // // look and feel), Win32 or Mac components. // // In case there is no platform dependent implementation on can run in // // batch mode directly using an instance of this base class. // // // ////////////////////////////////////////////////////////////////////////// #include "TNamed.h" class TApplicationImp; class TCanvasImp; class TCanvas; class TBrowserImp; class TBrowser; class TContextMenuImp; class TContextMenu; class TControlBarImp; class TControlBar; class TInspectorImp; class TGuiFactory : public TNamed { public: TGuiFactory(const char *name = "Batch", const char *title = "Batch GUI Factory"); virtual ~TGuiFactory() { } virtual TApplicationImp *CreateApplicationImp(const char *classname, int *argc, char **argv); virtual TCanvasImp *CreateCanvasImp(TCanvas *c, const char *title, UInt_t width, UInt_t height); virtual TCanvasImp *CreateCanvasImp(TCanvas *c, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height); virtual TBrowserImp *CreateBrowserImp(TBrowser *b, const char *title, UInt_t width, UInt_t height, Option_t *opt=""); virtual TBrowserImp *CreateBrowserImp(TBrowser *b, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height, Option_t *opt=""); virtual TContextMenuImp *CreateContextMenuImp(TContextMenu *c, const char *name, const char *title); virtual TControlBarImp *CreateControlBarImp(TControlBar *c, const char *title); virtual TControlBarImp *CreateControlBarImp(TControlBar *c, const char *title, Int_t x, Int_t y); virtual TInspectorImp *CreateInspectorImp(const TObject *obj, UInt_t width, UInt_t height); ClassDef(TGuiFactory,0) //Abstract factory for GUI components }; R__EXTERN TGuiFactory *gGuiFactory; R__EXTERN TGuiFactory *gBatchGuiFactory; #endif