12 #ifndef ROOT_TGFSContainer
13 #define ROOT_TGFSContainer
41 class TGFileContainer;
42 class TViewUpdateTimer;
50 class TGFileItem :
public TGLVEntry {
53 const TGPicture *fBlpic;
54 const TGPicture *fSlpic;
55 const TGPicture *fLcurrent;
64 void Init(
const TGPicture *blpic,
const TGPicture *slpic,
65 FileStat_t &stat, EListViewMode viewMode);
66 virtual void DoRedraw();
69 TGFileItem(
const TGWindow *p = 0,
70 const TGPicture *bpic = 0,
const TGPicture *blpic = 0,
71 const TGPicture *spic = 0,
const TGPicture *slpic = 0,
72 TGString *name = 0, Int_t type = 0, Long64_t size = 1,
73 Int_t uid = 0, Int_t gid = 0, Long_t modtime = 0,
74 EListViewMode viewMode = kLVList, UInt_t options = kVerticalFrame,
75 Pixel_t back = GetWhitePixel());
77 TGFileItem(
const TGWindow *p,
78 const TGPicture *bpic,
const TGPicture *blpic,
79 const TGPicture *spic,
const TGPicture *slpic,
80 TGString *name, FileStat_t &stat,
81 EListViewMode viewMode = kLVList, UInt_t options = kVerticalFrame,
82 Pixel_t back = GetWhitePixel());
84 virtual ~TGFileItem();
86 virtual void SetViewMode(EListViewMode viewMode);
88 Bool_t IsActive()
const {
return fActive; }
89 Bool_t IsSymLink()
const {
return fIsLink; }
90 Int_t GetType()
const {
return fType; }
91 Long64_t GetSize()
const {
return fSize; }
92 Long_t GetModTime()
const {
return fModTime; }
93 Int_t GetUid()
const {
return fUid; }
94 Int_t GetGid()
const {
return fGid; }
96 virtual TDNDData *GetDNDdata(Atom_t) {
100 virtual Atom_t HandleDNDEnter(Atom_t *) {
101 if (!IsDNDTarget())
return kNone;
102 return gVirtualX->InternAtom(
"application/root", kFALSE);
105 virtual Bool_t HandleDNDLeave() {
109 virtual Atom_t HandleDNDPosition(
int,
int, Atom_t action,
int,
int) {
110 if (action == TGDNDManager::GetDNDActionCopy())
return action;
114 virtual Bool_t HandleDNDFinished() {
115 return ((TGFrame *)(const_cast<TGWindow*>(GetParent())))->HandleDNDFinished();
118 void SetDNDData(TDNDData *data) {
119 if (fDNDData.fDataLength > 0)
120 free(fDNDData.fData);
121 fDNDData.fData = calloc(
sizeof(
unsigned char), data->fDataLength);
123 memcpy(fDNDData.fData, data->fData, data->fDataLength);
124 fDNDData.fDataLength = data->fDataLength;
125 fDNDData.fDataType = data->fDataType;
128 void SetDNDObject(TObject *obj) {
129 if (fDNDData.fDataLength)
130 free(fDNDData.fData);
131 fBuf->WriteObject(obj);
132 fDNDData.fData = fBuf->Buffer();
133 fDNDData.fDataLength = fBuf->Length();
134 fDNDData.fDataType = gVirtualX->InternAtom(
"application/root", kFALSE);
137 ClassDef(TGFileItem,0)
141 class TGFileContainer :
public TGLVContainer {
143 friend class TGFSFrameElement;
146 EFSSortMode fSortType;
148 TViewUpdateTimer *fRefresh;
152 const TGPicture *fFolder_t;
153 const TGPicture *fFolder_s;
154 const TGPicture *fApp_t;
155 const TGPicture *fApp_s;
156 const TGPicture *fDoc_t;
157 const TGPicture *fDoc_s;
158 const TGPicture *fSlink_t;
159 const TGPicture *fSlink_s;
160 Bool_t fCachePictures;
164 void CreateFileList();
167 TGFileContainer(
const TGWindow *p = 0, UInt_t w = 1, UInt_t h = 1,
168 UInt_t options = kSunkenFrame,
169 Pixel_t back = GetDefaultFrameBackground());
170 TGFileContainer(TGCanvas *p, UInt_t options = kSunkenFrame,
171 Pixel_t back = GetDefaultFrameBackground());
173 virtual ~TGFileContainer();
175 virtual Bool_t HandleTimer(TTimer *t);
176 void StopRefreshTimer();
177 void StartRefreshTimer(ULong_t msec=1000);
179 virtual TGFileItem *AddFile(
const char *name,
const TGPicture *pic = 0,
const TGPicture *lpic = 0);
180 virtual TGFileItem *AddRemoteFile(TObject *obj,
const TGPicture *ipic = 0,
const TGPicture *ilpic = 0);
181 virtual void AddFrame(TGFrame *f, TGLayoutHints *l = 0);
182 virtual void Sort(EFSSortMode sortType);
183 virtual void SetFilter(
const char *filter);
184 virtual void ChangeDirectory(
const char *path);
185 virtual void DisplayDirectory();
186 virtual void SetDisplayStat(Bool_t stat = kTRUE) { fDisplayStat = stat; }
187 Bool_t GetDisplayStat() {
return fDisplayStat; }
189 const char *GetDirectory()
const {
return fDirectory.Data(); }
191 virtual void GetFilePictures(
const TGPicture **pic,
const TGPicture **lpic,
192 Int_t file_type, Bool_t is_link,
const char *ext,
195 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
197 ClassDef(TGFileContainer,0)