ScpCommander.h 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  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. void __fastcall FormShow(TObject *Sender);
  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 FormResize(TObject *Sender);
  138. void __fastcall LocalDirViewChangeDetected(TObject *Sender);
  139. void __fastcall LocalDirViewExecFile(TObject *Sender, TListItem *Item,
  140. bool &AllowExec);
  141. void __fastcall LocalDirViewDDDragEnter(TObject *Sender,
  142. IDataObject *DataObj, int grfKeyState, TPoint &Point,
  143. int &dwEffect, bool &Accept);
  144. void __fastcall DirViewLoaded(TObject *Sender);
  145. void __fastcall SessionComboCloseUp(TObject *Sender);
  146. void __fastcall LocalDirViewDDDragOver(TObject *Sender, int grfKeyState,
  147. TPoint &Point, int &dwEffect);
  148. void __fastcall LocalDirViewDDFileOperation(TObject *Sender,
  149. int dwEffect, AnsiString SourcePath, AnsiString TargetPath,
  150. bool &DoOperation);
  151. void __fastcall RemoteDirViewDDFileOperationExecuted(TObject *Sender,
  152. int dwEffect, AnsiString SourcePath, AnsiString TargetPath);
  153. void __fastcall CommandLineComboKeyDown(TObject *Sender, WORD &Key,
  154. TShiftState Shift);
  155. void __fastcall CommandLineComboDropDown(TObject *Sender);
  156. void __fastcall CommandLineComboEnter(TObject *Sender);
  157. void __fastcall CommandLineComboExit(TObject *Sender);
  158. void __fastcall LocalDirViewDDTargetHasDropHandler(TObject *Sender,
  159. TListItem *Item, int &Effect, bool &DropHandler);
  160. private:
  161. TCustomDirView * FDirViewToSelect;
  162. float FLastLocalPanelWidth;
  163. float FLocalPanelWidth;
  164. int FLastWidth;
  165. bool FSynchronisingBrowse;
  166. TStrings * FInternalDDDownloadList;
  167. TSynchronizationStatus FSynchronization;
  168. TSynchronizeParamType FSynchronizeParams;
  169. TSynchronizeDialog * FSynchronizeDialog;
  170. AnsiString FPrevPath[2];
  171. bool FFirstTerminal;
  172. AnsiString FDDExtTarget;
  173. bool FCommandLineComboPopulated;
  174. void __fastcall SetLocalPanelWidth(float value);
  175. float __fastcall GetLocalPanelWidth();
  176. protected:
  177. virtual bool __fastcall CopyParamDialog(TTransferDirection Direction,
  178. TTransferType Type, bool DragDrop, TStrings * FileList,
  179. AnsiString & TargetDirectory, TCopyParamType & CopyParam, bool Confirm);
  180. virtual TCustomDirView * __fastcall DirView(TOperationSide Side);
  181. TControl * __fastcall GetComponent(Byte Component);
  182. virtual void __fastcall RestoreFormParams();
  183. virtual void __fastcall RestoreParams();
  184. virtual void __fastcall SetComponentVisible(Word Component, bool value);
  185. virtual void __fastcall TerminalChanged();
  186. virtual void __fastcall ConfigurationChanged();
  187. virtual bool __fastcall GetHasDirView(TOperationSide Side);
  188. void __fastcall UpdateControls();
  189. void __fastcall SynchronizeStartStop(TObject* Sender, bool Start,
  190. TSynchronizeParamType Params);
  191. void __fastcall SynchronizeNow();
  192. virtual void __fastcall DoOperationFinished(::TFileOperation Operation,
  193. TOperationSide Side, bool DragDrop, const AnsiString FileName,
  194. bool Success, bool & DisconnectWhenFinished);
  195. virtual void __fastcall FileOperationProgress(
  196. TFileOperationProgressType & ProgressData, TCancelStatus & Cancel);
  197. virtual void __fastcall DoOpenDirectoryDialog(TOpenDirectoryMode Mode,
  198. TOperationSide Side);
  199. bool __fastcall InternalDDDownload(AnsiString & TargetDirectory);
  200. virtual void __fastcall DDGetTarget(AnsiString & Directory);
  201. virtual void __fastcall DDExtInitDrag(TFileList * FileList, bool & Created);
  202. virtual void __fastcall DoDirViewEnter(TCustomDirView * DirView);
  203. void __fastcall SaveCommandLine();
  204. void __fastcall ExecuteCommandLine();
  205. virtual TOperationSide __fastcall GetSide(TOperationSide Side);
  206. virtual void __fastcall PanelExportStore(TOperationSide Side,
  207. TPanelExport Export, TPanelExportDestination Destination,
  208. TStringList * ExportData);
  209. void __fastcall CommandLinePopulate();
  210. public:
  211. __fastcall TScpCommanderForm(TComponent* Owner);
  212. virtual __fastcall ~TScpCommanderForm();
  213. virtual void __fastcall AddEditLink();
  214. virtual bool __fastcall AllowedAction(TAction * Action, TActionAllowed Allowed);
  215. virtual void __fastcall ChangePath(TOperationSide Side);
  216. virtual void __fastcall CompareDirectories();
  217. virtual void __fastcall UpdateSessionData(TSessionData * Data = NULL);
  218. virtual void __fastcall SynchronizeDirectories();
  219. virtual void __fastcall FullSynchronizeDirectories();
  220. virtual void __fastcall StoreParams();
  221. virtual void __fastcall ExploreLocalDirectory();
  222. virtual void __fastcall GoToCommandLine();
  223. virtual void __fastcall OpenConsole(AnsiString Command = "");
  224. __property float LocalPanelWidth = { read = GetLocalPanelWidth, write = SetLocalPanelWidth };
  225. };
  226. //---------------------------------------------------------------------------
  227. #endif