ROOT logo
// @(#)root/base:$Id: TGuiFactory.h 20877 2007-11-19 11:17:07Z rdm $
// 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.            //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TNamed
#include "TNamed.h"
#endif

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
 TGuiFactory.h:1
 TGuiFactory.h:2
 TGuiFactory.h:3
 TGuiFactory.h:4
 TGuiFactory.h:5
 TGuiFactory.h:6
 TGuiFactory.h:7
 TGuiFactory.h:8
 TGuiFactory.h:9
 TGuiFactory.h:10
 TGuiFactory.h:11
 TGuiFactory.h:12
 TGuiFactory.h:13
 TGuiFactory.h:14
 TGuiFactory.h:15
 TGuiFactory.h:16
 TGuiFactory.h:17
 TGuiFactory.h:18
 TGuiFactory.h:19
 TGuiFactory.h:20
 TGuiFactory.h:21
 TGuiFactory.h:22
 TGuiFactory.h:23
 TGuiFactory.h:24
 TGuiFactory.h:25
 TGuiFactory.h:26
 TGuiFactory.h:27
 TGuiFactory.h:28
 TGuiFactory.h:29
 TGuiFactory.h:30
 TGuiFactory.h:31
 TGuiFactory.h:32
 TGuiFactory.h:33
 TGuiFactory.h:34
 TGuiFactory.h:35
 TGuiFactory.h:36
 TGuiFactory.h:37
 TGuiFactory.h:38
 TGuiFactory.h:39
 TGuiFactory.h:40
 TGuiFactory.h:41
 TGuiFactory.h:42
 TGuiFactory.h:43
 TGuiFactory.h:44
 TGuiFactory.h:45
 TGuiFactory.h:46
 TGuiFactory.h:47
 TGuiFactory.h:48
 TGuiFactory.h:49
 TGuiFactory.h:50
 TGuiFactory.h:51
 TGuiFactory.h:52
 TGuiFactory.h:53
 TGuiFactory.h:54
 TGuiFactory.h:55
 TGuiFactory.h:56
 TGuiFactory.h:57
 TGuiFactory.h:58
 TGuiFactory.h:59
 TGuiFactory.h:60
 TGuiFactory.h:61
 TGuiFactory.h:62
 TGuiFactory.h:63
 TGuiFactory.h:64
 TGuiFactory.h:65
 TGuiFactory.h:66
 TGuiFactory.h:67
 TGuiFactory.h:68
 TGuiFactory.h:69
 TGuiFactory.h:70
 TGuiFactory.h:71