32 #include "RConfigure.h"
56 static struct AddPseudoGlobals {
72 if (rootlocal && rootlocal->
IsBatch()) {
113 return fClient->HandleInput();
135 Error(
"TGClient",
"only one instance of TGClient allowed");
144 if ((fXfd =
gVirtualX->OpenDisplay(dpyName)) < 0) {
145 Error(
"TGClient",
"can't open display \"%s\", switching to batch mode...\n In case you run from a remote ssh session, reconnect with ssh -Y",
152 TGInputHandler *xi =
new TGInputHandler(
this, fXfd);
171 fDefaultRoot = fRoot =
new TGFrame(
this,
gVirtualX->GetDefaultRootWindow());
182 fGlobalNeedRedraw =
kFALSE;
184 fWaitForWindow =
kNone;
189 fPicturePool = fResourcePool->GetPicturePool();
190 fGCPool = fResourcePool->GetGCPool();
191 fFontPool = fResourcePool->GetFontPool();
193 fMimeTypeList = fResourcePool->GetMimeTypes();
194 fDefaultColormap = fResourcePool->GetDefaultColormap();
198 fWhite = fResourcePool->GetWhiteColor();
199 fBlack = fResourcePool->GetBlackColor();
200 fBackColor = fResourcePool->GetFrameBgndColor();
201 fForeColor = fResourcePool->GetFrameFgndColor();
204 fSelForeColor = fResourcePool->GetSelectedFgndColor();
205 fSelBackColor = fResourcePool->GetSelectedBgndColor();
214 gClientGlobal =
this;
253 if (style && strstr(style,
"modern"))
377 w->fNeedRedraw =
kTRUE;
401 Error(
"GetColorByName",
"couldn't parse color %s", name);
404 Warning(
"GetColorByName",
"couldn't retrieve color %s.\n"
405 "Please close any other application, like netscape, "
406 "that might exhaust\nthe colormap and start ROOT again", name);
424 if (
gROOT->IsBatch())
429 if (!font && fixedDefault) {
430 font =
gVirtualX->LoadQueryFont(
"fixed");
432 Warning(
"GetFontByName",
"couldn't retrieve font %s, using \"fixed\"", name);
436 Error(
"GetFontByName",
"couldn't retrieve font %s nor backup font \"fixed\"", name);
438 Warning(
"GetFontByName",
"couldn't retrieve font %s", name);
454 color.
fPixel = base_color;
469 Error(
"GetHilite",
"couldn't allocate hilight color");
485 color.
fPixel = base_color;
493 Error(
"GetShadow",
"couldn't allocate shadow color");
607 while ((obj =
next())) {
699 handledevent =
kTRUE;
868 if ((ptr->
fId == wid) ||
885 if ((ptr->
fId == pop->
fId) &&
917 snprintf(s,
sizeof(s),
"%ld", msg);
920 snprintf(s,
sizeof(s),
"%ld", parm1);
923 snprintf(s,
sizeof(s),
"%ld", parm2);
955 Emit(
"ProcessedEvent(Event_t*, Window_t)", args);
964 Emit(
"RegisteredWindow(Window_t)", w);
void ProcessedEvent(Event_t *event, Window_t wid)
Emits a signal when an event has been processed.
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
Bool_t HandleEvent(Event_t *event)
Handle a GUI event.
ROOT top level object description.
virtual Bool_t Notify()
Notify when event occurred on descriptor associated with this handler.
TGPicturePool * fPicturePool
void SetRoot(TGWindow *root=0)
Sets the current root (i.e.
virtual ~TGClient()
Closing down client: cleanup and close X connection.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
TObject * FindObject(const char *name) const
Find object using its name.
void RemoveIdleHandler(TGIdleHandler *h)
Remove handler for idle events.
Pixel_t GetHilite(Pixel_t base_color) const
Return pixel value of hilite color based on base_color.
TString & ReplaceAll(const TString &s1, const TString &s2)
const TGWindow * GetRoot() const
Returns current root (i.e.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
void TriggerDictionaryInitialization_libGui()
void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
virtual Bool_t HandleEvent()
Handle the idle event.
R__EXTERN Atom_t gWM_DELETE_WINDOW
Short_t Min(Short_t a, Short_t b)
Pixel_t GetShadow(Pixel_t base_color) const
Return pixel value of shadow color based on base_color.
UInt_t GetDisplayWidth() const
Get display width.
ClassImp(TGClient) TGClient
Create a connection with the display sever on host dpyName and setup the complete GUI system...
R__EXTERN TApplication * gApplication
TGWindow * GetWindowByName(const char *name) const
Find a TGWindow via its name (unique name used in TGWindow::SavePrimitive).
TObject * Next()
Return next object in the list. Returns 0 when no more objects in list.
static TGClientInit gClientInit
Bool_t GetColorByName(const char *name, Pixel_t &pixel) const
Get a color by name.
void WaitForUnmap(TGWindow *w)
Wait for window to be unmapped.
void CancelRedraw(TGWindow *w)
void UnregisterWindow(TGWindow *w)
Remove a TGWindow from the list of windows.
static ARGB32 GetShadow(ARGB32 background)
Calculate shadow color.
Bool_t ProcessIdleEvent()
Process one idle event.
const char * Data() const
void RegisterPopup(TGWindow *w)
Add a popup menu to the list of popups.
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
void RegisterWindow(TGWindow *w)
Add a TGWindow to the clients list of windows.
void FreePicture(const TGPicture *pic)
Free picture resource.
void ProcessLine(TString cmd, Long_t msg, Long_t parm1, Long_t parm2)
Execute string "cmd" via the interpreter.
R__EXTERN TFileHandler * gXDisplay
void SetStyle(UInt_t newstyle)
virtual Bool_t HandleEvent(Event_t *)=0
virtual void SetDisplay()
Set DISPLAY environment variable based on utmp entry. Only for UNIX.
void FreePicture(const TGPicture *pic)
Remove picture from cache if nobody is using it anymore.
Bool_t DoRedraw()
Redraw all windows that need redrawing.
void FreeGC(const TGGC *gc)
Free a graphics context.
void RegisteredWindow(Window_t w)
Emits a signal when a Window has been registered in TGClient.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void Error(const char *location, const char *msgfmt,...)
void Emit(const char *signal)
Acitvate signal without args.
void WaitFor(TGWindow *w)
Wait for window to be destroyed.
void FreeColor(Pixel_t color) const
Free color.
R__EXTERN TROOT * gROOTLocal
virtual UInt_t GetEditDisabled() const
void FreeFont(const TGFont *font)
Free a font.
TGResourcePool * fResourcePool
static void NeedGraphicsLibs()
Static method.
void FreeFont(const TGFont *font)
Free font. If ref count is 0 delete font.
R__EXTERN TSystem * gSystem
Bool_t HandleMaskEvent(Event_t *event, Window_t wid)
Handle masked events only if window wid is the window for which the event was reported or if wid is a...
static TGClient * gClientGlobal
UInt_t GetDisplayHeight() const
Get display height.
void RemoveUnknownWindowHandler(TGUnknownWindowHandler *h)
Remove handler for unknown (i.e. unregistered) windows.
virtual Int_t GetValue(const char *name, Int_t dflt)
Returns the integer value for a resource.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
void AddUnknownWindowHandler(TGUnknownWindowHandler *h)
Add handler for unknown (i.e. unregistered) windows.
TObject * Remove(TObject *obj)
Remove object from the list.
TObject * GetObject() const
Bool_t ProcessOneEvent()
Process one event.
const TGPicture * GetPicture(const char *name)
Get a picture from the picture pool.
static TGClient * Instance()
Returns global gClient (initialize graphics first, if not already done)
Bool_t HandleInput()
Handles input from the display server.
virtual TObjLink * FirstLink() const
TGWindow * GetWindowById(Window_t sw) const
Find a TGWindow via its handle. If window is not found return 0.
Bool_t IsEditDisabled() const
Returns kTRUE if edit/guibuilding is forbidden.
TGGC * GetGC(GCValues_t *values, Bool_t rw=kFALSE)
Get graphics context from the gc pool.
void InitializeGraphics()
Initialize the graphics environment.
TGFont * GetFont(const char *font, Bool_t fixedDefault=kTRUE)
Get the specified font.
static void Add(TGlobalMappedFunction *gmf)
const TGWindow * GetDefaultRoot() const
Returns the root (i.e.
virtual Int_t GetSize() const
void ResetWaitFor(TGWindow *w)
reset waiting
virtual const char * GetName() const
Returns name of object.
virtual Bool_t HandleEvent(Event_t *)
Wrapper around a TObject so it can be stored in a TList.
const TGPicture * GetPicture(const char *name)
Get picture from the picture pool.
static ARGB32 GetHilite(ARGB32 background)
Calculate highlite color.
void AddIdleHandler(TGIdleHandler *h)
Add handler for idle events.
Mother of all ROOT objects.
R__EXTERN Atom_t gMOTIF_WM_HINTS
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
virtual void SetEditDisabled(UInt_t on=kEditDisable)
virtual void Add(TObject *obj)
Short_t Max(Short_t a, Short_t b)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Bool_t ProcessEventsFor(TGWindow *w)
Like gSystem->ProcessEvents() but then only allow events for w to be processed.
FontStruct_t GetFontByName(const char *name, Bool_t fixedDefault=kTRUE) const
Get a font by name.
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
EGEventType fWaitForEvent
virtual void AddFileHandler(TFileHandler *fh)
Add a file handler to the list of system file handlers.
Colormap_t fDefaultColormap
void SetEditDisabled(Bool_t on=kTRUE)
If on is kTRUE editting/guibuilding is forbidden.
void UnregisterPopup(TGWindow *w)
Remove a popup menu from the list of popups.
TGFont * GetFont(const char *font, Bool_t fixedDefault=kTRUE)
Get a font from the font pool.
R__EXTERN Atom_t gROOT_MESSAGE
void FreeGC(const TGGC *gc)
Delete graphics context if it is not used anymore.
TGGC * GetGC(GCValues_t *values, Bool_t rw=kFALSE)
Get the best matching graphics context depending on values.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.