UnixDirView.h 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. //---------------------------------------------------------------------------
  2. #ifndef UnixDirViewH
  3. #define UnixDirViewH
  4. //---------------------------------------------------------------------------
  5. #include <SysUtils.hpp>
  6. #include <Controls.hpp>
  7. #include <Classes.hpp>
  8. #include <Forms.hpp>
  9. #include "CustomUnixDirView.hpp"
  10. //---------------------------------------------------------------------------
  11. class TTerminal;
  12. class TUnixDirView;
  13. class TCustomUnixDriveView;
  14. class TRemoteFile;
  15. //---------------------------------------------------------------------------
  16. enum TTransferDirection { tdToRemote, tdToLocal };
  17. enum TTransferType { ttCopy, ttMove };
  18. typedef void __fastcall (__closure *TDDDragFileName)
  19. (TObject * Sender, TRemoteFile * File, AnsiString & FileName);
  20. //---------------------------------------------------------------------------
  21. class PACKAGE TUnixDirView : public TCustomUnixDirView
  22. {
  23. friend class TCustomUnixDriveView;
  24. private:
  25. bool FDDAllowMove;
  26. bool FDirLoadedAfterChangeDir;
  27. TNotifyEvent FOnDisplayProperties;
  28. bool FFullLoad;
  29. TTerminal *FTerminal;
  30. bool FShowInaccesibleDirectories;
  31. TDDDragFileName FOnDDDragFileName;
  32. bool __fastcall GetActive();
  33. TCustomUnixDriveView * FDriveView;
  34. void __fastcall SetDDAllowMove(bool value);
  35. void __fastcall SetTerminal(TTerminal *value);
  36. void __fastcall SetShowInaccesibleDirectories(bool value);
  37. protected:
  38. virtual void __fastcall DDDragDetect(int grfKeyState, const TPoint &DetectStart,
  39. const TPoint &Point, TDragDetectStatus DragStatus);
  40. virtual void __fastcall DDMenuDone(TObject* Sender, HMENU AMenu);
  41. virtual void __fastcall DDChooseEffect(int grfKeyState, int &dwEffect);
  42. virtual void __fastcall AddToDragFileList(TFileList* FileList, TListItem* Item);
  43. void __fastcall DisplayContextMenu(const TPoint &Where);
  44. void __fastcall DoChangeDirectory(TObject * Sender);
  45. void __fastcall DoReadDirectory(TObject * Sender, bool ReloadOnly);
  46. void __fastcall DoStartReadDirectory(TObject * Sender);
  47. virtual void __fastcall ExecuteFile(TListItem * Item);
  48. virtual bool __fastcall GetDirOK();
  49. virtual void __fastcall GetDisplayInfo(TListItem * ListItem, tagLVITEMA &DispInfo);
  50. virtual TDropEffectSet __fastcall GetDragSourceEffects();
  51. virtual bool __fastcall GetIsRoot();
  52. virtual AnsiString __fastcall GetPath();
  53. virtual AnsiString __fastcall GetPathName();
  54. void __fastcall ChangeDirectory(AnsiString Path);
  55. virtual void __fastcall InternalEdit(const tagLVITEMA & HItem);
  56. virtual TColor __fastcall ItemColor(TListItem * Item);
  57. virtual AnsiString __fastcall ItemFileName(TListItem * Item);
  58. virtual __int64 __fastcall ItemFileSize(TListItem * Item);
  59. virtual int __fastcall ItemImageIndex(TListItem * Item, bool Cache);
  60. virtual bool __fastcall ItemIsFile(TListItem * Item);
  61. virtual bool __fastcall ItemMatchesFilter(TListItem * Item, const TFileFilter &Filter);
  62. virtual Word __fastcall ItemOverlayIndexes(TListItem * Item);
  63. virtual void __fastcall LoadFiles();
  64. virtual AnsiString __fastcall MinimizePath(AnsiString Path, int Length);
  65. virtual void __fastcall PerformItemDragDropOperation(TListItem * Item, int Effect);
  66. virtual void __fastcall SetAddParentDir(bool Value);
  67. virtual void __fastcall SetItemImageIndex(TListItem * Item, int Index);
  68. virtual void __fastcall SetPath(AnsiString Value);
  69. virtual void __fastcall SortItems();
  70. virtual bool __fastcall TargetHasDropHandler(TListItem * Item, int Effect);
  71. virtual TDateTime __fastcall ItemFileTime(TListItem * Item,
  72. TDateTimePrecision & Precision);
  73. DYNAMIC bool __fastcall CanEdit(TListItem* Item);
  74. void __fastcall SetDriveView(TCustomUnixDriveView * Value);
  75. __property TCustomUnixDriveView * DriveView = { read = FDriveView, write = SetDriveView };
  76. public:
  77. __fastcall TUnixDirView(TComponent* Owner);
  78. virtual __fastcall ~TUnixDirView();
  79. virtual void __fastcall CreateDirectory(AnsiString DirName);
  80. virtual void __fastcall DisplayPropertiesMenu();
  81. virtual void __fastcall ExecuteHomeDirectory();
  82. virtual void __fastcall ExecuteParentDirectory();
  83. virtual void __fastcall ExecuteRootDirectory();
  84. virtual void __fastcall ReloadDirectory();
  85. virtual bool __fastcall ItemIsDirectory(TListItem * Item);
  86. virtual bool __fastcall ItemIsParentDirectory(TListItem * Item);
  87. virtual AnsiString __fastcall ItemFullFileName(TListItem * Item);
  88. virtual bool __fastcall PasteFromClipBoard(AnsiString TargetPath = "");
  89. __property bool Active = { read = GetActive };
  90. __property TTerminal *Terminal = { read = FTerminal, write = SetTerminal };
  91. __published:
  92. __property bool DDAllowMove = { read = FDDAllowMove,
  93. write = SetDDAllowMove, default = False };
  94. __property TDDDragFileName OnDDDragFileName = { read = FOnDDDragFileName,
  95. write = FOnDDDragFileName};
  96. __property bool ShowInaccesibleDirectories =
  97. { read=FShowInaccesibleDirectories, write=SetShowInaccesibleDirectories,
  98. default=true };
  99. __property PathComboBox;
  100. __property OnUpdateStatusBar;
  101. __property PathLabel;
  102. __property LoadAnimation;
  103. __property OnGetSelectFilter;
  104. __property AddParentDir;
  105. __property DimmHiddenFiles;
  106. __property ShowDirectories;
  107. __property DirsOnTop;
  108. __property ShowSubDirSize;
  109. __property ShowHiddenFiles;
  110. __property SingleClickToExec;
  111. __property WantUseDragImages;
  112. __property TargetPopupMenu;
  113. __property OnSelectItem;
  114. __property OnStartLoading;
  115. __property OnLoaded;
  116. __property OnExecFile;
  117. __property OnMatchMask;
  118. __property OnGetOverlay;
  119. __property OnDDDragEnter;
  120. __property OnDDDragLeave;
  121. __property OnDDDragOver;
  122. __property OnDDDrop;
  123. __property OnDDQueryContinueDrag;
  124. __property OnDDGiveFeedback;
  125. __property OnDDChooseEffect;
  126. __property OnDDDragDetect;
  127. __property OnDDEnd;
  128. __property OnDDCreateDragFileList;
  129. __property OnDDTargetHasDropHandler;
  130. __property OnDDProcessDropped;
  131. __property OnDDError;
  132. __property OnDDExecuted;
  133. __property OnDDFileOperation;
  134. __property OnDDFileOperationExecuted;
  135. __property OnDDCreateDataObject;
  136. __property OnDDMenuPopup;
  137. __property OnContextPopup;
  138. __property OnBeginRename;
  139. __property OnEndRename;
  140. __property OnHistoryChange;
  141. __property ColumnClick;
  142. __property MultiSelect;
  143. __property TNotifyEvent OnDisplayProperties = { read = FOnDisplayProperties, write = FOnDisplayProperties };
  144. __property ReadOnly;
  145. __property HeaderImages;
  146. };
  147. //---------------------------------------------------------------------------
  148. #endif