ScpExplorer.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. //---------------------------------------------------------------------------
  2. #ifndef ScpExplorerH
  3. #define ScpExplorerH
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <Controls.hpp>
  7. #include <StdCtrls.hpp>
  8. #include <Forms.hpp>
  9. #include <CustomDirView.hpp>
  10. #include <CustomScpExplorer.h>
  11. #include <CustomUnixDirView.hpp>
  12. #include <IEListView.hpp>
  13. #include <NortonLikeListView.hpp>
  14. #include <UnixDirView.h>
  15. #include <ComCtrls.hpp>
  16. #include <ExtCtrls.hpp>
  17. #include <Menus.hpp>
  18. #include <ToolWin.hpp>
  19. #include <Buttons.hpp>
  20. #include "CustomDriveView.hpp"
  21. #include "UnixDriveView.h"
  22. #include "TB2Dock.hpp"
  23. #include "TBX.hpp"
  24. #include "TB2Item.hpp"
  25. #include "TB2Toolbar.hpp"
  26. #include "TBXStatusBars.hpp"
  27. #include "TBXExtItems.hpp"
  28. #include "TB2ExtItems.hpp"
  29. #include "TBXToolPals.hpp"
  30. #include "TBXLists.hpp"
  31. #include "ThemePageControl.h"
  32. #include "PathLabel.hpp"
  33. #include <Vcl.AppEvnts.hpp>
  34. //---------------------------------------------------------------------------
  35. class TScpExplorerForm : public TCustomScpExplorerForm
  36. {
  37. __published:
  38. TTBXToolbar *MenuToolbar;
  39. TTBXSubmenuItem *TBXSubmenuItem18;
  40. TTBXItem *TBXItem107;
  41. TTBXItem *TBXItem108;
  42. TTBXItem *TBXItem109;
  43. TTBXItem *TBXItem110;
  44. TTBXItem *TBXItem111;
  45. TTBXItem *TBXItem112;
  46. TTBXSubmenuItem *TBXSubmenuItem5;
  47. TTBXItem *TBXItem25;
  48. TTBXSubmenuItem *TBXItem26;
  49. TTBXSeparatorItem *TBXSeparatorItem7;
  50. TTBXSubmenuItem *TBXItem30;
  51. TTBXItem *TBXItem31;
  52. TTBXItem *TBXItem32;
  53. TTBXItem *TBXItem33;
  54. TTBXItem *TBXItem34;
  55. TTBXItem *TBXItem35;
  56. TTBXItem *TBXItem36;
  57. TTBXSeparatorItem *TBXSeparatorItem8;
  58. TTBXSubmenuItem *CustomCommandsMenu;
  59. TTBXSubmenuItem *TBXSubmenuItem6;
  60. TTBXItem *TBXItem38;
  61. TTBXItem *TBXItem39;
  62. TTBXItem *TBXItem40;
  63. TTBXSeparatorItem *TBXSeparatorItem9;
  64. TTBXItem *TBXItem41;
  65. TTBXSubmenuItem *TBXSubmenuItem7;
  66. TTBXItem *TBXItem43;
  67. TTBXItem *TBXItem44;
  68. TTBXSubmenuItem *QueueSubmenuItem;
  69. TTBXItem *QueueEnableItem2;
  70. TTBXItem *TBXItem46;
  71. TTBXSeparatorItem *TBXSeparatorItem10;
  72. TTBXItem *TBXItem47;
  73. TTBXItem *TBXItem48;
  74. TTBXItem *TBXItem49;
  75. TTBXSeparatorItem *TBXSeparatorItem11;
  76. TTBXItem *TBXItem50;
  77. TTBXItem *TBXItem51;
  78. TTBXSeparatorItem *TBXSeparatorItem12;
  79. TTBXItem *TBXItem52;
  80. TTBXItem *TBXItem53;
  81. TTBXSeparatorItem *TBXSeparatorItem13;
  82. TTBXItem *TBXItem54;
  83. TTBXItem *TBXItem55;
  84. TTBXSeparatorItem *TBXSeparatorItem14;
  85. TTBXItem *TBXItem57;
  86. TTBXItem *TBXItem113;
  87. TTBXSubmenuItem *TBXSubmenuItem20;
  88. TTBXItem *TBXItem114;
  89. TTBXSubmenuItem *TBXSubmenuItem14;
  90. TTBXItem *TBXItem77;
  91. TTBXItem *TBXItem78;
  92. TTBXItem *TBXItem79;
  93. TTBXSeparatorItem *TBXSeparatorItem21;
  94. TTBXItem *TBXItem80;
  95. TTBXSeparatorItem *TBXSeparatorItem22;
  96. TTBXItem *TBXItem81;
  97. TTBXSubmenuItem *TBXSubmenuItem15;
  98. TTBXItem *TBXItem84;
  99. TTBXSeparatorItem *TBXSeparatorItem25;
  100. TTBXItem *TBXItem85;
  101. TTBXItem *TBXItem86;
  102. TTBXItem *TBXItem87;
  103. TTBXSeparatorItem *TBXSeparatorItem26;
  104. TTBXItem *TBXItem88;
  105. TTBXItem *TBXItem89;
  106. TTBXSubmenuItem *TBXSubmenuItem16;
  107. TTBXItem *TBXItem93;
  108. TTBXSeparatorItem *TBXSeparatorItem28;
  109. TTBXItem *TBXItem94;
  110. TTBXItem *TBXItem95;
  111. TTBXItem *TBXItem96;
  112. TTBXItem *TBXItem97;
  113. TTBXItem *TBXItem98;
  114. TTBXItem *TBXItem99;
  115. TTBXItem *TBXItem100;
  116. TTBXSubmenuItem *ColumndsSubmenuItem;
  117. TTBXItem *TBXItem101;
  118. TTBXItem *TBXItem102;
  119. TTBXItem *TBXItem103;
  120. TTBXItem *TBXItem104;
  121. TTBXItem *TBXItem105;
  122. TTBXItem *TBXItem106;
  123. TTBXSubmenuItem *TBXSubmenuItem22;
  124. TTBXItem *TBXItem116;
  125. TTBXSeparatorItem *TBXSeparatorItem30;
  126. TTBXItem *TBXItem117;
  127. TTBXItem *TBXItem118;
  128. TTBXItem *TBXItem119;
  129. TTBXSeparatorItem *TBXSeparatorItem31;
  130. TTBXItem *TBXItem120;
  131. TTBXSeparatorItem *TBXSeparatorItem32;
  132. TTBXItem *TBXItem121;
  133. TTBXSeparatorItem *TBXSeparatorItem33;
  134. TTBXItem *TBXItem122;
  135. TTBXSeparatorItem *TBXSeparatorItem1;
  136. TTBXItem *TBXItem1;
  137. TTBXItem *TBXItem2;
  138. TTBXItem *TBXItem5;
  139. TTBXItem *TBXItem6;
  140. TTBXSeparatorItem *TBXSeparatorItem2;
  141. TTBXSubmenuItem *TBXSubmenuItem1;
  142. TTBXSubmenuItem *TBXSubmenuItem2;
  143. TTBXItem *TBXItem7;
  144. TTBXItem *TBXItem8;
  145. TTBXItem *TBXItem9;
  146. TTBXItem *TBXItem10;
  147. TTBXItem *TBXItem11;
  148. TTBXItem *TBXItem12;
  149. TTBXItem *TBXItem13;
  150. TTBXItem *TBXItem15;
  151. TTBXSeparatorItem *TBXSeparatorItem3;
  152. TTBXItem *TBXItem16;
  153. TTBXItem *TBXItem17;
  154. TTBXItem *TBXItem18;
  155. TTBXItem *TBXItem19;
  156. TTBXSeparatorItem *TBXSeparatorItem4;
  157. TTBXItem *TBXItem20;
  158. TTBXSeparatorItem *TBXSeparatorItem5;
  159. TTBXItem *TBXItem21;
  160. TTBXToolbar *AddressToolbar;
  161. TTBXLabelItem *TBXLabelItem1;
  162. TTBXSubmenuItem *RemoteOpenDirButton;
  163. TTBXToolbar *ButtonsToolbar;
  164. TTBXSubmenuItem *BackButton;
  165. TTBXSubmenuItem *ForwardButton;
  166. TTBXSeparatorItem *TBXSeparatorItem6;
  167. TTBXItem *TBXItem23;
  168. TTBXItem *TBXItem24;
  169. TTBXItem *TBXItem29;
  170. TTBXItem *TBXItem37;
  171. TTBXSeparatorItem *TBXSeparatorItem15;
  172. TTBXSubmenuItem *TBXItem42;
  173. TTBXItem *TBXItem45;
  174. TTBXItem *TBXItem58;
  175. TTBXSubmenuItem *TBXItem59;
  176. TTBXItem *TBXItem60;
  177. TTBXSeparatorItem *TBXSeparatorItem16;
  178. TTBXItem *TBXItem63;
  179. TTBXSeparatorItem *TBXSeparatorItem17;
  180. TTBXItem *TBXItem64;
  181. TTBXItem *TBXItem65;
  182. TTBXToolbar *SelectionToolbar;
  183. TTBXItem *TBXItem66;
  184. TTBXItem *TBXItem67;
  185. TTBXSeparatorItem *TBXSeparatorItem18;
  186. TTBXItem *TBXItem68;
  187. TTBXItem *TBXItem69;
  188. TTBXItem *TBXItem70;
  189. TTBXToolbar *SessionToolbar2;
  190. TTBXItem *TBXItem123;
  191. TTBXSeparatorItem *TBXSeparatorItem34;
  192. TTBXItem *TBXItem124;
  193. TTBXSubmenuItem *TBXSubmenuItem23;
  194. TTBXItem *TBXItem125;
  195. TTBXToolbar *PreferencesToolbar;
  196. TTBXItem *TBXItem126;
  197. TTBXSeparatorItem *TBXSeparatorItem36;
  198. TTBXSubmenuItem *TBXSubmenuItem24;
  199. TTBXItem *TBXItem128;
  200. TTBXItem *TBXItem129;
  201. TTBXItem *TBXItem130;
  202. TTBXItem *TBXItem71;
  203. TTBXSubmenuItem *TBXSubmenuItem3;
  204. TTBXItem *TBXItem72;
  205. TTBXItem *TBXItem73;
  206. TTBXItem *TBXItem74;
  207. TTBXItem *TBXItem75;
  208. TTBXToolbar *SortToolbar;
  209. TTBXItem *TBXItem145;
  210. TTBXSeparatorItem *TBXSeparatorItem40;
  211. TTBXItem *TBXItem146;
  212. TTBXItem *TBXItem147;
  213. TTBXItem *TBXItem149;
  214. TTBXItem *TBXItem150;
  215. TTBXItem *TBXItem151;
  216. TTBXItem *TBXItem152;
  217. TTBXItem *TBXItem153;
  218. TTBXDock *LeftDock;
  219. TTBXDock *RightDock;
  220. TTBXDock *BottomDock;
  221. TTBXItem *TBXItem76;
  222. TTBXToolbar *UpdatesToolbar;
  223. TTBXSubmenuItem *TBXSubmenuItem4;
  224. TTBXItem *TBXItem184;
  225. TTBXSeparatorItem *TBXSeparatorItem46;
  226. TTBXItem *TBXItem180;
  227. TTBXItem *TBXItem187;
  228. TTBXItem *TBXItem181;
  229. TTBXItem *TBXItem182;
  230. TTBXItem *TBXItem185;
  231. TTBXSeparatorItem *TBXSeparatorItem45;
  232. TTBXItem *TBXItem183;
  233. TTBXItem *TBXItem82;
  234. TTBXToolbar *TransferToolbar;
  235. TTBXItem *TBXItem83;
  236. TTBXItem *TBXItem91;
  237. TTBXItem *TBXItem92;
  238. TTBXSeparatorItem *TBXSeparatorItem19;
  239. TTBXItem *TBXItem131;
  240. TTBXItem *TBXItem132;
  241. TTBXItem *TBXItem133;
  242. TTBXItem *TBXItem196;
  243. TTBXItem *TBXItem197;
  244. TTBXSeparatorItem *TBXSeparatorItem48;
  245. TTBXSubmenuItem *TBXSubmenuItem13;
  246. TTBXItem *TBXItem198;
  247. TTBXItem *TBXItem199;
  248. TTBXItem *TBXItem27;
  249. TTBXItem *TBXItem134;
  250. TTBXSubmenuItem *TBXSubmenuItem26;
  251. TTBXItem *TBXItem135;
  252. TTBXItem *TBXItem136;
  253. TTBXItem *TBXItem209;
  254. TTBXSeparatorItem *TBXSeparatorItem20;
  255. TTBXItem *TBXItem4;
  256. TTBXToolbar *CustomCommandsToolbar;
  257. TTBXItem *TBXItem28;
  258. TTBXDropDownItem *TransferDropDown;
  259. TTBXStringList *TransferList;
  260. TTBXLabelItem *TransferLabel;
  261. TTBXSeparatorItem *TBXSeparatorItem52;
  262. TTBXItem *TBXItem189;
  263. TTBXItem *TBXItem137;
  264. TTBXComboBoxItem *UnixPathComboBox;
  265. TTBXComboBoxItem *QueueSpeedComboBoxItem;
  266. TTBXItem *TBXItem138;
  267. TTBXSubmenuItem *TBXSubmenuItem8;
  268. TTBXItem *TBXItem222;
  269. TTBXItem *TBXItem223;
  270. TTBXItem *TBXItem224;
  271. TTBXItem *TBXItem3;
  272. TTBXItem *TBXItem139;
  273. TTBXSeparatorItem *TBXSeparatorItem53;
  274. TTBXSeparatorItem *TBXSeparatorItem24;
  275. TTBXLabelItem *TransferSettingsLabelItem;
  276. TTBXItem *TBXItem140;
  277. TTBXSubmenuItem *TBXItem141;
  278. TTBXItem *TBXItem142;
  279. TTBXSeparatorItem *TBXSeparatorItem27;
  280. TTBXItem *TBXItem143;
  281. TTBXSeparatorItem *TBXSeparatorItem35;
  282. TTBXItem *TBXItem56;
  283. TTBXSeparatorItem *TBXSeparatorItem37;
  284. TTBXItem *TBXItem144;
  285. TTBXItem *TBXItem148;
  286. TTBXItem *TBXItem154;
  287. TTBXItem *TBXItem155;
  288. TTBXItem *TBXItem156;
  289. TTBXItem *TBXItem157;
  290. TTBXSeparatorItem *TBXSeparatorItem38;
  291. TTBXItem *TBXItem158;
  292. TTBXSeparatorItem *TBXSeparatorItem39;
  293. TTBXSeparatorItem *TBXSeparatorItem41;
  294. TTBXSeparatorItem *TBXSeparatorItem61;
  295. TTBXItem *TBXItem212;
  296. TTBXItem *TBXItem213;
  297. TTBXSubmenuItem *TBXSubmenuItem25;
  298. TTBXItem *TBXItem214;
  299. TTBXItem *TBXItem216;
  300. TTBXItem *TBXItem159;
  301. TTBXSubmenuItem *TBXSubmenuItem28;
  302. TTBXItem *TBXItem160;
  303. TTBXSubmenuItem *NewSubmenuItem;
  304. TTBXItem *TBXItem247;
  305. TTBXItem *TBXItem244;
  306. TTBXItem *TBXItem246;
  307. TTBXItem *TBXItem14;
  308. TTBXSeparatorItem *TBXSeparatorItem42;
  309. TTBXItem *TBXItem62;
  310. TTBXItem *TBXItem127;
  311. TTBXSeparatorItem *TBXSeparatorItem43;
  312. TTBXItem *TBXItem161;
  313. TTBXItem *TBXItem162;
  314. TTBXItem *TBXItem163;
  315. TTBXItem *TBXItem164;
  316. TTBXItem *TBXItem165;
  317. TTBXSeparatorItem *TBXSeparatorItem44;
  318. TTBXSubmenuItem *TBXSubmenuItem29;
  319. TTBXItem *TBXItem166;
  320. TTBXItem *TBXItem218;
  321. TTBXItem *TBXItem167;
  322. TTBXSeparatorItem *TBXSeparatorItem47;
  323. TTBXColorItem *ColorMenuItem;
  324. TTBXSeparatorItem *TBXSeparatorItem49;
  325. TTBXSubmenuItem *TBXSubmenuItem9;
  326. TTBXSubmenuItem *TBXSubmenuItem10;
  327. TTBXItem *TBXItem168;
  328. TTBXSeparatorItem *TBXSeparatorItem23;
  329. TTBXItem *TBXItem61;
  330. TTBXItem *TBXItem22;
  331. TTBXSeparatorItem *TBXSeparatorItem29;
  332. TTBXItem *TBXItem90;
  333. TTBXSeparatorItem *TBXSeparatorItem50;
  334. TTBXSeparatorItem *TBXSeparatorItem73;
  335. TTBXItem *TBXItem264;
  336. TTBXSeparatorItem *TBXSeparatorItem51;
  337. TTBXItem *TBXItem115;
  338. TTBXItem *TBXItem266;
  339. TTBXSubmenuItem *TBXItem169;
  340. TTBXItem *TBXItem273;
  341. TTBXItem *TBXItem274;
  342. TTBXItem *TBXItem275;
  343. TTBXItem *TBXItem170;
  344. TTBXItem *TBXItem279;
  345. void __fastcall RemoteDirViewUpdateStatusBar(TObject *Sender,
  346. const TStatusFileInfo &FileInfo);
  347. void __fastcall UnixPathComboBoxBeginEdit(TTBEditItem *Sender,
  348. TTBEditItemViewer *Viewer, TEdit *EditControl);
  349. void __fastcall UnixPathComboBoxAcceptText(TObject *Sender,
  350. UnicodeString &NewText, bool &Accept);
  351. void __fastcall RemoteDirViewPathChange(TCustomDirView *Sender);
  352. void __fastcall QueueSubmenuItemPopup(TTBCustomItem *Sender,
  353. bool FromLink);
  354. void __fastcall RemoteStatusBarPanelClick(TTBXCustomStatusBar *Sender, TTBXStatusPanel *Panel);
  355. void __fastcall AddressToolbarEndModal(TObject *Sender);
  356. void __fastcall RemoteOpenDirButtonPopup(TTBCustomItem *Sender, bool FromLink);
  357. private:
  358. UnicodeString FStatusBarFileText;
  359. UnicodeString FFailedAddress;
  360. void __fastcall RemotePanelSplitterDblClick(TObject * Sender);
  361. protected:
  362. virtual bool __fastcall CopyParamDialog(TTransferDirection Direction,
  363. TTransferType Type, bool Temp, TStrings * FileList,
  364. UnicodeString & TargetDirectory, TGUICopyParamType & CopyParam, bool Confirm,
  365. bool DragDrop, int Options);
  366. virtual void __fastcall CopyParamDialogAfter(TTransferDirection Direction, bool Temp, const UnicodeString & TargetDirectory);
  367. virtual void __fastcall RestoreFormParams();
  368. virtual void __fastcall RestoreParams();
  369. virtual void __fastcall ConfigurationChanged();
  370. virtual TControl * __fastcall GetComponent(Byte Component);
  371. virtual void __fastcall FixControlsPlacement();
  372. DYNAMIC void __fastcall DoShow();
  373. virtual void __fastcall UpdateStatusPanelText(TTBXStatusPanel * Panel);
  374. virtual void __fastcall UpdateRemotePathComboBox(bool TextOnly);
  375. UnicodeString __fastcall RemotePathComboBoxText();
  376. virtual void __fastcall ToolbarItemResize(TTBXCustomDropDownItem * Item, int Width);
  377. virtual bool __fastcall UpdateToolbarDisplayMode();
  378. virtual void __fastcall UpdateImages();
  379. public:
  380. __fastcall TScpExplorerForm(TComponent* Owner);
  381. virtual Boolean __fastcall AllowedAction(TAction * Action, TActionAllowed Allowed);
  382. virtual void __fastcall StoreParams();
  383. virtual void __fastcall FullSynchronizeDirectories();
  384. virtual void __fastcall SynchronizeDirectories();
  385. virtual void __fastcall ChangePath(TOperationSide Side);
  386. virtual void __fastcall GoToAddress();
  387. virtual UnicodeString __fastcall DefaultDownloadTargetDirectory();
  388. virtual bool SupportedSession(TSessionData * SessionData);
  389. virtual void ResetLayoutColumns(TOperationSide Side);
  390. virtual void __fastcall UpdateControls();
  391. };
  392. //---------------------------------------------------------------------------
  393. #endif