Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGFileBrowser.h
Go to the documentation of this file.
1// @(#)root/gui:$Id$
2// Author: Bertrand Bellenot 26/09/2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, 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#ifndef ROOT_TGFileBrowser
13#define ROOT_TGFileBrowser
14
15#include "TGFrame.h"
16
17#include "TBrowserImp.h"
18
19#include <list>
20#include <map>
21#include <string>
22
23class TGCanvas;
24class TGListTree;
25class TGListTreeItem;
26class TGPicture;
27class TGComboBox;
28class TContextMenu;
29class TRegexp;
30class TString;
31class TRootBrowser;
33class TSystemFile;
34class TGPictureButton;
35
36class TGFileBrowser : public TGMainFrame, public TBrowserImp {
37
38public:
39 typedef std::list<TGListTreeItem*> sLTI_t;
40 typedef sLTI_t::iterator sLTI_i;
41 typedef sLTI_t::reverse_iterator sLTI_ri;
42 typedef std::map<TGListTreeItem*, std::string> mFiltered_t;
43
44protected:
45 TRootBrowser *fNewBrowser; ///< Pointer back to the Browser
46 TGHorizontalFrame *fTopFrame; ///< Top horizontal frame
47 TGHorizontalFrame *fBotFrame; ///< Bottom horizontal frame
48 TGCanvas *fCanvas; ///< Canvas for the list tree
49 TGListTree *fListTree; ///< Main list tree
50 TGListTreeItem *fListLevel; ///< Current list tree level
51 TGListTreeItem *fCurrentDir; ///< Current (list tree) directory
52 TGListTreeItem *fRootDir; ///< Root (list tree) directory
53 TGComboBox *fDrawOption; ///< Draw options combobox
54 TGComboBox *fFileType; ///< File type combobox
55 TContextMenu *fContextMenu; ///< pointer to context menu
56 TGPictureButton *fSortButton; ///< "Sort" button
57 TGPictureButton *fRefreshButton; ///< "Refresh" button
58 TGPictureButton *fFilterButton; ///< "Filter" button
59 const TGPicture *fRootIcon; ///< Root files icon
60 const TGPicture *fFileIcon; ///< System files icon
61 const TGPicture *fCachedPic; ///< Cached picture
62 TString fCachedPicName; ///< Cached picture name
63 TRegexp *fFilter; ///< Regular expression used to filter files
64 TSystemDirectory *fDir; ///< Actual (selected) system directory
65 TSystemFile *fFile; ///< Actual (selected) system file
66 Int_t fGroupSize; ///< total number of items when icon box switched to "global view" mode
67 Long_t fNKeys, fCnt; ///< Counters for keys inside a Root file
68 Bool_t fGrouped; ///< kTRUE if Root file content (keys) is grouped
69 Bool_t fShowHidden; ///< kTRUE to display hidden files
70 Bool_t fDblClick; ///< kTRUE if user double-clicked on a list tree item
71
72 sLTI_t fSortedItems; ///< List of sorted list-tree items.
73 mFiltered_t fFilteredItems; ///< List of filtered list-tree items.
74 TString fFilterStr; ///< Filter expression string
75
76 void CreateBrowser();
77
78public:
79 TGFileBrowser(const TGWindow *p, TBrowser *b = nullptr, UInt_t w = 200, UInt_t h = 400);
80 ~TGFileBrowser() override;
81
82 void Add(TObject *obj, const char *name = nullptr, Int_t check = -1) override;
83 void BrowseObj(TObject *obj) override;
84 void RecursiveRemove(TObject *obj) override;
85 void Refresh(Bool_t force = kFALSE) override;
86 void Show() override { MapRaised(); }
87 Option_t *GetDrawOption() const override;
88
91
92 void AddFSDirectory(const char* entry, const char* path = nullptr, Option_t *opt = "");
93 void AddKey(TGListTreeItem *itm, TObject *obj, const char *name = nullptr);
94 void AddRemoteFile(TObject *obj);
95 void ApplyFilter(Int_t id);
96 void Chdir(TGListTreeItem *item);
97 void Checked(TObject *obj, Bool_t check);
99 void CheckRemote(TGListTreeItem *item);
101 void Clicked(TGListTreeItem *item, Int_t btn, Int_t x, Int_t y);
104 void DoubleClicked(TGListTreeItem *item, Int_t btn);
106 char *FormatFileInfo(const char *fname, Long64_t size, Long_t modtime);
107 void GetFilePictures(const TGPicture **pic, Int_t file_type, Bool_t is_link, const char *name);
108 void GetObjPicture(const TGPicture **pic, TObject *obj);
109 void GotoDir(const char *path);
110 void PadModified();
111 void RequestFilter();
112 void Selected(char *);
113 void ToggleSort();
114 void Update();
115
116 TGListTree *GetListTree() const { return fListTree; }
117 TGListTreeItem *GetRootDir() const { return fRootDir; }
118
119 ClassDefOverride(TGFileBrowser, 0) // File browser.
120};
121
122#endif
#define b(i)
Definition RSha256.hxx:100
#define h(i)
Definition RSha256.hxx:106
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
long Long_t
Definition RtypesCore.h:54
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
long long Long64_t
Definition RtypesCore.h:80
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
winID h TVirtualViewer3D TVirtualGLPainter p
char name[80]
Definition TGX11.cxx:110
ABC describing GUI independent browser implementation protocol.
Definition TBrowserImp.h:29
Using a TBrowser one can browse all ROOT objects.
Definition TBrowser.h:37
This class provides an interface to context sensitive popup menus.
A frame containing two scrollbars (a horizontal and a vertical) and a viewport.
Definition TGCanvas.h:192
A combobox (also known as a drop down listbox) allows the selection of one item out of a list of item...
Definition TGComboBox.h:47
System file browser, used as TRootBrowser plug-in.
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".
std::list< TGListTreeItem * > sLTI_t
TGListTree * fListTree
Main list tree.
void AddKey(TGListTreeItem *itm, TObject *obj, const char *name=nullptr)
display content of ROOT file
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.
TGListTreeItem * GetRootDir() const
TGListTree * GetListTree() const
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.
sLTI_t::reverse_iterator sLTI_ri
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.
void SetNewBrowser(TRootBrowser *b)
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.
Bool_t fGrouped
kTRUE if Root file content (keys) is grouped
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...
TRootBrowser * GetNewBrowser() const
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.
std::map< TGListTreeItem *, std::string > mFiltered_t
void Show() override
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.
sLTI_t::iterator sLTI_i
TGHorizontalFrame * fTopFrame
Top horizontal frame.
void MapRaised() override
map raised
Definition TGFrame.h:205
A composite frame that layout their children in horizontal way.
Definition TGFrame.h:385
A list tree is a widget that can contain a number of items arranged in a tree structure.
Definition TGListTree.h:195
Defines top level windows that interact with the system Window Manager.
Definition TGFrame.h:397
Yield an action as soon as it is clicked.
Definition TGButton.h:228
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
Definition TGPicture.h:25
ROOT GUI Window base class.
Definition TGWindow.h:23
Mother of all ROOT objects.
Definition TObject.h:41
Regular expression class.
Definition TRegexp.h:31
This class creates a ROOT object browser, constituted by three main tabs.
Basic string class.
Definition TString.h:139
Describes an Operating System directory for the browser.
A TSystemFile describes an operating system file.
Definition TSystemFile.h:29
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17