UnixDriveView.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. //---------------------------------------------------------------------------
  2. #ifndef UnixDriveViewH
  3. #define UnixDriveViewH
  4. //---------------------------------------------------------------------------
  5. #include "CustomDriveView.hpp"
  6. #include "UnixDirView.h"
  7. //---------------------------------------------------------------------------
  8. struct TNodeData;
  9. class TTerminal;
  10. class TRemoteFileList;
  11. class TRemoteFile;
  12. //---------------------------------------------------------------------------
  13. class TCustomUnixDriveView : public TCustomDriveView
  14. {
  15. friend class TUnixDirView;
  16. public:
  17. __fastcall TCustomUnixDriveView(TComponent * Owner);
  18. virtual __fastcall ~TCustomUnixDriveView();
  19. virtual UnicodeString __fastcall NodePathName(TTreeNode * Node);
  20. TStrings * __fastcall DragFileList();
  21. void __fastcall UpdateDropTarget();
  22. void __fastcall UpdateDropSource();
  23. __property TUnixDirView * DirView = { read = FDirView, write = SetDirView };
  24. __property UnicodeString RootName = { read = FRootName, write = FRootName, stored = IsRootNameStored };
  25. __property bool DDAllowMove = { read = FDDAllowMove, write = FDDAllowMove, default = False };
  26. __property TDDDragFileName OnDDDragFileName = { read = FOnDDDragFileName, write = FOnDDDragFileName};
  27. __property bool ShowInaccesibleDirectories = { read=FShowInaccesibleDirectories, write=SetShowInaccesibleDirectories, default=true };
  28. protected:
  29. DYNAMIC void __fastcall Delete(TTreeNode * Node);
  30. DYNAMIC void __fastcall Change(TTreeNode * Node);
  31. virtual void __fastcall CreateWnd();
  32. void __fastcall LoadDirectory();
  33. TTreeNode * __fastcall LoadPath(UnicodeString Path);
  34. TTreeNode * __fastcall LoadPathEasy(TTreeNode * Parent,
  35. UnicodeString Path, TRemoteFile * File);
  36. void __fastcall UpdatePath(TTreeNode * Node, bool Force, bool CanLoad = false);
  37. void __fastcall CheckPendingDeletes();
  38. void __fastcall SetTerminal(TTerminal * value);
  39. inline TNodeData * __fastcall NodeData(const TTreeNode * Node);
  40. inline TRemoteFileList * __fastcall NodeFileList(const TTreeNode * Node);
  41. inline TRemoteFile * __fastcall NodeFile(const TTreeNode * Node);
  42. inline TRemoteFile * __fastcall NodeFileForce(TTreeNode * Node);
  43. inline bool __fastcall NodeIsHidden(const TTreeNode * Node);
  44. inline bool __fastcall NodeTryDelete(TTreeNode * Node, bool RememberIfFails);
  45. virtual TCustomDirView * __fastcall GetCustomDirView();
  46. virtual void __fastcall SetCustomDirView(TCustomDirView * Value);
  47. void __fastcall SetDirView(TUnixDirView * Value);
  48. virtual void __fastcall PerformDragDropFileOperation(TTreeNode * Node, int Effect);
  49. virtual void __fastcall DDChooseEffect(int KeyState, int & Effect);
  50. virtual bool __fastcall DragCompleteFileList();
  51. virtual TDropEffectSet __fastcall DDSourceEffects();
  52. TTreeNode * __fastcall FindNodeToPath(UnicodeString Path);
  53. virtual UnicodeString __fastcall NodePath(TTreeNode * Node);
  54. virtual bool __fastcall NodeIsRecycleBin(TTreeNode * Node);
  55. virtual bool __fastcall NodePathExists(TTreeNode * Node);
  56. virtual TColor __fastcall NodeColor(TTreeNode * Node);
  57. virtual TTreeNode * __fastcall FindPathNode(UnicodeString Path);
  58. virtual void __fastcall GetImageIndex(TTreeNode * Node);
  59. virtual Word __fastcall NodeOverlayIndexes(TTreeNode * Node);
  60. virtual void __fastcall ClearDragFileList(TFileList * FileList);
  61. virtual void __fastcall AddToDragFileList(TFileList * FileList, TTreeNode * Node);
  62. virtual void __fastcall ValidateDirectoryEx(TTreeNode * Node,
  63. TRecursiveScan Recurse, bool NewDirs);
  64. virtual void __fastcall RebuildTree();
  65. virtual void __fastcall DisplayContextMenu(TTreeNode * Node, const TPoint & ScreenPos);
  66. virtual void __fastcall DisplayPropertiesMenu(TTreeNode * Node);
  67. #pragma warn -inl
  68. BEGIN_MESSAGE_MAP
  69. VCL_MESSAGE_HANDLER(CM_SHOWINGCHANGED, TMessage, CMShowingChanged)
  70. END_MESSAGE_MAP(TCustomDriveView);
  71. #pragma warn +inl
  72. __property TTerminal * Terminal = { read = FTerminal, write = SetTerminal };
  73. private:
  74. TTerminal * FTerminal;
  75. TUnixDirView * FDirView;
  76. UnicodeString FRootName;
  77. bool FDirectoryLoaded;
  78. bool FIgnoreChange;
  79. TTreeNode * FPrevSelected;
  80. bool FDDAllowMove;
  81. TDDDragFileName FOnDDDragFileName;
  82. bool FShowInaccesibleDirectories;
  83. TRemoteFile * FDummyDragFile;
  84. TList * FPendingDelete;
  85. bool __fastcall IsRootNameStored();
  86. void __fastcall SetShowInaccesibleDirectories(bool value);
  87. void __fastcall CMShowingChanged(TMessage & Message);
  88. };
  89. //---------------------------------------------------------------------------
  90. class TUnixDriveView : public TCustomUnixDriveView
  91. {
  92. __published:
  93. __property DirView;
  94. __property RootName;
  95. __property OnDDDragFileName;
  96. __property OnDDEnd;
  97. __property TargetPopUpMenu;
  98. __property UseSystemContextMenu;
  99. __property OnDDDragEnter;
  100. __property OnDDDragLeave;
  101. __property OnDDDragOver;
  102. __property OnDDDrop;
  103. __property OnDDQueryContinueDrag;
  104. __property OnDDChooseEffect;
  105. __property OnDDGiveFeedback;
  106. __property OnDDDragDetect;
  107. __property OnDDProcessDropped;
  108. __property OnDDError;
  109. __property OnDDExecuted;
  110. __property OnDDFileOperation;
  111. __property OnDDFileOperationExecuted;
  112. __property OnDDMenuPopup;
  113. __property OnDDCreateDragFileList;
  114. __property OnDDCreateDataObject;
  115. __property Align;
  116. __property Anchors;
  117. __property AutoExpand;
  118. __property BiDiMode;
  119. __property BorderStyle;
  120. __property BorderWidth;
  121. __property ChangeDelay;
  122. __property Color;
  123. __property Ctl3D;
  124. __property Constraints;
  125. __property DoubleBuffered;
  126. __property DragKind;
  127. __property DragCursor;
  128. __property DragMode = { default = dmAutomatic };
  129. __property OnDragDrop;
  130. __property OnDragOver;
  131. __property Enabled;
  132. __property Font;
  133. __property HideSelection;
  134. __property HotTrack;
  135. __property Indent;
  136. __property ParentBiDiMode;
  137. __property ParentColor;
  138. __property ParentCtl3D;
  139. __property ParentDoubleBuffered;
  140. __property ParentFont;
  141. __property ParentShowHint;
  142. __property PopupMenu;
  143. __property ReadOnly;
  144. __property RightClickSelect;
  145. __property RowSelect;
  146. __property ShowButtons;
  147. __property ShowHint;
  148. __property ShowLines;
  149. __property TabOrder;
  150. __property TabStop = { default = true };
  151. __property ToolTips;
  152. __property Visible;
  153. __property OnChange;
  154. __property OnChanging;
  155. __property OnClick;
  156. __property OnCollapsing;
  157. __property OnCollapsed;
  158. __property OnCompare;
  159. __property OnDblClick;
  160. __property OnDeletion;
  161. __property OnEdited;
  162. __property OnEditing;
  163. __property OnEndDock;
  164. __property OnEndDrag;
  165. __property OnEnter;
  166. __property OnExit;
  167. __property OnExpanding;
  168. __property OnExpanded;
  169. __property OnGetImageIndex;
  170. __property OnGetSelectedIndex;
  171. __property OnKeyDown;
  172. __property OnKeyPress;
  173. __property OnKeyUp;
  174. __property OnMouseDown;
  175. __property OnMouseMove;
  176. __property OnMouseUp;
  177. __property OnStartDock;
  178. __property OnStartDrag;
  179. __property OnBusy;
  180. public:
  181. __fastcall TUnixDriveView(TComponent * Owner);
  182. };
  183. //---------------------------------------------------------------------------
  184. #endif