123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- //---------------------------------------------------------------------------
- #ifndef UnixDirViewH
- #define UnixDirViewH
- //---------------------------------------------------------------------------
- #include <SysUtils.hpp>
- #include <Controls.hpp>
- #include <Classes.hpp>
- #include <Forms.hpp>
- #include "CustomUnixDirView.hpp"
- //---------------------------------------------------------------------------
- class TTerminal;
- class TUnixDirView;
- class TCustomUnixDriveView;
- class TRemoteFile;
- class TRemoteProperties;
- //---------------------------------------------------------------------------
- #ifdef DESIGN_ONLY
- class TRemoteFile
- {
- };
- #endif
- //---------------------------------------------------------------------------
- enum TTransferDirection { tdToRemote, tdToLocal };
- enum TTransferType { ttCopy, ttMove };
- typedef void __fastcall (__closure *TDDDragFileName)
- (TObject * Sender, TRemoteFile * File, UnicodeString & FileName);
- typedef void __fastcall (__closure *TThumbnailNeededEvent)
- (TUnixDirView * Sender, TListItem * Item, TRemoteFile * File, const TSize & Size, TBitmap *& Bitmap);
- //---------------------------------------------------------------------------
- class PACKAGE TUnixDirView : public TCustomUnixDirView
- {
- friend class TCustomUnixDriveView;
- private:
- bool FDDAllowMove;
- bool FDirLoadedAfterChangeDir;
- TNotifyEvent FOnDisplayProperties;
- bool FFullLoad;
- int FHiddenCount;
- int FFilteredCount;
- TTerminal *FTerminal;
- bool FShowInaccesibleDirectories;
- TDDDragFileName FOnDDDragFileName;
- bool __fastcall GetActive();
- TCustomUnixDriveView * FDriveView;
- TNotifyEvent FOnRead;
- TNotifyEvent FOnStartReading;
- TThumbnailNeededEvent FOnThumbnailNeeded;
- TObject * FAnnouncedDriveViewState;
- void __fastcall SetTerminal(TTerminal *value);
- void __fastcall DoSetTerminal(TTerminal *value, bool Replace);
- void __fastcall SetShowInaccesibleDirectories(bool value);
- protected:
- virtual void __fastcall DDDragDetect(int grfKeyState, const TPoint &DetectStart,
- const TPoint &Point, TDragDetectStatus DragStatus);
- virtual void __fastcall DDMenuDone(TObject* Sender, HMENU AMenu);
- virtual void __fastcall DDChooseEffect(int grfKeyState, int &dwEffect, int PreferredEffect);
- virtual void __fastcall AddToDragFileList(TFileList* FileList, TListItem* Item);
- void __fastcall DoReadDirectory(TObject * Sender, bool ReloadOnly);
- void __fastcall DoReadDirectoryImpl(TObject * Sender, bool ReloadOnly);
- void __fastcall DoStartReadDirectory(TObject * Sender);
- virtual bool __fastcall DoExecFile(TListItem * Item, bool ForceEnter);
- virtual void __fastcall ExecuteFile(TListItem * Item);
- virtual bool __fastcall GetDirOK();
- virtual void __fastcall GetDisplayInfo(TListItem * ListItem, tagLVITEMW &DispInfo);
- virtual TDropEffectSet __fastcall GetDragSourceEffects();
- virtual bool __fastcall GetIsRoot();
- virtual UnicodeString __fastcall GetPath();
- virtual UnicodeString __fastcall GetPathName();
- void __fastcall ChangeDirectory(UnicodeString Path);
- virtual void __fastcall InternalEdit(const tagLVITEMW & HItem);
- virtual TColor __fastcall ItemColor(TListItem * Item);
- virtual UnicodeString __fastcall ItemFileName(TListItem * Item);
- virtual int __fastcall ItemImageIndex(TListItem * Item, bool Cache);
- virtual TBitmap * __fastcall ItemThumbnail(TListItem * Item, const TSize & Size);
- virtual TObject * __fastcall ItemData(TListItem * Item);
- virtual bool __fastcall ItemIsFile(TListItem * Item);
- virtual bool __fastcall ItemMatchesFilter(TListItem * Item, const TFileFilter &Filter);
- virtual Word __fastcall ItemOverlayIndexes(TListItem * Item);
- virtual void __fastcall LoadFiles();
- virtual void __fastcall PerformItemDragDropOperation(TListItem * Item, int Effect, bool Paste);
- virtual void __fastcall SetAddParentDir(bool Value);
- virtual void __fastcall SetItemImageIndex(TListItem * Item, int Index);
- virtual void __fastcall SetPath(UnicodeString Value);
- virtual void __fastcall SortItems();
- virtual bool __fastcall TargetHasDropHandler(TListItem * Item, int Effect);
- virtual TDateTime __fastcall ItemFileTime(TListItem * Item,
- TDateTimePrecision & Precision);
- DYNAMIC bool __fastcall CanEdit(TListItem* Item);
- void __fastcall SetDriveView(TCustomUnixDriveView * Value);
- virtual int __fastcall HiddenCount();
- virtual int __fastcall FilteredCount();
- DYNAMIC void __fastcall UpdatePathLabelCaption();
- __property TCustomUnixDriveView * DriveView = { read = FDriveView, write = SetDriveView };
- public:
- __fastcall TUnixDirView(TComponent* Owner);
- virtual __fastcall ~TUnixDirView();
- virtual void __fastcall CreateDirectory(UnicodeString DirName);
- void __fastcall CreateDirectoryEx(UnicodeString DirName, const TRemoteProperties * Properties);
- virtual void __fastcall DisplayPropertiesMenu();
- virtual void __fastcall ExecuteHomeDirectory();
- virtual void __fastcall ExecuteParentDirectory();
- virtual void __fastcall ExecuteRootDirectory();
- virtual void __fastcall ReloadDirectory();
- virtual bool __fastcall ItemIsDirectory(TListItem * Item);
- virtual bool __fastcall ItemIsParentDirectory(TListItem * Item);
- virtual UnicodeString __fastcall ItemFullFileName(TListItem * Item);
- virtual __int64 __fastcall ItemFileSize(TListItem * Item);
- virtual void __fastcall SetItemCalculatedSize(TListItem * Item, __int64 Size);
- virtual bool __fastcall PasteFromClipBoard(UnicodeString TargetPath = L"");
- void __fastcall UpdateFiles();
- void __fastcall DisplayContextMenu(const TPoint &Where);
- void __fastcall ReplaceTerminal(TTerminal * value);
- virtual void __fastcall AnnounceState(TObject * State);
- virtual void __fastcall RestoreState(TObject * State);
- virtual TObject * __fastcall SaveState();
- __property bool Active = { read = GetActive };
- __property TTerminal *Terminal = { read = FTerminal, write = SetTerminal };
- __published:
- __property bool DDAllowMove = { read = FDDAllowMove, write = FDDAllowMove, default = false };
- __property TDDDragFileName OnDDDragFileName = { read = FOnDDDragFileName,
- write = FOnDDDragFileName};
- __property OnBusy;
- __property OnChangeFocus;
- __property bool ShowInaccesibleDirectories =
- { read=FShowInaccesibleDirectories, write=SetShowInaccesibleDirectories,
- default=true };
- __property OnUpdateStatusBar;
- __property PathLabel;
- __property AddParentDir;
- __property DimmHiddenFiles;
- __property ShowHiddenFiles;
- __property WantUseDragImages;
- __property TargetPopupMenu;
- __property OnSelectItem;
- __property OnStartLoading;
- __property OnLoaded;
- __property OnExecFile;
- __property OnMatchMask;
- __property OnGetOverlay;
- __property OnGetItemColor;
- __property OnDDDragEnter;
- __property OnDDDragLeave;
- __property OnDDDragOver;
- __property OnDDDrop;
- __property OnDDQueryContinueDrag;
- __property OnDDGiveFeedback;
- __property OnDDChooseEffect;
- __property OnDDDragDetect;
- __property OnDDEnd;
- __property OnDDCreateDragFileList;
- __property OnDDTargetHasDropHandler;
- __property OnDDProcessDropped;
- __property OnDDError;
- __property OnDDExecuted;
- __property OnDDFileOperation;
- __property OnDDFileOperationExecuted;
- __property OnDDCreateDataObject;
- __property OnContextPopup;
- __property OnHistoryChange;
- __property OnHistoryGo;
- __property OnPathChange;
- __property ColumnClick;
- __property MultiSelect;
- __property TNotifyEvent OnDisplayProperties = { read = FOnDisplayProperties, write = FOnDisplayProperties };
- __property ReadOnly;
- __property DirViewStyle;
- __property TNotifyEvent OnRead = { read = FOnRead, write = FOnRead };
- __property TNotifyEvent OnStartReading = { read = FOnStartReading, write = FOnStartReading };
- __property TThumbnailNeededEvent OnThumbnailNeeded = { read = FOnThumbnailNeeded, write = FOnThumbnailNeeded };
- // The only way to make Items stored automatically and survive handle recreation.
- // Though we should implement custom persisting to avoid publishing this
- __property Items;
- };
- //---------------------------------------------------------------------------
- #endif
|