UnixDriveView.h 6.9 KB

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