// @(#)root/gui:$Name: $:$Id: TGFSContainer.h,v 1.14 2005/05/25 16:20:54 brun Exp $
// Author: Fons Rademakers 19/01/98
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TGFSContainer
#define ROOT_TGFSContainer
//////////////////////////////////////////////////////////////////////////
// //
// TGFileIcon, TGFileEntry, TGFSContainer //
// //
// Utility classes used by the file selection dialog (TGFileDialog). //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TGListView
#include "TGListView.h"
#endif
#ifndef ROOT_TGIcon
#include "TGIcon.h"
#endif
#ifndef ROOT_TTimer
#include "TTimer.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
//----- file sort mode
enum EFSSortMode {
kSortByName,
kSortByType,
kSortBySize,
kSortByDate
};
class TRegexp;
class TGPicture;
class TGFileContainer;
class TViewUpdateTimer;
class TGFileIcon;
class TGFileItem;
class TGFileItem : public TGLVEntry {
protected:
const TGPicture *fBlpic; // big icon
const TGPicture *fSlpic; // small icon
const TGPicture *fLcurrent; // current icon
Int_t fType; // file type
Int_t fUid, fGid; // file uid and gid
Bool_t fIsLink; // true if symbolic link
Long64_t fSize; // file size
virtual void DoRedraw();
public:
TGFileItem(const TGWindow *p = 0,
const TGPicture *bpic = 0, const TGPicture *blpic = 0,
const TGPicture *spic = 0, const TGPicture *slpic = 0,
TGString *name = 0, Int_t type = 0, Long64_t size = 1,
Int_t uid = 0, Int_t gid = 0,
EListViewMode viewMode = kLVList, UInt_t options = kVerticalFrame,
Pixel_t back = GetWhitePixel());
virtual void SetViewMode(EListViewMode viewMode);
Bool_t IsActive() const { return fActive; }
Bool_t IsSymLink() const { return fIsLink; }
Int_t GetType() const { return fType; }
ULong_t GetSize() const { return fSize; }
ClassDef(TGFileItem,0) // Class representing file system object
};
class TGFileContainer : public TGLVContainer {
friend class TGFSFrameElement;
protected:
EFSSortMode fSortType; // sorting mode of contents
TRegexp *fFilter; // file filter
TViewUpdateTimer *fRefresh; // refresh timer
ULong_t fMtime; // directory modification time
TString fDirectory; // current directory
const TGPicture *fFolder_t; // small folder icon
const TGPicture *fFolder_s; // big folder icon
const TGPicture *fApp_t; // small application icon
const TGPicture *fApp_s; // big application icon
const TGPicture *fDoc_t; // small document icon
const TGPicture *fDoc_s; // big document icon
const TGPicture *fSlink_t; // small symbolic link icon
const TGPicture *fSlink_s; // big symbolic link icon
Bool_t fCachePictures; // kTRUE use caching
void CreateFileList();
public:
TGFileContainer(const TGWindow *p = 0, UInt_t w = 1, UInt_t h = 1,
UInt_t options = kSunkenFrame,
Pixel_t back = GetDefaultFrameBackground());
TGFileContainer(TGCanvas *p, UInt_t options = kSunkenFrame,
Pixel_t back = GetDefaultFrameBackground());
virtual ~TGFileContainer();
virtual Bool_t HandleTimer(TTimer *t);
void StopRefreshTimer();
void StartRefreshTimer(ULong_t msec=1000);
virtual TGFileItem *AddFile(const char *name, const TGPicture *pic = 0, const TGPicture *lpic = 0);
virtual void AddFrame(TGFrame *f, TGLayoutHints *l = 0);
virtual void Sort(EFSSortMode sortType);
virtual void SetFilter(const char *filter);
virtual void ChangeDirectory(const char *path);
virtual void DisplayDirectory();
const char *GetDirectory() const { return fDirectory.Data(); }
virtual void GetFilePictures(const TGPicture **pic, const TGPicture **lpic,
Int_t file_type, Bool_t is_link, const char *ext,
Bool_t small);
virtual void SavePrimitive(ofstream &out, Option_t *option);
ClassDef(TGFileContainer,0) // Container containing file system objects
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1