UnixDriveView.h 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  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 TDDDragFileName OnDDDragFileName = { read = FOnDDDragFileName, write = FOnDDDragFileName};
  26. __property bool ShowInaccesibleDirectories = { read=FShowInaccesibleDirectories, write=SetShowInaccesibleDirectories, default=true };
  27. protected:
  28. DYNAMIC void __fastcall Delete(TTreeNode * Node);
  29. DYNAMIC void __fastcall Change(TTreeNode * Node);
  30. virtual void __fastcall CreateWnd();
  31. virtual void __fastcall DestroyWnd();
  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. TDDDragFileName FOnDDDragFileName;
  81. bool FShowInaccesibleDirectories;
  82. TRemoteFile * FDummyDragFile;
  83. TList * FPendingDelete;
  84. bool __fastcall IsRootNameStored();
  85. void __fastcall SetShowInaccesibleDirectories(bool value);
  86. void __fastcall CMShowingChanged(TMessage & Message);
  87. };
  88. //---------------------------------------------------------------------------
  89. class TUnixDriveView : public TCustomUnixDriveView
  90. {
  91. __published:
  92. __property DirView;
  93. __property RootName;
  94. __property OnDDDragFileName;
  95. __property OnDDEnd;
  96. __property TargetPopUpMenu;
  97. __property UseSystemContextMenu;
  98. __property OnDDDragEnter;
  99. __property OnDDDragLeave;
  100. __property OnDDDragOver;
  101. __property OnDDDrop;
  102. __property OnDDQueryContinueDrag;
  103. __property OnDDChooseEffect;
  104. __property OnDDGiveFeedback;
  105. __property OnDDDragDetect;
  106. __property OnDDProcessDropped;
  107. __property OnDDError;
  108. __property OnDDExecuted;
  109. __property OnDDFileOperation;
  110. __property OnDDFileOperationExecuted;
  111. __property OnDDCreateDragFileList;
  112. __property OnDDCreateDataObject;
  113. __property Align;
  114. __property Anchors;
  115. __property AutoExpand;
  116. __property BiDiMode;
  117. __property BorderStyle;
  118. __property BorderWidth;
  119. __property ChangeDelay;
  120. __property Color;
  121. __property Ctl3D;
  122. __property Constraints;
  123. __property DoubleBuffered;
  124. __property DragKind;
  125. __property DragCursor;
  126. __property DragMode = { default = dmAutomatic };
  127. __property OnDragDrop;
  128. __property OnDragOver;
  129. __property Enabled;
  130. __property Font;
  131. __property HideSelection;
  132. __property HotTrack;
  133. __property Indent;
  134. __property ParentBiDiMode;
  135. __property ParentColor;
  136. __property ParentCtl3D;
  137. __property ParentDoubleBuffered;
  138. __property ParentFont;
  139. __property ParentShowHint;
  140. __property PopupMenu;
  141. __property ReadOnly;
  142. __property RightClickSelect;
  143. __property RowSelect;
  144. __property ShowButtons;
  145. __property ShowHint;
  146. __property ShowLines;
  147. __property TabOrder;
  148. __property TabStop = { default = true };
  149. __property ToolTips;
  150. __property Visible;
  151. __property OnChange;
  152. __property OnChanging;
  153. __property OnClick;
  154. __property OnCollapsing;
  155. __property OnCollapsed;
  156. __property OnCompare;
  157. __property OnDblClick;
  158. __property OnDeletion;
  159. __property OnEdited;
  160. __property OnEditing;
  161. __property OnEndDock;
  162. __property OnEndDrag;
  163. __property OnEnter;
  164. __property OnExit;
  165. __property OnExpanding;
  166. __property OnExpanded;
  167. __property OnGetImageIndex;
  168. __property OnGetSelectedIndex;
  169. __property OnKeyDown;
  170. __property OnKeyPress;
  171. __property OnKeyUp;
  172. __property OnMouseDown;
  173. __property OnMouseMove;
  174. __property OnMouseUp;
  175. __property OnStartDock;
  176. __property OnStartDrag;
  177. __property OnBusy;
  178. public:
  179. __fastcall TUnixDriveView(TComponent * Owner);
  180. };
  181. //---------------------------------------------------------------------------
  182. #endif