Logo ROOT  
Reference Guide
TGuiFactory.cxx
Go to the documentation of this file.
1// @(#)root/base:$Id$
2// Author: Fons Rademakers 15/11/95
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12/** \class TGuiFactory
13\ingroup Base
14
15This ABC is a factory for GUI components. Depending on which
16factory is active one gets either ROOT native (X11 based with Win95
17look and feel), Win32 or Mac components.
18
19In case there is no platform dependent implementation on can run in
20batch mode directly using an instance of this base class.
21*/
22
23#include "TGuiFactory.h"
24#include "TApplicationImp.h"
25#include "TCanvasImp.h"
26#include "TBrowserImp.h"
27#include "TContextMenuImp.h"
28#include "TControlBarImp.h"
29#include "TInspectorImp.h"
30#include "TROOT.h"
31#include "TEnv.h"
32#include "TPluginManager.h"
33
36
38
39////////////////////////////////////////////////////////////////////////////////
40/// TGuiFactory ctor only called by derived classes.
41
42TGuiFactory::TGuiFactory(const char *name, const char *title)
43 : TNamed(name, title)
44{
45}
46
47////////////////////////////////////////////////////////////////////////////////
48/// Create a batch version of TApplicationImp.
49
50TApplicationImp *TGuiFactory::CreateApplicationImp(const char *classname, int *argc, char **argv)
51{
52 return new TApplicationImp(classname, argc, argv);
53}
54
55////////////////////////////////////////////////////////////////////////////////
56/// Create a batch version of TCanvasImp.
57
59{
60 return new TCanvasImp(c, title, width, height);
61}
62
63////////////////////////////////////////////////////////////////////////////////
64/// Create a batch version of TCanvasImp.
65
67{
68 return new TCanvasImp(c, title, x, y, width, height);
69}
70
71////////////////////////////////////////////////////////////////////////////////
72/// Create a batch version of TBrowserImp.
73
75{
76 TString webclass = "ROOT::Experimental::RWebBrowserImp";
77 if ((gROOT->GetWebDisplay() == "server") && (webclass == gEnv->GetValue("Browser.Name", "---"))) {
78 TPluginHandler *ph = gROOT->GetPluginManager()->FindHandler("TBrowserImp", webclass);
79
80 if (ph && ph->LoadPlugin() != -1) {
81 TBrowserImp *imp = (TBrowserImp *)ph->ExecPlugin(5, b, title, width, height, opt);
82 if (imp) return imp;
83 }
84 }
85
86 return new TBrowserImp(b, title, width, height);
87}
88
89////////////////////////////////////////////////////////////////////////////////
90/// Create a batch version of TBrowserImp.
91
93{
94 TString webclass = "ROOT::Experimental::RWebBrowserImp";
95 if ((gROOT->GetWebDisplay() == "server") && (webclass == gEnv->GetValue("Browser.Name", "---"))) {
96 TPluginHandler *ph = gROOT->GetPluginManager()->FindHandler("TBrowserImp", webclass);
97
98 if (ph && ph->LoadPlugin() != -1) {
99 TBrowserImp *imp = (TBrowserImp *)ph->ExecPlugin(7, b, title, x, y, width, height, opt);
100 if (imp) return imp;
101 }
102 }
103
104 return new TBrowserImp(b, title, x, y, width, height);
105}
106
107////////////////////////////////////////////////////////////////////////////////
108/// Create a batch version of TContextMenuImp.
109
111{
112 return new TContextMenuImp(c);
113}
114
115////////////////////////////////////////////////////////////////////////////////
116/// Create a batch version of TControlBarImp.
117
119{
120 return new TControlBarImp(c, title);
121}
122
123////////////////////////////////////////////////////////////////////////////////
124/// Create a batch version of TControlBarImp.
125
127{
128 return new TControlBarImp(c, title, x, y);
129}
130
131////////////////////////////////////////////////////////////////////////////////
132/// Create a batch version of TInspectorImp.
133
135{
136 if (gROOT->IsBatch())
137 return new TInspectorImp(obj, width, height);
138
139 gROOT->ProcessLine(TString::Format("TInspectCanvas::Inspector((TObject*)0x%zx);", (size_t)obj).Data());
140 return nullptr;
141}
#define c(i)
Definition: RSha256.hxx:101
const char Option_t
Definition: RtypesCore.h:66
#define ClassImp(name)
Definition: Rtypes.h:375
R__EXTERN TEnv * gEnv
Definition: TEnv.h:170
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t b
Option_t Option_t width
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
char name[80]
Definition: TGX11.cxx:110
TGuiFactory * gGuiFactory
Definition: TGuiFactory.cxx:34
TGuiFactory * gBatchGuiFactory
Definition: TGuiFactory.cxx:35
#define gROOT
Definition: TROOT.h:404
ABC describing GUI independent application implementation protocol.
ABC describing GUI independent browser implementation protocol.
Definition: TBrowserImp.h:29
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
ABC describing GUI independent main window (with menubar, scrollbars and a drawing area).
Definition: TCanvasImp.h:30
The Canvas class.
Definition: TCanvas.h:23
This class provides an interface to GUI independent context sensitive popup menus.
This class provides an interface to context sensitive popup menus.
Definition: TContextMenu.h:44
ABC describing GUI independent control bar.
A Control Bar is a fully user configurable tool which provides fast access to frequently used operati...
Definition: TControlBar.h:26
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
Definition: TEnv.cxx:491
This ABC is a factory for GUI components.
Definition: TGuiFactory.h:42
virtual TApplicationImp * CreateApplicationImp(const char *classname, int *argc, char **argv)
Create a batch version of TApplicationImp.
Definition: TGuiFactory.cxx:50
TGuiFactory(const char *name="Batch", const char *title="Batch GUI Factory")
TGuiFactory ctor only called by derived classes.
Definition: TGuiFactory.cxx:42
virtual TContextMenuImp * CreateContextMenuImp(TContextMenu *c, const char *name, const char *title)
Create a batch version of TContextMenuImp.
virtual TInspectorImp * CreateInspectorImp(const TObject *obj, UInt_t width, UInt_t height)
Create a batch version of TInspectorImp.
virtual TBrowserImp * CreateBrowserImp(TBrowser *b, const char *title, UInt_t width, UInt_t height, Option_t *opt="")
Create a batch version of TBrowserImp.
Definition: TGuiFactory.cxx:74
virtual TCanvasImp * CreateCanvasImp(TCanvas *c, const char *title, UInt_t width, UInt_t height)
Create a batch version of TCanvasImp.
Definition: TGuiFactory.cxx:58
virtual TControlBarImp * CreateControlBarImp(TControlBar *c, const char *title)
Create a batch version of TControlBarImp.
ABC describing GUI independent object inspector (abstraction mainly needed for Win32.
Definition: TInspectorImp.h:30
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
Mother of all ROOT objects.
Definition: TObject.h:41
Longptr_t ExecPlugin(int nargs, const T &... params)
Int_t LoadPlugin()
Load the plugin library for this handler.
Basic string class.
Definition: TString.h:136
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Definition: TString.cxx:2345
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17