00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TGFileBrowser
00013 #define ROOT_TGFileBrowser
00014
00015 #ifndef ROOT_TGFrame
00016 #include "TGFrame.h"
00017 #endif
00018
00019 #ifndef ROOT_TBrowserImp
00020 #include "TBrowserImp.h"
00021 #endif
00022
00023 #include <list>
00024
00025 class TGCanvas;
00026 class TGListTree;
00027 class TGListTreeItem;
00028 class TGPicture;
00029 class TGComboBox;
00030 class TContextMenu;
00031 class TRegexp;
00032 class TString;
00033 class TRootBrowser;
00034 class TSystemDirectory;
00035 class TSystemFile;
00036
00037 class TGFileBrowser : public TGMainFrame, public TBrowserImp {
00038
00039 public:
00040 typedef std::list<TGListTreeItem*> sLTI_t;
00041 typedef sLTI_t::iterator sLTI_i;
00042 typedef sLTI_t::reverse_iterator sLTI_ri;
00043
00044 protected:
00045 TRootBrowser *fNewBrowser;
00046 TGHorizontalFrame *fTopFrame;
00047 TGHorizontalFrame *fBotFrame;
00048 TGCanvas *fCanvas;
00049 TGListTree *fListTree;
00050 TGListTreeItem *fListLevel;
00051 TGListTreeItem *fCurrentDir;
00052 TGListTreeItem *fRootDir;
00053 TGComboBox *fDrawOption;
00054 TGComboBox *fFileType;
00055 TContextMenu *fContextMenu;
00056 TGPictureButton *fSortButton;
00057 TGPictureButton *fRefreshButton;
00058 const TGPicture *fRootIcon;
00059 const TGPicture *fFileIcon;
00060 const TGPicture *fCachedPic;
00061 TString fCachedPicName;
00062 TRegexp *fFilter;
00063 TSystemDirectory *fDir;
00064 TSystemFile *fFile;
00065 Int_t fGroupSize;
00066 Long_t fNKeys, fCnt;
00067 Bool_t fGrouped;
00068 Bool_t fShowHidden;
00069 Bool_t fDblClick;
00070
00071 sLTI_t fSortedItems;
00072
00073 void CreateBrowser();
00074
00075 public:
00076 TGFileBrowser(const TGWindow *p, TBrowser* b=0, UInt_t w=200, UInt_t h=400);
00077 virtual ~TGFileBrowser();
00078
00079 virtual void Add(TObject *obj, const char *name = 0, Int_t check = -1);
00080 virtual void BrowseObj(TObject *obj);
00081 virtual void RecursiveRemove(TObject *obj);
00082 virtual void Refresh(Bool_t force = kFALSE);
00083 virtual void Show() { MapRaised(); }
00084 Option_t *GetDrawOption() const;
00085
00086 TRootBrowser *GetNewBrowser() const { return fNewBrowser; }
00087 void SetNewBrowser(TRootBrowser* b) { fNewBrowser = b; }
00088
00089 void AddFSDirectory(const char* entry, const char* path=0, Option_t *opt="");
00090 void AddKey(TGListTreeItem *itm, TObject *obj, const char *name = 0);
00091 void AddRemoteFile(TObject *obj);
00092 void ApplyFilter(Int_t id);
00093 void Chdir(TGListTreeItem *item);
00094 void Checked(TObject *obj, Bool_t check);
00095 void CheckRemote(TGListTreeItem *item);
00096 Bool_t CheckSorted(TGListTreeItem *item, Bool_t but = kFALSE);
00097 void Clicked(TGListTreeItem *item, Int_t btn, Int_t x, Int_t y);
00098 TString DirName(TGListTreeItem* item);
00099 TString FullPathName(TGListTreeItem* item);
00100 void DoubleClicked(TGListTreeItem *item, Int_t btn);
00101 Long_t XXExecuteDefaultAction(TObject *obj);
00102 char *FormatFileInfo(const char *fname, Long64_t size, Long_t modtime);
00103 void GetFilePictures(const TGPicture **pic, Int_t file_type, Bool_t is_link, const char *name);
00104 void GetObjPicture(const TGPicture **pic, TObject *obj);
00105 void GotoDir(const char *path);
00106 void PadModified();
00107 void Selected(char *);
00108 void ToggleSort();
00109 void Update();
00110
00111 ClassDef(TGFileBrowser, 0)
00112 };
00113
00114 #endif