53#include "RConfigure.h"
112 if (p && p !=
gClient->GetDefaultRoot())
159 fSortButton->SetToolTipText(
"Sort Alphabetically\n(Current folder only)");
162 fSortButton->Connect(
"Clicked()",
"TGFileBrowser",
this,
"ToggleSort()");
169 fFilterButton->Connect(
"Clicked()",
"TGFileBrowser",
this,
"RequestFilter()");
176 fRefreshButton->Connect(
"Clicked()",
"TGFileBrowser",
this,
"Refresh()");
184 fListTree->Connect(
"DoubleClicked(TGListTreeItem *, Int_t)",
185 "TGFileBrowser",
this,
"DoubleClicked(TGListTreeItem *, Int_t)");
186 fListTree->Connect(
"Clicked(TGListTreeItem *, Int_t, Int_t, Int_t)",
187 "TGFileBrowser",
this,
"Clicked(TGListTreeItem *, Int_t, Int_t, Int_t)");
188 fListTree->Connect(
"Checked(TObject*, Bool_t)",
"TGFileBrowser",
189 this,
"Checked(TObject*, Bool_t)");
200 fFileType->AddEntry(
" All Files (*.*)", ftype++);
201 fFileType->AddEntry(
" C/C++ Files (*.c;*.cxx;*.h;...)", ftype++);
202 fFileType->AddEntry(
" ROOT Files (*.root)", ftype++);
203 fFileType->AddEntry(
" Text Files (*.txt)", ftype++);
207 fFileType->Connect(
"Selected(Int_t)",
"TGFileBrowser",
this,
208 "ApplyFilter(Int_t)");
209 fFileType->GetTextEntry()->Connect(
"ReturnPressed()",
"TGFileBrowser",
210 this,
"ApplyFilter(Int_t = -1)");
226 TString gv =
gEnv->GetValue(
"Browser.GroupView",
"1000");
231 if (
gEnv->GetValue(
"Browser.ShowHidden", 0))
240 "TGFileBrowser",
this,
"Selected(char*)");
243 "TGFileBrowser",
this,
"PadModified()");
305 if (maxlen > 0 && infos.
Length() > maxlen) {
312 objsize = objinfo.
Atoll();
315 bsize = fsize = objsize;
348 !strcmp(
fListLevel->GetParent()->GetText(),
"root")) {
367 const char *filter = it->second.c_str();
491 if (volumes && curvol) {
492 const char *curdrive;
500 while ((drive = (
TNamed *)next())) {
502 (strcmp(drive->
GetName(), curdrive) == 0) ?
503 "SetRootDir" :
"Add");
512 if (
gROOT->GetListOfFiles() && !
gROOT->GetListOfFiles()->IsEmpty())
542 const char *ext =
name ? strrchr(
name,
'.') : 0;
546 if (ext && cached_spic && (cached_ext == ext)) {
566 *pic =
gClient->GetPicture(
"doc_t.xpm");
569 *pic =
gClient->GetPicture(
"app_t.xpm");
572 *pic =
gClient->GetPicture(
"folder_t.xpm");
575 *pic =
gClient->GetPicture(
"rootdb_t.xpm");
580 *pic =
gClient->GetPicture(
"slink_t.xpm");
596 item =
fListTree->FindChildByData(itm, obj);
606 item =
fListTree->FindItemByObj(itm, obj);
609 item->SetUserData(0);
634 UInt_t curr =
gROOT->GetListOfBrowsables()->GetSize();
635 if (!prev) prev = curr;
652 Long_t id = 0, flags = 0, modtime = 0;
673 if (strlen(path) > 1) {
677 if ((res == 0) && (flags & 2)) {
693 flags =
id =
size = modtime = 0;
694 if (
gSystem->GetPathInfo(actpath.
Data(), &
id, &
size, &flags, &modtime) == 0) {
701 fListTree->GetPathnameFromItem(itm, path);
702 if (strlen(path) > 1) {
738 if ((opt == 0) || (!opt[0])) {
743 if (strstr(opt,
"SetRootDir")) {
744 if (!
fListTree->FindChildByName(0, entry))
747 else if (strstr(opt,
"Add")) {
752 if (!
fListTree->FindChildByName(0, entry))
785 if (itm == 0)
return;
787 if ((
fCnt == 0) || (olditem != itm)) {
788 olditem = item = itm;
794 if (
fListTree->FindItemByObj(where, obj))
833 if ((
id > 1) && (
id < 5))
835 else if ((
id < 0) || (
id > 4)) {
897 else if (!strcmp(item->
GetText(),
"ROOT Files")) {
900 gApplication->ProcessLine(
"((TApplicationServer *)gApplication)->BrowseFile(0);");
911 if (topobj && topobj->
InheritsFrom(
"TApplicationRemote")) {
925 Getlinem(kInit,
"\nroot [0]");
932 Getlinem(kInit,
"\nroot [0]");
951 filter = it->second.c_str();
961 filter.
Prepend(
"Showing only \'");
1003 Long_t id = 0, flags = 0, modtime = 0;
1016 const char *clname = ((
TKey *)obj)->GetClassName();
1017 if (clname && strcmp(clname,
"TGeoManager")) {
1043 fListTree->GetPathnameFromItem(item, path);
1044 if (strlen(path) > 3) {
1045 if (
gSystem->GetPathInfo(fullpath.
Data(), &
id, &
size, &flags, &modtime) == 0) {
1067 if (selected->InheritsFrom(
"TLeaf"))
1069 if (selected->InheritsFrom(
"TBranch"))
1071 if (selected->InheritsFrom(
"TTree")) {
1076 gROOT->ProcessLine(
TString::Format(
"((TTree *)0x%zx)->SetDirectory(gDirectory);", (
size_t)selected));
1101 gSystem->ExpandPathName(dirname);
1108 gSystem->ExpandPathName(resolved);
1128 _splitpath(fullpath.
Data(), winDrive, winDir, winName, winExt);
1131 dirname =
gSystem->GetDirName(fullpath);
1146 Int_t weirdcount = 0;
1154 infile = fopen(candidate,
"r");
1157 nchars = fread(buffer, 1, 512, infile);
1160 for (i = 0; i < nchars; i++) {
1161 if (buffer[i] & 128)
1163 if (buffer[i] ==
'\0')
1167 if ((nchars > 0) && ((weirdcount * 100 / nchars) > 30))
1186 if (img1 == 0)
return pic;
1190 if (img2) img1->
Merge(img2);
1193 merged =
gClient->GetPicturePool()->GetPicture(lnk_name.
Data(),
1195 if (img2)
delete img2;
1220 gSystem->ExpandPathName(fullpath);
1242 const char *clname = ((
TKey *)obj)->GetClassName();
1270 while ( probj && strcmp(probj->
GetClassName(),
"TFile")) {
1274 if (probj && !strcmp(probj->
GetClassName(),
"TFile")) {
1278 TString::Format(
"((TApplicationServer *)gApplication)->BrowseFile(\"%s\");",
1283 if (
gClient->GetMimeTypeList()->GetAction(obj->
GetName(), action)) {
1286 if ((act[0] !=
'!') && (strcmp(pitem->
GetText(),
"ROOT Files"))) {
1292 if ((ext.
EndsWith(
".root")) && (strcmp(pitem->
GetText(),
"ROOT Files"))) {
1294 gApplication->ProcessLine(
"((TApplicationServer *)gApplication)->BrowseFile(0);");
1309 if (act[0] ==
'!') {
1336 flags =
id =
size = modtime = 0;
1337 if (
gSystem->GetPathInfo(fullpath.
Data(), &
id, &
size, &flags, &modtime) != 0)
1359 if ((fname!=
"..") && (fname!=
".")) {
1360 if (!
fListTree->FindChildByName(item, fname)) {
1362 if (!
gSystem->GetPathInfo(fname, sbuf) &&
1366 const TGPicture *opened = 0, *l_opened = 0;
1367 const TGPicture *closed = 0, *l_closed = 0;
1368 opened =
fClient->GetPicture(
"ofolder_t.xpm");
1370 closed =
fClient->GetPicture(
"folder_t.xpm");
1372 if (l_opened && l_closed)
1374 if (opened)
fClient->FreePicture(opened);
1375 if (closed)
fClient->FreePicture(closed);
1376 if (l_opened)
fClient->FreePicture(l_opened);
1377 if (l_closed)
fClient->FreePicture(l_closed);
1390 fname = pname = file->
GetName();
1396 if (
gSystem->GetPathInfo(fname, sbuf) == 0) {
1402 pic =
gClient->GetMimeTypeList()->GetIcon(pname,
kTRUE);
1407 if (!
fListTree->FindChildByName(item, fname)) {
1408 itm =
fListTree->AddItem(item, fname, pic, pic);
1413 gSystem->ExpandPathName(fullname);
1421 if (
size && modtime) {
1435 if (is_link && lnkname.
EndsWith(
".lnk"))
1455 if (ostr)
delete ostr;
1484 (
size_t)embed, fullname.
Data()));
1488 (
size_t)embed, fullname.
Data()));
1521 if (
gClient->GetMimeTypeList()->GetAction(obj->
GetName(), action)) {
1526 if (act[0] ==
'!') {
1556 fsize = bsize =
size;
1561 infos +=
TString::Format(
"Size: %lld.%lldM", fsize/1024, (fsize%1024)/103);
1563 infos +=
TString::Format(
"Size: %lld.%lldK", bsize/1024, (bsize%1024)/103);
1569 time_t loctime = (time_t) modtime;
1570 newtime = localtime(&loctime);
1574 newtime->tm_year + 1900,
1575 newtime->tm_mon+1, newtime->tm_mday,
1576 newtime->tm_hour, newtime->tm_min);
1587 const char *clname = 0;
1595 objClass = obj->
IsA();
1600 clname = ((
TKey *)obj)->GetClassName();
1614 objClass = obj->
IsA();
1623 Bool_t xpm = xpm_magic ==
"/* ";
1624 const char *iconname = xpm ? obj->
GetName() :
name;
1634 *pic =
gClient->GetMimeTypeList()->GetIcon(iconname,
kTRUE);
1635 if (!(*pic) && xpm) {
1641 gClient->GetMimeTypeList()->AddType(
"[thumbnail]", iconname, iconname, iconname,
"->Browse()");
1661 Long_t bsize, blocks, bfree;
1665 if (item == 0)
return;
1678 TString str =
gEnv->GetValue(
"Browser.ExpandDirectories",
"yes");
1687 if (!
gSystem->GetFsInfo(path, (
Long_t *)&
id, &bsize, &blocks, &bfree))
1688 if (
id == 0x5346414f ||
id == 0x6969 ||
id == 0x65735546 ||
id == 0xff534d42 ||
id == 0x517b)
1694 if (first == drive->
GetName()) {
1706 itm =
fListTree->FindChildByName(0, token);
1715 itm =
fListTree->FindChildByName(item, token);
1781 "Enter filter expression:\n(empty string \"\" or \"*\" to remove filter)",
1785 if ((filter[0] == 0) && (filter[1] == 0)) {
1789 else if (((filter[0] == 0) && (filter[1] == 1)) || !strcmp(filter,
"*")) {
1856 if (itemname.
Length() > 0) {
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
int Int_t
Signed integer 4 bytes (int).
int Ssiz_t
String size (currently int).
unsigned long ULongptr_t
Unsigned integer large enough to hold a pointer (platform-dependent).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
bool Bool_t
Boolean (0=false, 1=true) (bool).
constexpr Ssiz_t kNPOS
The equivalent of std::string::npos for the ROOT class TString.
long long Long64_t
Portable signed long integer 8 bytes.
const char Option_t
Option string (const char).
externTApplication * gApplication
static Bool_t IsObjectEditable(TClass *cl)
Helper function checking if a class has a graphic properties editor.
static const TGPicture * MakeLinkPic(const TGPicture *pic)
Create a symlink (shortcut on Windows) icon by merging the picture passed as argument and the slink_t...
static const char * FormatToolTip(TObject *obj, Int_t maxlen=0)
Format the tooltip information, based on the object passed in argument.
static Bool_t IsTextFile(const char *candidate)
Returns true if given a text file Uses the specification given on p86 of the Camel book.
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
char * StrDup(const char *str)
Duplicate the string str.
Bool_t R_ISREG(Int_t mode)
Bool_t R_ISDIR(Int_t mode)
Each class (see TClass) has a linked list of its base class(es).
TClass * GetClassPointer(Bool_t load=kTRUE)
Get pointer to the base class TClass.
TBrowserImp(const TBrowserImp &)=delete
TBrowser * fBrowser
TBrowser associated with this implementation.
Using a TBrowser one can browse all ROOT objects.
TClass instances represent classes, structs and namespaces in the ROOT type system.
TList * GetListOfBases()
Return list containing the TBaseClass(es) of a class.
Bool_t IsTObject() const
Return kTRUE is the class inherits from TObject.
Bool_t InheritsFrom(const char *cl) const override
Return kTRUE if this class inherits from a class with name "classname".
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
virtual Int_t GetEntries() const
Helper class used to change the cursor in a method and restore the original one when going out of the...
TCursorSwitcher(TGWindow *w1, TGWindow *w2)
Describe directory structure in memory.
virtual TList * GetListOfKeys() const
void Browse(TBrowser *b) override
Browse the content of the directory.
A frame containing two scrollbars (a horizontal and a vertical) and a viewport.
A combobox (also known as a drop down listbox) allows the selection of one item out of a list of item...
TGDimension GetDefaultSize() const override
std::cout << fWidth << "x" << fHeight << std::endl;
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
virtual TList * GetList() const
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
void MapSubwindows() override
Map all sub windows that are part of the composite frame.
TGCompositeFrame(const TGCompositeFrame &)=delete
void SetCleanup(Int_t mode=kLocalCleanup) override
Turn on automatic cleanup of child frames in dtor.
TGListTreeItem * fRootDir
Root (list tree) directory.
Int_t fGroupSize
total number of items when icon box switched to "global view" mode
Bool_t CheckFiltered(TGListTreeItem *item, Bool_t but=kFALSE)
Check if there is a filter active on the children of the list tree item.
TString DirName(TGListTreeItem *item)
returns the directory path
TSystemFile * fFile
Actual (selected) system file.
TGHorizontalFrame * fBotFrame
Bottom horizontal frame.
void GetObjPicture(const TGPicture **pic, TObject *obj)
Retrieve icons associated with class "name".
TGListTree * fListTree
Main list tree.
void AddKey(TGListTreeItem *itm, TObject *obj, const char *name=nullptr)
display content of ROOT file
TGFileBrowser(const TGWindow *p, TBrowser *b=nullptr, UInt_t w=200, UInt_t h=400)
TGFileBrowser constructor.
void CreateBrowser()
Create the actual file browser.
Bool_t fShowHidden
kTRUE to display hidden files
Bool_t fDblClick
kTRUE if user double-clicked on a list tree item
TGListTreeItem * fCurrentDir
Current (list tree) directory.
Bool_t CheckSorted(TGListTreeItem *item, Bool_t but=kFALSE)
Check if the list tree item children are alphabetically sorted.
void Clicked(TGListTreeItem *item, Int_t btn, Int_t x, Int_t y)
Process mouse clicks in TGListTree.
void DoubleClicked(TGListTreeItem *item, Int_t btn)
Process double clicks in TGListTree.
void BrowseObj(TObject *obj) override
Browse object.
void ApplyFilter(Int_t id)
Apply filter selected in combo box to the file tree view.
TGPictureButton * fFilterButton
"Filter" button
void PadModified()
Slot used to switch to the tab containing the current pad/canvas (gPad) used e.g.
void GotoDir(const char *path)
Go to the directory "path" and open all the parent list tree items.
void RecursiveRemove(TObject *obj) override
Recursively remove object.
void ToggleSort()
Toggle the sort mode and set the "sort button" state accordingly.
TGListTreeItem * fListLevel
Current list tree level.
void AddRemoteFile(TObject *obj)
Add remote file in list tree.
TString fFilterStr
Filter expression string.
TRegexp * fFilter
Regular expression used to filter files.
void GetFilePictures(const TGPicture **pic, Int_t file_type, Bool_t is_link, const char *name)
Determine the file picture for the given file type.
TSystemDirectory * fDir
Actual (selected) system directory.
Long_t fCnt
Counters for keys inside a Root file.
void Add(TObject *obj, const char *name=nullptr, Int_t check=-1) override
Add items to the browser.
sLTI_t fSortedItems
List of sorted list-tree items.
~TGFileBrowser() override
Destructor.
const TGPicture * fCachedPic
Cached picture.
void RequestFilter()
Open a dialog box asking for a string to be used as filter (regexp), and add an entry in the map of f...
TGComboBox * fFileType
File type combobox.
TGCanvas * fCanvas
Canvas for the list tree.
TContextMenu * fContextMenu
pointer to context menu
TRootBrowser * fNewBrowser
Pointer back to the Browser.
char * FormatFileInfo(const char *fname, Long64_t size, Long_t modtime)
Format file information to be displayed in the tooltip.
TString FullPathName(TGListTreeItem *item)
returns an absolute path
TGPictureButton * fSortButton
"Sort" button
TGComboBox * fDrawOption
Draw options combobox.
void Checked(TObject *obj, Bool_t check)
Emits signal when double clicking on icon.
const TGPicture * fFileIcon
System files icon.
Option_t * GetDrawOption() const override
returns drawing option
TGPictureButton * fRefreshButton
"Refresh" button
void CheckRemote(TGListTreeItem *item)
Check if the current list tree item points to a remote object.
void Update()
Update content of the list tree.
const TGPicture * fRootIcon
Root files icon.
void Selected(char *)
A ROOT File has been selected in TGHtmlBrowser.
void AddFSDirectory(const char *entry, const char *path=nullptr, Option_t *opt="")
Add file system directory in the list tree.
void Refresh(Bool_t force=kFALSE) override
Refresh content of the list tree.
TString fCachedPicName
Cached picture name.
mFiltered_t fFilteredItems
List of filtered list-tree items.
Long_t XXExecuteDefaultAction(TObject *obj)
Execute default action for selected object (action is specified in the $HOME/.root....
void Chdir(TGListTreeItem *item)
Make object associated with item the current directory.
TGHorizontalFrame * fTopFrame
Top horizontal frame.
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
void MapWindow() override
map window
A composite frame that layout their children in horizontal way.
This class handles GUI labels.
This class describes layout hints used by the layout classes.
A listbox is a box, possibly with scrollbar, containing entries.
void Resize(UInt_t w, UInt_t h) override
Resize the listbox widget.
TGListTreeItem * GetFirstChild() const
void Rename(const char *new_name)
virtual const char * GetText() const =0
TGListTreeItem * GetNextSibling() const
TGListTreeItem * GetParent() const
virtual void SetTipText(const char *)
virtual void SetActive(Bool_t)
void SetDNDSource(Bool_t onoff)
virtual void SetPictures(const TGPicture *, const TGPicture *)
virtual void * GetUserData() const =0
virtual void SetUserData(void *, Bool_t=kFALSE)
A list tree is a widget that can contain a number of items arranged in a tree structure.
TGMainFrame(const TGMainFrame &)=delete
TGClient * fClient
Connection to display server.
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
A tab widget contains a set of composite frames each with a little tab with a name (like a set of fol...
TGCompositeFrame * GetCurrentContainer() const
Int_t GetNumberOfTabs() const
Return number of tabs.
virtual Bool_t SetTab(Int_t tabIndex, Bool_t emit=kTRUE)
Brings the composite frame with the index tabIndex to the front and generate the following event if t...
TGCompositeFrame * GetTabContainer(Int_t tabIndex) const
Return container of tab with index tabIndex.
A TGTextEntry is a one line text input widget.
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
Text string listbox entries.
const char * GetTitle() const override
Returns title of object.
ROOT GUI Window base class.
virtual const TGWindow * GetMainFrame() const
Returns top level main frame.
virtual void SetModel(TVirtualPad *pad, TObject *obj, Int_t event, Bool_t force=kFALSE)
Activate object editors according to the selected object.
An abstract interface to image processing library.
static TImage * Open(const char *file, EImageFileTypes type=kUnknown)
Open a specified image file.
virtual UInt_t GetWidth() const
static TImage * Create()
Create an image.
virtual Bool_t SetImageBuffer(char **, EImageFileTypes=TImage::kPng)
virtual void Scale(UInt_t, UInt_t)
virtual void Merge(const TImage *, const char *="alphablend", Int_t=0, Int_t=0)
virtual Pixmap_t GetPixmap()
virtual void SetImage(const Double_t *, UInt_t, UInt_t, TImagePalette *=nullptr)
virtual Pixmap_t GetMask()
virtual UInt_t GetHeight() const
Utility class for browsing TMapFile objects.
Book space in a file, create I/O buffers, to fill them, (un)compress them.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
virtual void Sort(Bool_t order=kSortAscending)
Sort linked list.
The TNamed class is the base class for all named ROOT classes.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
Int_t GetEntriesFast() const
TObject * At(Int_t idx) const override
Bool_t IsEmpty() const override
Collectable string class.
Mother of all ROOT objects.
virtual Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
virtual const char * GetName() const
Returns name of object.
virtual void Browse(TBrowser *b)
Browse object. May be overridden for another default action.
virtual const char * GetIconName() const
Returns mime type name of object.
virtual TObject * DrawClone(Option_t *option="") const
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Returns string containing info about the object at position (px,py).
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual const char * GetTitle() const
Returns title of object.
virtual TClass * IsA() const
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Bool_t Disconnect(const char *signal=nullptr, void *receiver=nullptr, const char *slot=nullptr)
Disconnects signal of this object from slot of receiver.
Regular expression class.
The TRemoteObject class provides protocol for browsing ROOT objects from a remote ROOT session.
const char * GetClassName() const
Bool_t GetFileStat(FileStat_t *sbuf)
Get remote file status.
const char * GetKeyClassName() const
This class creates a ROOT object browser, constituted by three main tabs.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
void Clear()
Clear string without changing its capacity.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
TString & Prepend(const char *cs)
TString & Remove(Ssiz_t pos)
TString & Append(const char *cs)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
Long64_t Atoll() const
Return long long value of string.
Describes an Operating System directory for the browser.
virtual TList * GetListOfFiles() const
Returns a TList of TSystemFile objects representing the contents of the directory.
A TSystemFile describes an operating system file.
virtual Bool_t IsDirectory(const char *dir=nullptr) const
Check if object is a directory.
static void SingleShot(Int_t milliSec, const char *receiver_class, void *receiver, const char *method)
This static function calls a slot after a given time interval.
Abstract base class used by ROOT graphics editor.
static TVirtualPadEditor * GetPadEditor(Bool_t load=kTRUE)
Returns the pad editor dialog. Static method.
bool HasBeenDeleted(const TObject *obj)
Check if the TObject's memory has been deleted.