ScpCommander.h 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  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 <AssociatedStatusBar.hpp>
  11. #include <CustomDirView.hpp>
  12. #include <CustomUnixDirView.hpp>
  13. #include <IEListView.hpp>
  14. #include <NortonLikeListView.hpp>
  15. #include <UnixDirView.h>
  16. #include <ComCtrls.hpp>
  17. #include <ExtCtrls.hpp>
  18. #include <ToolWin.hpp>
  19. #include <DirView.hpp>
  20. #include <CustomPathComboBox.hpp>
  21. #include <IEComboBox.hpp>
  22. #include <IEPathComboBox.hpp>
  23. #include <PathLabel.hpp>
  24. #include <UnixPathComboBox.h>
  25. #include <ToolbarPanel.hpp>
  26. #include <WinInterface.h>
  27. #include <Synchronize.h>
  28. #include "HistoryComboBox.hpp"
  29. //---------------------------------------------------------------------------
  30. class TScpCommanderForm : public TCustomScpExplorerForm
  31. {
  32. __published:
  33. TSplitter *Splitter;
  34. TPanel *LocalPanel;
  35. TAssociatedStatusBar *LocalStatusBar;
  36. TDirView *LocalDirView;
  37. TPathLabel *LocalPathLabel;
  38. TPathLabel *RemotePathLabel;
  39. TCoolBar *LocalCoolBar;
  40. TCoolBar *RemoteCoolBar;
  41. TToolbarPanel *ToolbarPanel;
  42. TStatusBar *StatusBar;
  43. TToolBar *MenuToolBar;
  44. TToolButton *ToolButton2;
  45. TToolButton *ToolButton19;
  46. TToolButton *ToolButton1;
  47. TToolButton *ToolButton3;
  48. TToolButton *ToolButton4;
  49. TToolBar *SelectionToolbar;
  50. TToolButton *ToolButton23;
  51. TToolButton *ToolButton24;
  52. TToolButton *ToolButton25;
  53. TToolButton *ToolButton26;
  54. TToolButton *ToolButton28;
  55. TToolButton *ToolButton29;
  56. TToolBar *PreferencesToolbar;
  57. TToolButton *ToolButton33;
  58. TToolButton *ToolButton35;
  59. TToolButton *ToolButton36;
  60. TToolBar *SessionToolbar;
  61. TToolButton *ToolButton30;
  62. TToolButton *ToolButton31;
  63. TToolButton *ToolButton32;
  64. TToolButton *SavedSessionsButton;
  65. TToolBar *CommandToolBar;
  66. TToolButton *ToolButton5;
  67. TToolButton *ToolButton6;
  68. TToolButton *ToolButton17;
  69. TToolButton *ToolButton27;
  70. TToolButton *ToolButton34;
  71. TToolButton *ToolButton16;
  72. TToolButton *ToolButton37;
  73. TToolButton *ToolButton38;
  74. TToolBar *ToolBar1;
  75. TToolButton *LocalBackButton;
  76. TToolButton *LocalForwardButton;
  77. TToolBar *ToolBar2;
  78. TToolButton *ToolButton57;
  79. TToolButton *ToolButton58;
  80. TToolButton *ToolButton59;
  81. TToolButton *ToolButton60;
  82. TToolButton *ToolButton61;
  83. TToolButton *ToolButton62;
  84. TToolBar *ToolBar3;
  85. TToolButton *RemoteBackButton;
  86. TToolButton *RemoteForwardButton;
  87. TToolBar *ToolBar4;
  88. TToolButton *ToolButton87;
  89. TToolButton *ToolButton88;
  90. TToolButton *ToolButton89;
  91. TToolButton *ToolButton90;
  92. TToolButton *ToolButton91;
  93. TToolButton *ToolButton92;
  94. TToolButton *ToolButton7;
  95. TToolBar *SortToolbar;
  96. TToolButton *ToolButton8;
  97. TToolButton *ToolButton9;
  98. TToolButton *ToolButton10;
  99. TToolButton *ToolButton11;
  100. TToolButton *ToolButton13;
  101. TToolButton *ToolButton15;
  102. TToolButton *ToolButton12;
  103. TToolButton *ToolButton14;
  104. TToolButton *ToolButton18;
  105. TToolButton *ToolButton20;
  106. TToolButton *ToolButton21;
  107. TToolButton *ToolButton22;
  108. TToolBar *CommandsToolbar;
  109. TToolButton *ToolButton39;
  110. TToolButton *ToolButton40;
  111. TToolButton *ToolButton41;
  112. TToolBar *ToolBar5;
  113. TIEPathComboBox *LocalPathComboBox;
  114. TToolBar *ToolBar6;
  115. TUnixPathComboBox *RemotePathComboBox;
  116. TToolButton *ToolButton42;
  117. TToolButton *ToolButton43;
  118. TToolButton *ToolButton44;
  119. TToolButton *ToolButton45;
  120. TToolButton *ToolButton46;
  121. TToolButton *ToolButton47;
  122. TToolButton *ToolButton48;
  123. TComboBox *SessionCombo;
  124. TToolButton *ToolButton49;
  125. TToolButton *ToolButton51;
  126. TPanel *CommandLinePanel;
  127. THistoryComboBox *CommandLineCombo;
  128. TPathLabel *CommandLineLabel;
  129. TLabel *CommandLinePromptLabel;
  130. TToolButton *ToolButton50;
  131. void __fastcall SplitterMoved(TObject *Sender);
  132. void __fastcall SplitterCanResize(TObject *Sender, int &NewSize,
  133. bool &Accept);
  134. void __fastcall SplitterDblClick(TObject *Sender);
  135. void __fastcall PathComboBoxCloseUp(TObject *Sender,
  136. bool Canceled);
  137. void __fastcall LocalDirViewChangeDetected(TObject *Sender);
  138. void __fastcall LocalDirViewExecFile(TObject *Sender, TListItem *Item,
  139. bool &AllowExec);
  140. void __fastcall LocalDirViewDDDragEnter(TObject *Sender,
  141. IDataObject *DataObj, int grfKeyState, TPoint &Point,
  142. int &dwEffect, bool &Accept);
  143. void __fastcall DirViewLoaded(TObject *Sender);
  144. void __fastcall SessionComboCloseUp(TObject *Sender);
  145. void __fastcall LocalDirViewDDDragOver(TObject *Sender, int grfKeyState,
  146. TPoint &Point, int &dwEffect);
  147. void __fastcall LocalDirViewDDFileOperation(TObject *Sender,
  148. int dwEffect, AnsiString SourcePath, AnsiString TargetPath,
  149. bool &DoOperation);
  150. void __fastcall RemoteDirViewDDFileOperationExecuted(TObject *Sender,
  151. int dwEffect, AnsiString SourcePath, AnsiString TargetPath);
  152. void __fastcall CommandLineComboKeyDown(TObject *Sender, WORD &Key,
  153. TShiftState Shift);
  154. void __fastcall CommandLineComboDropDown(TObject *Sender);
  155. void __fastcall CommandLineComboEnter(TObject *Sender);
  156. void __fastcall CommandLineComboExit(TObject *Sender);
  157. void __fastcall LocalDirViewDDTargetHasDropHandler(TObject *Sender,
  158. TListItem *Item, int &Effect, bool &DropHandler);
  159. void __fastcall StatusBarDblClick(TObject *Sender);
  160. void __fastcall LocalDirViewDDMenuPopup(TObject *Sender, HMENU AMenu,
  161. IDataObject *DataObj, int AMinCustCmd, int grfKeyState, TPoint &pt);
  162. private:
  163. TCustomDirView * FDirViewToSelect;
  164. float FLastLocalPanelWidth;
  165. float FLocalPanelWidth;
  166. int FLastWidth;
  167. bool FSynchronisingBrowse;
  168. TStrings * FInternalDDDownloadList;
  169. TSynchronizationStatus FSynchronization;
  170. TSynchronizeParamType FSynchronizeParams;
  171. TSynchronizeDialog * FSynchronizeDialog;
  172. AnsiString FPrevPath[2];
  173. bool FFirstTerminal;
  174. AnsiString FDDExtTarget;
  175. bool FCommandLineComboPopulated;
  176. void __fastcall SetLocalPanelWidth(float value);
  177. float __fastcall GetLocalPanelWidth();
  178. protected:
  179. virtual bool __fastcall CopyParamDialog(TTransferDirection Direction,
  180. TTransferType Type, bool DragDrop, TStrings * FileList,
  181. AnsiString & TargetDirectory, TGUICopyParamType & CopyParam, bool Confirm);
  182. virtual TCustomDirView * __fastcall DirView(TOperationSide Side);
  183. TControl * __fastcall GetComponent(Byte Component);
  184. virtual void __fastcall RestoreFormParams();
  185. virtual void __fastcall RestoreParams();
  186. virtual void __fastcall FixControlsPlacement();
  187. virtual void __fastcall TerminalChanged();
  188. virtual void __fastcall ConfigurationChanged();
  189. virtual bool __fastcall GetHasDirView(TOperationSide Side);
  190. void __fastcall UpdateControls();
  191. void __fastcall SynchronizeStartStop(TObject* Sender, bool Start,
  192. TSynchronizeParamType Params);
  193. void __fastcall SynchronizeNow();
  194. virtual void __fastcall DoOperationFinished(::TFileOperation Operation,
  195. TOperationSide Side, bool DragDrop, const AnsiString FileName,
  196. bool Success, bool & DisconnectWhenFinished);
  197. virtual void __fastcall FileOperationProgress(
  198. TFileOperationProgressType & ProgressData, TCancelStatus & Cancel);
  199. virtual void __fastcall DoOpenDirectoryDialog(TOpenDirectoryMode Mode,
  200. TOperationSide Side);
  201. bool __fastcall InternalDDDownload(AnsiString & TargetDirectory);
  202. virtual void __fastcall DDGetTarget(AnsiString & Directory);
  203. virtual void __fastcall DDExtInitDrag(TFileList * FileList, bool & Created);
  204. virtual void __fastcall DoDirViewEnter(TCustomDirView * DirView);
  205. void __fastcall SaveCommandLine();
  206. void __fastcall ExecuteCommandLine();
  207. virtual TOperationSide __fastcall GetSide(TOperationSide Side);
  208. virtual void __fastcall PanelExportStore(TOperationSide Side,
  209. TPanelExport Export, TPanelExportDestination Destination,
  210. TStringList * ExportData);
  211. void __fastcall CommandLinePopulate();
  212. virtual int __fastcall GetStaticComponentsHeight();
  213. DYNAMIC void __fastcall Resize();
  214. DYNAMIC void __fastcall DoShow();
  215. public:
  216. __fastcall TScpCommanderForm(TComponent* Owner);
  217. virtual __fastcall ~TScpCommanderForm();
  218. virtual void __fastcall AddEditLink();
  219. virtual bool __fastcall AllowedAction(TAction * Action, TActionAllowed Allowed);
  220. virtual void __fastcall ChangePath(TOperationSide Side);
  221. virtual void __fastcall CompareDirectories();
  222. virtual void __fastcall UpdateSessionData(TSessionData * Data = NULL);
  223. virtual void __fastcall SynchronizeDirectories();
  224. virtual void __fastcall FullSynchronizeDirectories();
  225. virtual void __fastcall StoreParams();
  226. virtual void __fastcall ExploreLocalDirectory();
  227. virtual void __fastcall GoToCommandLine();
  228. virtual void __fastcall OpenConsole(AnsiString Command = "");
  229. __property float LocalPanelWidth = { read = GetLocalPanelWidth, write = SetLocalPanelWidth };
  230. };
  231. //---------------------------------------------------------------------------
  232. #endif