ScpCommander.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. //---------------------------------------------------------------------------
  2. #ifndef ScpCommanderH
  3. #define ScpCommanderH
  4. //---------------------------------------------------------------------------
  5. #include "CustomScpExplorer.h"
  6. #include <Classes.hpp>
  7. #include <Controls.hpp>
  8. #include <StdCtrls.hpp>
  9. #include <Forms.hpp>
  10. #include <CustomDirView.hpp>
  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 <ToolWin.hpp>
  18. #include <DirView.hpp>
  19. #include <PathLabel.hpp>
  20. #include <WinInterface.h>
  21. #include "HistoryComboBox.hpp"
  22. #include "CustomDriveView.hpp"
  23. #include "DriveView.hpp"
  24. #include "UnixDriveView.h"
  25. #include "TB2Dock.hpp"
  26. #include "TB2Item.hpp"
  27. #include "TB2Toolbar.hpp"
  28. #include "TBX.hpp"
  29. #include <Menus.hpp>
  30. #include "TB2ExtItems.hpp"
  31. #include "TBXExtItems.hpp"
  32. #include "TBXLists.hpp"
  33. #include "TBXStatusBars.hpp"
  34. #include "TBXToolPals.hpp"
  35. #include "ThemePageControl.h"
  36. #include <Vcl.AppEvnts.hpp>
  37. //---------------------------------------------------------------------------
  38. class TScpCommanderForm : public TCustomScpExplorerForm
  39. {
  40. __published:
  41. TSplitter *Splitter;
  42. TPanel *LocalPanel;
  43. TTBXStatusBar *LocalStatusBar;
  44. TDirView *LocalDirView;
  45. TPathLabel *LocalPathLabel;
  46. TPathLabel *RemotePathLabel;
  47. TTBXStatusBar *StatusBar;
  48. TDriveView *LocalDriveView;
  49. TSplitter *LocalPanelSplitter;
  50. TTBXToolbar *SessionToolbar2;
  51. TTBXSeparatorItem *TBXSeparatorItem34;
  52. TTBXItem *TBXItem124;
  53. TTBXSubmenuItem *TBXSubmenuItem23;
  54. TTBXItem *TBXItem125;
  55. TTBXToolbar *PreferencesToolbar;
  56. TTBXItem *TBXItem126;
  57. TTBXSeparatorItem *TBXSeparatorItem36;
  58. TTBXSubmenuItem *TBXSubmenuItem24;
  59. TTBXItem *TBXItem128;
  60. TTBXItem *TBXItem129;
  61. TTBXItem *TBXItem130;
  62. TTBXToolbar *SortToolbar;
  63. TTBXItem *TBXItem145;
  64. TTBXSeparatorItem *TBXSeparatorItem40;
  65. TTBXItem *TBXItem146;
  66. TTBXItem *TBXItem147;
  67. TTBXItem *TBXItem148;
  68. TTBXItem *TBXItem149;
  69. TTBXItem *TBXItem150;
  70. TTBXItem *TBXItem151;
  71. TTBXItem *TBXItem152;
  72. TTBXItem *TBXItem153;
  73. TTBXToolbar *CommandsToolbar;
  74. TTBXItem *TBXItem154;
  75. TTBXItem *TBXItem155;
  76. TTBXItem *TBXItem156;
  77. TTBXSeparatorItem *TBXSeparatorItem41;
  78. TTBXItem *TBXItem157;
  79. TTBXSeparatorItem *TBXSeparatorItem42;
  80. TTBXItem *TBXItem158;
  81. TTBXToolbar *MenuToolbar;
  82. TTBXSubmenuItem *LocalMenuButton;
  83. TTBXItem *TBXItem1;
  84. TTBXSeparatorItem *TBXSeparatorItem1;
  85. TTBXSubmenuItem *TBXSubmenuItem2;
  86. TTBXItem *TBXItem2;
  87. TTBXItem *TBXItem3;
  88. TTBXSeparatorItem *TBXSeparatorItem2;
  89. TTBXItem *TBXItem4;
  90. TTBXItem *TBXItem5;
  91. TTBXItem *TBXItem6;
  92. TTBXSeparatorItem *TBXSeparatorItem3;
  93. TTBXItem *TBXItem7;
  94. TTBXItem *TBXItem8;
  95. TTBXItem *TBXItem9;
  96. TTBXItem *TBXItem10;
  97. TTBXItem *TBXItem11;
  98. TTBXSeparatorItem *TBXSeparatorItem4;
  99. TTBXSubmenuItem *TBXSubmenuItem3;
  100. TTBXItem *TBXItem12;
  101. TTBXSeparatorItem *TBXSeparatorItem5;
  102. TTBXItem *TBXItem13;
  103. TTBXItem *TBXItem14;
  104. TTBXItem *TBXItem15;
  105. TTBXItem *TBXItem16;
  106. TTBXItem *TBXItem17;
  107. TTBXItem *TBXItem18;
  108. TTBXSubmenuItem *TBXSubmenuItem4;
  109. TTBXItem *TBXItem19;
  110. TTBXItem *TBXItem20;
  111. TTBXItem *TBXItem21;
  112. TTBXItem *TBXItem22;
  113. TTBXItem *TBXItem23;
  114. TTBXSubmenuItem *TBXSubmenuItem18;
  115. TTBXItem *TBXItem107;
  116. TTBXItem *TBXItem108;
  117. TTBXItem *TBXItem109;
  118. TTBXItem *TBXItem110;
  119. TTBXItem *TBXItem111;
  120. TTBXItem *TBXItem112;
  121. TTBXSubmenuItem *TBXSubmenuItem5;
  122. TTBXSeparatorItem *TBXSeparatorItem6;
  123. TTBXItem *TBXItem25;
  124. TTBXSubmenuItem *TBXItem26;
  125. TTBXItem *TBXItem29;
  126. TTBXSeparatorItem *TBXSeparatorItem7;
  127. TTBXSubmenuItem *CurrentCopyItem;
  128. TTBXItem *CurrentCopyToItem;
  129. TTBXItem *CurrentMoveItem;
  130. TTBXItem *CurrentMoveToItem;
  131. TTBXItem *TBXItem34;
  132. TTBXItem *TBXItem35;
  133. TTBXItem *TBXItem36;
  134. TTBXSeparatorItem *TBXSeparatorItem8;
  135. TTBXSubmenuItem *CustomCommandsMenu;
  136. TTBXSubmenuItem *TBXSubmenuItem6;
  137. TTBXItem *TBXItem37;
  138. TTBXItem *TBXItem38;
  139. TTBXItem *TBXItem39;
  140. TTBXItem *TBXItem40;
  141. TTBXSeparatorItem *TBXSeparatorItem9;
  142. TTBXItem *TBXItem41;
  143. TTBXSubmenuItem *TBXSubmenuItem7;
  144. TTBXItem *TBXItem42;
  145. TTBXItem *TBXItem43;
  146. TTBXItem *TBXItem44;
  147. TTBXItem *TBXItem45;
  148. TTBXSubmenuItem *QueueSubmenuItem;
  149. TTBXItem *TBXItem46;
  150. TTBXItem *QueueEnableItem2;
  151. TTBXSeparatorItem *TBXSeparatorItem10;
  152. TTBXItem *TBXItem47;
  153. TTBXItem *TBXItem48;
  154. TTBXItem *TBXItem49;
  155. TTBXSeparatorItem *TBXSeparatorItem11;
  156. TTBXItem *TBXItem50;
  157. TTBXItem *TBXItem51;
  158. TTBXSeparatorItem *TBXSeparatorItem12;
  159. TTBXItem *TBXItem52;
  160. TTBXItem *TBXItem53;
  161. TTBXSeparatorItem *TBXSeparatorItem13;
  162. TTBXItem *TBXItem54;
  163. TTBXItem *TBXItem55;
  164. TTBXSeparatorItem *TBXSeparatorItem14;
  165. TTBXItem *TBXItem57;
  166. TTBXSeparatorItem *TBXSeparatorItem15;
  167. TTBXItem *TBXItem58;
  168. TTBXSubmenuItem *TBXSubmenuItem19;
  169. TTBXItem *TBXItem113;
  170. TTBXSubmenuItem *TBXSubmenuItem20;
  171. TTBXSeparatorItem *TBXSeparatorItem29;
  172. TTBXSubmenuItem *TBXSubmenuItem21;
  173. TTBXItem *TBXItem114;
  174. TTBXItem *TBXItem115;
  175. TTBXSubmenuItem *TBXSubmenuItem9;
  176. TTBXSubmenuItem *TBXSubmenuItem10;
  177. TTBXItem *TBXItem60;
  178. TTBXItem *TBXItem62;
  179. TTBXItem *TBXItem63;
  180. TTBXItem *TBXItem64;
  181. TTBXSubmenuItem *TBXSubmenuItem11;
  182. TTBXItem *TBXItem65;
  183. TTBXItem *TBXItem66;
  184. TTBXSeparatorItem *TBXSeparatorItem16;
  185. TTBXItem *TBXItem67;
  186. TTBXSeparatorItem *TBXSeparatorItem17;
  187. TTBXItem *TBXItem68;
  188. TTBXSubmenuItem *TBXSubmenuItem12;
  189. TTBXItem *TBXItem69;
  190. TTBXItem *TBXItem70;
  191. TTBXSeparatorItem *TBXSeparatorItem18;
  192. TTBXItem *TBXItem71;
  193. TTBXSeparatorItem *TBXSeparatorItem19;
  194. TTBXItem *TBXItem72;
  195. TTBXSeparatorItem *TBXSeparatorItem20;
  196. TTBXItem *TBXItem73;
  197. TTBXItem *TBXItem74;
  198. TTBXItem *TBXItem75;
  199. TTBXSubmenuItem *TBXSubmenuItem14;
  200. TTBXItem *TBXItem77;
  201. TTBXItem *TBXItem78;
  202. TTBXItem *TBXItem79;
  203. TTBXSeparatorItem *TBXSeparatorItem21;
  204. TTBXItem *TBXItem80;
  205. TTBXSeparatorItem *TBXSeparatorItem22;
  206. TTBXItem *TBXItem81;
  207. TTBXSeparatorItem *TBXSeparatorItem23;
  208. TTBXItem *TBXItem82;
  209. TTBXSubmenuItem *RemoteMenuButton;
  210. TTBXItem *TBXItem83;
  211. TTBXSeparatorItem *TBXSeparatorItem24;
  212. TTBXSubmenuItem *TBXSubmenuItem15;
  213. TTBXItem *TBXItem84;
  214. TTBXSeparatorItem *TBXSeparatorItem25;
  215. TTBXItem *TBXItem85;
  216. TTBXItem *TBXItem86;
  217. TTBXItem *TBXItem87;
  218. TTBXSeparatorItem *TBXSeparatorItem26;
  219. TTBXItem *TBXItem88;
  220. TTBXItem *TBXItem89;
  221. TTBXItem *TBXItem90;
  222. TTBXItem *TBXItem91;
  223. TTBXItem *TBXItem92;
  224. TTBXSeparatorItem *TBXSeparatorItem27;
  225. TTBXSubmenuItem *TBXSubmenuItem16;
  226. TTBXItem *TBXItem93;
  227. TTBXSeparatorItem *TBXSeparatorItem28;
  228. TTBXItem *TBXItem94;
  229. TTBXItem *TBXItem95;
  230. TTBXItem *TBXItem96;
  231. TTBXItem *TBXItem97;
  232. TTBXItem *TBXItem98;
  233. TTBXItem *TBXItem99;
  234. TTBXItem *TBXItem100;
  235. TTBXSubmenuItem *TBXSubmenuItem17;
  236. TTBXItem *TBXItem101;
  237. TTBXItem *TBXItem102;
  238. TTBXItem *TBXItem103;
  239. TTBXItem *TBXItem104;
  240. TTBXItem *TBXItem105;
  241. TTBXItem *TBXItem106;
  242. TTBXSubmenuItem *TBXSubmenuItem22;
  243. TTBXItem *TBXItem116;
  244. TTBXSeparatorItem *TBXSeparatorItem30;
  245. TTBXItem *TBXItem117;
  246. TTBXItem *TBXItem118;
  247. TTBXItem *TBXItem119;
  248. TTBXSeparatorItem *TBXSeparatorItem31;
  249. TTBXItem *TBXItem120;
  250. TTBXSeparatorItem *TBXSeparatorItem32;
  251. TTBXItem *TBXItem121;
  252. TTBXSeparatorItem *TBXSeparatorItem33;
  253. TTBXItem *TBXItem122;
  254. TTBXDock *LocalTopDock;
  255. TTBXToolbar *LocalPathToolbar;
  256. TTBXToolbar *LocalHistoryToolbar;
  257. TTBXSubmenuItem *LocalBackButton;
  258. TTBXSubmenuItem *LocalForwardButton;
  259. TTBXToolbar *LocalNavigationToolbar;
  260. TTBXItem *TBXItem159;
  261. TTBXItem *TBXItem160;
  262. TTBXItem *TBXItem161;
  263. TTBXItem *TBXItem162;
  264. TTBXSeparatorItem *TBXSeparatorItem43;
  265. TTBXItem *TBXItem164;
  266. TTBXDock *LocalBottomDock;
  267. TTBXDock *RemoteTopDock;
  268. TTBXToolbar *RemotePathToolbar;
  269. TTBXToolbar *RemoteHistoryToolbar;
  270. TTBXSubmenuItem *RemoteBackButton;
  271. TTBXSubmenuItem *RemoteForwardButton;
  272. TTBXToolbar *RemoteNavigationToolbar;
  273. TTBXItem *TBXItem165;
  274. TTBXItem *TBXItem166;
  275. TTBXItem *TBXItem167;
  276. TTBXItem *TBXItem168;
  277. TTBXSeparatorItem *TBXSeparatorItem44;
  278. TTBXItem *TBXItem170;
  279. TTBXDock *RemoteBottomDock;
  280. TTBXDock *BottomDock;
  281. TTBXToolbar *Toolbar2Toolbar;
  282. TTBXItem *TBXItem171;
  283. TTBXItem *TBXItem172;
  284. TTBXItem *CurrentCopyToolbar2Item;
  285. TTBXItem *CurrentMoveToolbar2Item;
  286. TTBXItem *TBXItem175;
  287. TTBXItem *TBXItem176;
  288. TTBXItem *TBXItem177;
  289. TTBXItem *TBXItem178;
  290. TTBXItem *TBXItem179;
  291. TTBXToolbar *UpdatesToolbar;
  292. TTBXSubmenuItem *TBXSubmenuItem1;
  293. TTBXItem *TBXItem180;
  294. TTBXItem *TBXItem181;
  295. TTBXItem *TBXItem182;
  296. TTBXSeparatorItem *TBXSeparatorItem45;
  297. TTBXItem *TBXItem183;
  298. TTBXItem *TBXItem184;
  299. TTBXSeparatorItem *TBXSeparatorItem46;
  300. TTBXItem *TBXItem185;
  301. TTBXItem *TBXItem186;
  302. TTBXItem *TBXItem187;
  303. TTBXToolbar *TransferToolbar;
  304. TTBXItem *TBXItem188;
  305. TTBXItem *TBXItem190;
  306. TTBXSeparatorItem *TBXSeparatorItem47;
  307. TTBXItem *TBXItem191;
  308. TTBXItem *TBXItem192;
  309. TTBXItem *TBXItem193;
  310. TTBXItem *TBXItem196;
  311. TTBXItem *TBXItem197;
  312. TTBXSeparatorItem *TBXSeparatorItem48;
  313. TTBXSubmenuItem *TBXSubmenuItem13;
  314. TTBXItem *TBXItem198;
  315. TTBXItem *TBXItem199;
  316. TTBXItem *TBXItem27;
  317. TTBXSubmenuItem *TBXSubmenuItem26;
  318. TTBXItem *TBXItem24;
  319. TTBXItem *TBXItem209;
  320. TTBXItem *TBXItem28;
  321. TTBXToolbar *CustomCommandsToolbar;
  322. TTBXItem *TBXItem215;
  323. TTBXSeparatorItem *TBXSeparatorItem49;
  324. TTBXColorItem *ColorMenuItem;
  325. TTBXDropDownItem *TransferDropDown;
  326. TTBXStringList *TransferList;
  327. TTBXLabelItem *TransferLabel;
  328. TTBXSeparatorItem *TBXSeparatorItem52;
  329. TTBXItem *TBXItem189;
  330. TTBXItem *TBXItem218;
  331. TTBXItem *TBXItem219;
  332. TTBXComboBoxItem *RemotePathComboBox;
  333. TTBXComboBoxItem *LocalPathComboBox;
  334. TTBXToolbar *CommandLineToolbar;
  335. TTBXComboBoxItem *CommandLineCombo;
  336. TTBXLabelItem *CommandLinePromptLabel;
  337. TTBXSubmenuItem *LocalOpenDirButton;
  338. TTBXSubmenuItem *RemoteOpenDirButton;
  339. TTBXComboBoxItem *QueueSpeedComboBoxItem;
  340. TTBXItem *TBXItem220;
  341. TTBXItem *TBXItem221;
  342. TTBXSubmenuItem *TBXSubmenuItem8;
  343. TTBXItem *TBXItem222;
  344. TTBXItem *TBXItem223;
  345. TTBXItem *TBXItem224;
  346. TTBXItem *TBXItem210;
  347. TTBXSubmenuItem *TBXItem228;
  348. TTBXSubmenuItem *TBXItem229;
  349. TTBXItem *TBXItem230;
  350. TTBXSubmenuItem *TBXSubmenuItem231;
  351. TTBXToolbar *LocalFileToolbar;
  352. TTBXSubmenuItem *LocalCopyItem;
  353. TTBXItem *LocalMoveItem;
  354. TTBXItem *TBXItem233;
  355. TTBXItem *TBXItem234;
  356. TTBXSubmenuItem *TBXItem235;
  357. TTBXSeparatorItem *TBXSeparatorItem35;
  358. TTBXItem *TBXItem236;
  359. TTBXSeparatorItem *TBXSeparatorItem54;
  360. TTBXToolbar *RemoteFileToolbar;
  361. TTBXSubmenuItem *RemoteCopyItem;
  362. TTBXItem *RemoteMoveItem;
  363. TTBXSeparatorItem *TBXSeparatorItem55;
  364. TTBXItem *TBXItem240;
  365. TTBXItem *TBXItem241;
  366. TTBXSubmenuItem *TBXItem242;
  367. TTBXItem *TBXItem243;
  368. TTBXSeparatorItem *TBXSeparatorItem56;
  369. TTBXItem *TBXItem59;
  370. TTBXItem *TBXItem136;
  371. TTBXLabelItem *TransferSettingsLabelItem;
  372. TTBXToolbar *LocalSelectionToolbar;
  373. TTBXItem *TBXItem30;
  374. TTBXItem *TBXItem32;
  375. TTBXItem *TBXItem137;
  376. TTBXToolbar *RemoteSelectionToolbar;
  377. TTBXItem *TBXItem138;
  378. TTBXItem *TBXItem139;
  379. TTBXItem *TBXItem140;
  380. TTBXItem *TBXItem61;
  381. TTBXItem *TBXItem131;
  382. TTBXSeparatorItem *TBXSeparatorItem37;
  383. TTBXItem *TBXItem132;
  384. TTBXItem *TBXItem133;
  385. TTBXSeparatorItem *TBXSeparatorItem38;
  386. TPanel *QueueSeparatorPanel;
  387. TTBXSeparatorItem *TBXSeparatorItem39;
  388. TTBXItem *TBXItem134;
  389. TTBXItem *TBXItem56;
  390. TTBXSeparatorItem *TBXSeparatorItem50;
  391. TTBXItem *TBXItem135;
  392. TTBXItem *TBXItem141;
  393. TTBXItem *TBXItem142;
  394. TTBXItem *TBXItem143;
  395. TTBXItem *TBXItem144;
  396. TTBXItem *CurrentCopyNonQueueItem;
  397. TTBXItem *CurrentCopyQueueItem;
  398. TTBXSeparatorItem *TBXSeparatorItem51;
  399. TTBXItem *TBXItem174;
  400. TTBXSeparatorItem *TBXSeparatorItem58;
  401. TTBXItem *TBXItem200;
  402. TTBXSeparatorItem *TBXSeparatorItem59;
  403. TTBXSeparatorItem *TBXSeparatorItem60;
  404. TTBXSeparatorItem *TBXSeparatorItem61;
  405. TTBXItem *TBXItem212;
  406. TTBXItem *TBXItem213;
  407. TTBXSubmenuItem *TBXSubmenuItem25;
  408. TTBXItem *TBXItem214;
  409. TTBXItem *TBXItem216;
  410. TTBXItem *TBXItem217;
  411. TTBXSubmenuItem *TBXSubmenuItem28;
  412. TTBXItem *TBXItem227;
  413. TTBXSubmenuItem *RemoteNewSubmenuItem;
  414. TTBXItem *TBXItem244;
  415. TTBXItem *TBXItem246;
  416. TTBXItem *TBXItem247;
  417. TTBXSubmenuItem *LocalNewSubmenuItem;
  418. TTBXItem *TBXItem248;
  419. TTBXItem *TBXItem249;
  420. TTBXItem *TBXItem250;
  421. TTBXItem *TBXItem76;
  422. TTBXItem *TBXItem127;
  423. TTBXSeparatorItem *TBXSeparatorItem62;
  424. TTBXItem *TBXItem163;
  425. TTBXItem *TBXItem169;
  426. TTBXSeparatorItem *TBXSeparatorItem63;
  427. TTBXItem *TBXItem237;
  428. TTBXItem *TBXItem245;
  429. TTBXSeparatorItem *TBXSeparatorItem64;
  430. TTBXItem *TBXItem251;
  431. TTBXItem *TBXItem252;
  432. TTBXItem *TBXItem253;
  433. TTBXItem *TBXItem255;
  434. TTBXSeparatorItem *TBXSeparatorItem65;
  435. TTBXItem *TBXItem256;
  436. TDriveView *OtherLocalDriveView;
  437. TDirView *OtherLocalDirView;
  438. TTBXItem *TBXItem257;
  439. TTBXSubmenuItem *TBXSubmenuItem29;
  440. TTBXSeparatorItem *TBXSeparatorItem53;
  441. TTBXSeparatorItem *TBXSeparatorItem66;
  442. TTBXItem *TBXItem31;
  443. TTBXSubmenuItem *TBXSubmenuItem30;
  444. TTBXItem *TBXItem33;
  445. TTBXSubmenuItem *TBXSubmenuItem31;
  446. TTBXItem *TBXItem123;
  447. TTBXItem *TBXItem231;
  448. TTBXSeparatorItem *TBXSeparatorItem67;
  449. TTBXItem *TBXItem232;
  450. TTBXSeparatorItem *TBXSeparatorItem68;
  451. TTBXItem *TBXItem238;
  452. void __fastcall SplitterMoved(TObject *Sender);
  453. void __fastcall SplitterCanResize(TObject *Sender, int &NewSize,
  454. bool &Accept);
  455. void __fastcall SplitterDblClick(TObject *Sender);
  456. void __fastcall PanelSplitterDblClick(TObject * Sender);
  457. void __fastcall LocalDirViewExecFile(TObject *Sender, TListItem *Item,
  458. bool &AllowExec);
  459. void __fastcall LocalFileControlDDDragEnter(TObject *Sender,
  460. IDataObject *DataObj, int grfKeyState, TPoint &Point,
  461. int &dwEffect, bool &Accept);
  462. void __fastcall LocalFileControlDDFileOperation(
  463. TObject *Sender, int dwEffect, UnicodeString SourcePath, UnicodeString TargetPath,
  464. bool Paste, bool &DoOperation);
  465. void __fastcall RemoteFileControlDDFileOperationExecuted(TObject *Sender,
  466. int dwEffect, UnicodeString SourcePath, UnicodeString TargetPath);
  467. void __fastcall LocalDirViewDDTargetHasDropHandler(TObject *Sender,
  468. TListItem *Item, int &Effect, bool &DropHandler);
  469. void __fastcall PathLabelDblClick(TObject *Sender);
  470. void __fastcall LocalDirViewEnter(TObject *Sender);
  471. void __fastcall LocalPathLabelGetStatus(TCustomPathLabel *Sender,
  472. bool &Active);
  473. void __fastcall RemotePathLabelGetStatus(TCustomPathLabel *Sender,
  474. bool &Active);
  475. void __fastcall LocalDriveViewEnter(TObject *Sender);
  476. void __fastcall LocalPathLabelPathClick(TCustomPathLabel *Sender,
  477. UnicodeString Path);
  478. void __fastcall RemotePathLabelPathClick(TCustomPathLabel *Sender,
  479. UnicodeString Path);
  480. void __fastcall LocalDirViewFileIconForName(TObject *Sender,
  481. TListItem *Item, UnicodeString &FileName);
  482. void __fastcall LocalDirViewUpdateStatusBar(TObject *Sender,
  483. const TStatusFileInfo &FileInfo);
  484. void __fastcall RemoteDirViewUpdateStatusBar(TObject *Sender,
  485. const TStatusFileInfo &FileInfo);
  486. void __fastcall LocalStatusBarClick(TObject *Sender);
  487. void __fastcall RemoteDirViewPathChange(TCustomDirView *Sender);
  488. void __fastcall LocalDirViewPathChange(TCustomDirView *Sender);
  489. void __fastcall LocalPathComboBoxCancel(TObject *Sender);
  490. void __fastcall LocalPathComboBoxAdjustImageIndex(
  491. TTBXComboBoxItem * Sender, const UnicodeString AText, int AIndex, int & ImageIndex);
  492. void __fastcall LocalPathComboBoxItemClick(TObject * Sender);
  493. void __fastcall CommandLineComboPopup(TTBCustomItem *Sender,
  494. bool FromLink);
  495. void __fastcall CommandLineComboBeginEdit(TTBEditItem *Sender,
  496. TTBEditItemViewer *Viewer, TEdit *EditControl);
  497. void __fastcall LocalDriveViewRefreshDrives(TObject *Sender);
  498. void __fastcall QueueSubmenuItemPopup(TTBCustomItem *Sender,
  499. bool FromLink);
  500. void __fastcall DirViewHistoryGo(TCustomDirView *Sender, int Index,
  501. bool &Cancel);
  502. void __fastcall LocalDirViewContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled);
  503. void __fastcall LocalStatusBarPanelClick(TTBXCustomStatusBar *Sender, TTBXStatusPanel *Panel);
  504. void __fastcall RemoteStatusBarPanelClick(TTBXCustomStatusBar *Sender, TTBXStatusPanel *Panel);
  505. void __fastcall RemotePathLabelMaskClick(TObject *Sender);
  506. void __fastcall LocalPathLabelMaskClick(TObject *Sender);
  507. void __fastcall LocalOpenDirButtonPopup(TTBCustomItem *Sender, bool FromLink);
  508. void __fastcall RemoteOpenDirButtonPopup(TTBCustomItem *Sender, bool FromLink);
  509. void __fastcall OtherLocalDirViewEnter(TObject *Sender);
  510. void __fastcall OtherLocalDriveViewEnter(TObject *Sender);
  511. void __fastcall OtherLocalDirViewContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled);
  512. void __fastcall OtherLocalDirViewUpdateStatusBar(TObject *Sender, const TStatusFileInfo &FileInfo);
  513. void __fastcall OtherLocalDirViewPathChange(TCustomDirView *Sender);
  514. void __fastcall LocalDriveViewNeedHiddenDirectories(TObject *Sender);
  515. private:
  516. bool FConstructed;
  517. double FLastLeftPanelWidth;
  518. double FLeftPanelWidth;
  519. int FNormalPanelsWidth;
  520. int FLastWidth;
  521. bool FSynchronisingBrowse;
  522. TStrings * FInternalDDDownloadList;
  523. UnicodeString FPrevPath[2];
  524. bool FFirstTerminal;
  525. UnicodeString FDDFakeFileTarget;
  526. bool FCommandLineComboPopulated;
  527. TStrings* FLocalPathComboBoxPaths;
  528. int FLocalSpecialPaths;
  529. unsigned int FSpecialFolders;
  530. TEdit * FCommandLineComboEdit;
  531. TWndMethod FToolbarEditOldWndProc;
  532. bool FPanelsRestored;
  533. bool FExplorerKeyboardShortcuts;
  534. bool FForceSystemContextMenu;
  535. void __fastcall SetLeftPanelWidth(double value);
  536. double __fastcall GetLeftPanelWidth();
  537. inline TPanel * __fastcall Panel(bool Left);
  538. TPanel * __fastcall CurrentPanel();
  539. void __fastcall CommandLineComboEditWndProc(TMessage & Message);
  540. void __fastcall ExitToolbar();
  541. void __fastcall UpdateToolbar2ItemCaption(TTBCustomItem * Item);
  542. void __fastcall SetShortcuts();
  543. void __fastcall UpdatePanelsPathLabelsStatus();
  544. void __fastcall DoLocalDefaultDirectory(TDirView * DirView, const UnicodeString & LastPath);
  545. void __fastcall LocalDefaultDirectory();
  546. TOperationSide __fastcall GetOtherSize(TOperationSide Side);
  547. void __fastcall DoLocalDirViewContextPopup(TOperationSide Side, TPoint & MousePos, bool & Handled);
  548. protected:
  549. virtual bool __fastcall CopyParamDialog(TTransferDirection Direction,
  550. TTransferType Type, bool Temp, TStrings * FileList,
  551. UnicodeString & TargetDirectory, TGUICopyParamType & CopyParam, bool Confirm,
  552. bool DragDrop, int Options);
  553. virtual TCustomDirView * __fastcall DirView(TOperationSide Side);
  554. virtual TCustomDriveView * __fastcall DriveView(TOperationSide Side);
  555. virtual bool __fastcall DirViewEnabled(TOperationSide Side);
  556. TControl * __fastcall GetComponent(Byte Component);
  557. virtual void __fastcall RestoreFormParams();
  558. void __fastcall RestorePanelParams(
  559. TCustomDirView * DirView, TControl * DriveControl, TTBXStatusBar * StatusBar,
  560. const TScpCommanderPanelConfiguration & PanelConfiguration);
  561. void __fastcall StorePanelParams(
  562. TCustomDirView * DirView, TControl * DriveControl, TTBXStatusBar * StatusBar,
  563. TScpCommanderPanelConfiguration & PanelConfiguration);
  564. virtual void __fastcall RestoreParams();
  565. virtual void __fastcall FixControlsPlacement();
  566. virtual void __fastcall SessionChanged(bool Replaced);
  567. virtual void __fastcall ConfigurationChanged();
  568. virtual bool __fastcall GetHasDirView(TOperationSide Side);
  569. virtual TCustomDirView * GetCurrentLocalBrowser();
  570. virtual void __fastcall UpdateControls();
  571. virtual void __fastcall FileOperationProgress(
  572. TFileOperationProgressType & ProgressData);
  573. virtual void __fastcall DoOpenDirectoryDialog(TOpenDirectoryMode Mode,
  574. TOperationSide Side);
  575. bool __fastcall InternalDDDownload(UnicodeString & TargetDirectory);
  576. virtual bool __fastcall DDGetTarget(
  577. UnicodeString & Directory, bool & ForceQueue, UnicodeString & CounterName);
  578. virtual void __fastcall DDFakeFileInitDrag(TFileList * FileList, bool & Created);
  579. virtual void __fastcall SideEnter(TOperationSide Side);
  580. void __fastcall SaveCommandLine();
  581. bool __fastcall ExecuteCommandLine();
  582. virtual void __fastcall PanelExportStore(TOperationSide Side,
  583. TPanelExport Export, TPanelExportDestination Destination,
  584. TStrings * ExportData);
  585. void __fastcall CommandLinePopulate();
  586. virtual int __fastcall GetStaticComponentsHeight();
  587. DYNAMIC void __fastcall Resize();
  588. DYNAMIC void __fastcall DoShow();
  589. virtual void __fastcall SysResizing(unsigned int Cmd);
  590. virtual void __fastcall BatchStart(void *& Storage);
  591. virtual void __fastcall BatchEnd(void * Storage);
  592. virtual bool __fastcall IsFileControl(TObject * Control, TOperationSide Side);
  593. virtual void __fastcall ReloadLocalDirectory(const UnicodeString Directory = L"");
  594. virtual bool __fastcall PanelOperation(TOperationSide Side, bool DragDrop);
  595. virtual void __fastcall DoDirViewLoaded(TCustomDirView * Sender);
  596. virtual void __fastcall GetTransferPresetAutoSelectData(TCopyParamRuleData & Data);
  597. virtual void __fastcall UpdateSessionData(TSessionData * Data);
  598. void __fastcall SynchronizeBrowsing(TCustomDirView * ADirView);
  599. void __fastcall SynchronizeBrowsing(TCustomDirView * ADirView, UnicodeString PrevPath,
  600. UnicodeString & NewPath, bool Create);
  601. void __fastcall SynchronizeBrowsingLocal(UnicodeString PrevPath, UnicodeString & NewPath, bool Create);
  602. void __fastcall SynchronizeBrowsingRemote(UnicodeString PrevPath, UnicodeString & NewPath, bool Create);
  603. void __fastcall CreateLocalDirectory(const UnicodeString & Path);
  604. void __fastcall CreateRemoteDirectory(const UnicodeString & Path);
  605. void __fastcall LocalPathComboUpdateDrives();
  606. void __fastcall LocalPathComboUpdate(TCustomDirView * ADirView, TTBXComboBoxItem * PathComboBox);
  607. virtual void __fastcall ToolbarItemResize(TTBXCustomDropDownItem * Item, int Width);
  608. void __fastcall DoOpenBookmark(UnicodeString Local, UnicodeString Remote);
  609. virtual bool __fastcall OpenBookmark(TOperationSide Side, TBookmark * Bookmark);
  610. virtual void __fastcall DoFocusRemotePath(TTerminal * Terminal, const UnicodeString & Path);
  611. UnicodeString __fastcall ChangeFilePath(UnicodeString Path, TOperationSide Side);
  612. virtual bool __fastcall EligibleForImageDisplayMode(TTBCustomItem * Item);
  613. virtual bool __fastcall UpdateToolbarDisplayMode();
  614. virtual void __fastcall QueueLabelUpdateStatus();
  615. virtual UnicodeString __fastcall DefaultDownloadTargetDirectory();
  616. virtual void __fastcall StartingWithoutSession();
  617. virtual void __fastcall UpdateImages();
  618. virtual void __fastcall FileColorsChanged();
  619. virtual void __fastcall ThemeChanged();
  620. void __fastcall DoPathLabelPathClick(TOperationSide Side, const UnicodeString & Path);
  621. virtual void __fastcall DoRemotePathComboBoxAdjustImageIndex(
  622. TTBXComboBoxItem * Sender, const UnicodeString AText, int AIndex, int & ImageIndex);
  623. virtual void __fastcall DoRemotePathComboBoxCancel(TObject * Sender);
  624. void __fastcall DoLocalDirViewPathChange(TCustomDirView * Sender, TTBXComboBoxItem * PathComboBox);
  625. void __fastcall DoLocalPathComboBoxAdjustImageIndex(TTBXComboBoxItem * Sender, const UnicodeString AText, int AIndex, int & ImageIndex);
  626. void __fastcall DoLocalPathComboBoxItemClick(TDirView * ADirView, TTBXComboBoxItem * PathComboBox);
  627. virtual void __fastcall DoRemotePathComboBoxItemClick(TObject * Sender);
  628. virtual void __fastcall UpdateRemotePathComboBox(bool TextOnly);
  629. void __fastcall SetToolbar2ItemAction(TTBXItem * Item, TBasicAction * Action);
  630. virtual void __fastcall NeedSession(bool Startup);
  631. void RestoreSessionLocalDirView(TDirView * ALocalDirView, const UnicodeString & LocalDirectory);
  632. virtual UnicodeString GetTabHintDetails(TManagedTerminal * ASession);
  633. virtual UnicodeString GetNewTabHintDetails();
  634. public:
  635. __fastcall TScpCommanderForm(TComponent* Owner);
  636. virtual __fastcall ~TScpCommanderForm();
  637. virtual void __fastcall AddEditLink(TOperationSide Side, bool Add);
  638. virtual bool __fastcall AllowedAction(TAction * Action, TActionAllowed Allowed);
  639. virtual void __fastcall ChangePath(TOperationSide Side);
  640. virtual void __fastcall CompareDirectories();
  641. virtual void __fastcall UpdateSession(TManagedTerminal * Terminal);
  642. virtual void __fastcall SynchronizeDirectories();
  643. virtual void __fastcall FullSynchronizeDirectories();
  644. virtual void __fastcall StoreParams();
  645. virtual void __fastcall ExploreLocalDirectory(TOperationSide Side);
  646. virtual void __fastcall GoToCommandLine();
  647. virtual void __fastcall GoToTree();
  648. virtual void __fastcall OpenConsole(UnicodeString Command = L"");
  649. virtual UnicodeString __fastcall PathForCaption();
  650. virtual void __fastcall HomeDirectory(TOperationSide Side);
  651. virtual void __fastcall HistoryGo(TOperationSide Side, int Index);
  652. virtual void __fastcall DisplaySystemContextMenu();
  653. virtual void __fastcall GoToAddress();
  654. virtual void __fastcall CopyFilesToClipboard(TOperationSide Side, bool OnFocused);
  655. virtual void __fastcall PasteFromClipBoard();
  656. virtual void __fastcall BrowseFile();
  657. virtual bool SupportsLocalBrowser();
  658. virtual bool IsSideLocalBrowser(TOperationSide Side);
  659. virtual bool IsLocalBrowserMode();
  660. virtual void LocalLocalCopy(
  661. ::TFileOperation Operation, TOperationSide Side, bool OnFocused, bool NoConfirmation, bool DragDrop, unsigned int Flags);
  662. virtual UnicodeString GetLocalBrowserSessionTitle(TManagedTerminal * Session);
  663. virtual TManagedTerminal * GetReplacementForLastSession();
  664. virtual void NewTab(TOperationSide Side);
  665. virtual int GetNewTabActionImageIndex();
  666. virtual int GetNewTabTabImageIndex(TOperationSide Side);
  667. __property double LeftPanelWidth = { read = GetLeftPanelWidth, write = SetLeftPanelWidth };
  668. };
  669. //---------------------------------------------------------------------------
  670. #endif