UnixDriveView.h 7.3 KB

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