CustomScpExplorer.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. //---------------------------------------------------------------------------
  2. #ifndef CustomScpExplorerH
  3. #define CustomScpExplorerH
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <Controls.hpp>
  7. #include <StdCtrls.hpp>
  8. #include <Forms.hpp>
  9. #include <CustomDirView.hpp>
  10. #include <CustomUnixDirView.hpp>
  11. #include <IEListView.hpp>
  12. #include <NortonLikeListView.hpp>
  13. #include <UnixDirView.h>
  14. #include <ComCtrls.hpp>
  15. #include <ExtCtrls.hpp>
  16. #include <ToolWin.hpp>
  17. #include <WinInterface.h>
  18. #include <Terminal.h>
  19. #include "QueueController.h"
  20. #include "UnixDriveView.h"
  21. #include "CustomDriveView.hpp"
  22. #include "TBX.hpp"
  23. #include "TB2Dock.hpp"
  24. #include "TBXExtItems.hpp"
  25. #include "TBXStatusBars.hpp"
  26. #include "TB2Item.hpp"
  27. #include "TB2Toolbar.hpp"
  28. //---------------------------------------------------------------------------
  29. class TProgressForm;
  30. class TSynchronizeProgressForm;
  31. class TTerminalQueue;
  32. class TTerminalQueueStatus;
  33. class TQueueItem;
  34. class TQueueItemProxy;
  35. class TQueueController;
  36. class TSynchronizeController;
  37. class TEditorManager;
  38. class TEditorPreferences;
  39. struct TEditedFileData;
  40. //---------------------------------------------------------------------------
  41. enum TActionAllowed { aaShortCut, aaUpdate, aaExecute };
  42. enum TActionFlag { afLocal = 1, afRemote = 2, afExplorer = 4 , afCommander = 8 };
  43. enum TExecuteFileBy { efShell = 1, efInternalEditor = 2, efExternalEditor = 3, efDefaultEditor = 100 };
  44. enum TPanelExport { pePath, peFileList, peFullFileList, peUrl };
  45. enum TPanelExportDestination { pedClipboard, pedCommandLine };
  46. //---------------------------------------------------------------------------
  47. class TCustomScpExplorerForm : public TForm
  48. {
  49. __published:
  50. TPanel *RemotePanel;
  51. TTBXStatusBar *RemoteStatusBar;
  52. TUnixDirView *RemoteDirView;
  53. TTBXDock *TopDock;
  54. TListView *QueueView;
  55. TPanel *QueuePanel;
  56. TSplitter *QueueSplitter;
  57. TTBXToolbar *QueueToolbar;
  58. TTBXDock *QueueDock;
  59. TTBXItem *TBXItem201;
  60. TTBXItem *TBXItem202;
  61. TTBXItem *TBXItem203;
  62. TTBXItem *TBXItem204;
  63. TTBXItem *TBXItem205;
  64. TTBXSeparatorItem *TBXSeparatorItem201;
  65. TTBXItem *TBXItem206;
  66. TTBXItem *TBXItem207;
  67. TTBXSeparatorItem *TBXSeparatorItem202;
  68. TTBXItem *TBXItem208;
  69. TUnixDriveView *RemoteDriveView;
  70. TSplitter *RemotePanelSplitter;
  71. TTBXItem *TBXItem194;
  72. TTBXItem *TBXItem195;
  73. void __fastcall RemoteDirViewContextPopup(TObject *Sender,
  74. const TPoint &MousePos, bool &Handled);
  75. void __fastcall RemoteDirViewGetSelectFilter(
  76. TCustomDirView *Sender, bool Select, TFileFilter &Filter);
  77. void __fastcall ApplicationHint(TObject *Sender);
  78. void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
  79. void __fastcall RemoteDirViewDisplayProperties(TObject *Sender);
  80. void __fastcall DirViewColumnRightClick(TObject *Sender,
  81. TListColumn *Column, TPoint &Point);
  82. void __fastcall DirViewExecFile(TObject *Sender, TListItem *Item, bool &AllowExec);
  83. void __fastcall ToolBarResize(TObject *Sender);
  84. void __fastcall FileControlDDDragEnter(TObject *Sender,
  85. _di_IDataObject DataObj, int grfKeyState, const TPoint &Point,
  86. int &dwEffect, bool &Accept);
  87. void __fastcall FileControlDDDragLeave(TObject *Sender);
  88. void __fastcall RemoteFileControlDDCreateDragFileList(TObject *Sender,
  89. TFileList *FileList, bool &Created);
  90. void __fastcall RemoteFileControlDDEnd(TObject *Sender);
  91. void __fastcall RemoteFileControlDDCreateDataObject(TObject *Sender,
  92. TDataObject *&DataObject);
  93. void __fastcall RemoteFileControlDDGiveFeedback(TObject *Sender,
  94. int dwEffect, HRESULT &Result);
  95. void __fastcall QueueSplitterCanResize(TObject *Sender, int &NewSize,
  96. bool &Accept);
  97. void __fastcall QueueViewContextPopup(TObject *Sender, TPoint &MousePos,
  98. bool &Handled);
  99. void __fastcall QueueViewDeletion(TObject *Sender, TListItem *Item);
  100. void __fastcall QueueViewStartDrag(TObject *Sender,
  101. TDragObject *&DragObject);
  102. void __fastcall QueueViewDragOver(TObject *Sender, TObject *Source,
  103. int X, int Y, TDragState State, bool &Accept);
  104. void __fastcall QueueViewDragDrop(TObject *Sender, TObject *Source,
  105. int X, int Y);
  106. void __fastcall QueueViewEnter(TObject *Sender);
  107. void __fastcall QueueViewSelectItem(TObject *Sender, TListItem *Item,
  108. bool Selected);
  109. void __fastcall RemoteFileControlDDFileOperation(TObject * Sender,
  110. int Effect, AnsiString SourcePath, AnsiString TargetPath,
  111. bool & DoOperation);
  112. void __fastcall RemoteFileContolDDChooseEffect(TObject * Sender,
  113. int grfKeyState, int & dwEffect);
  114. void __fastcall RemoteFileControlDDDragFileName(TObject * Sender,
  115. TRemoteFile * File, AnsiString & FileName);
  116. void __fastcall RemoteFileControlDDDragDetect(TObject * Sender,
  117. int grfKeyState, const TPoint & DetectStart, const TPoint & Point,
  118. TDragDetectStatus DragStatus);
  119. void __fastcall RemoteFileControlDDQueryContinueDrag(TObject *Sender,
  120. BOOL FEscapePressed, int grfKeyState, HRESULT &Result);
  121. void __fastcall RemoteDirViewEnter(TObject *Sender);
  122. void __fastcall RemoteDriveViewEnter(TObject *Sender);
  123. void __fastcall DirViewMatchMask(TObject *Sender,
  124. AnsiString FileName, bool Directory, AnsiString Masks, bool &Matches);
  125. void __fastcall RemoteDirViewGetOverlay(TObject *Sender, TListItem *Item,
  126. WORD &Indexes);
  127. void __fastcall DirViewHistoryChange(TCustomDirView *Sender);
  128. void __fastcall RemoteStatusBarClick(TObject *Sender);
  129. void __fastcall DirViewLoaded(TObject *Sender);
  130. void __fastcall AddressToolbarGetBaseSize(TTBCustomToolbar * Toolbar, TPoint & ASize);
  131. void __fastcall FormConstrainedResize(TObject * Sender, int & MinWidth,
  132. int &MinHeight, int &MaxWidth, int &MaxHeight);
  133. private:
  134. TTerminal * FTerminal;
  135. TTerminalQueue * FQueue;
  136. TTerminalQueueStatus * FQueueStatus;
  137. TCriticalSection * FQueueStatusSection;
  138. bool FQueueStatusInvalidated;
  139. bool FQueueItemInvalidated;
  140. bool FFormRestored;
  141. bool FAutoOperation;
  142. bool FForceExecution;
  143. bool FShowStatusBarHint;
  144. AnsiString FStatusBarHint;
  145. bool FIgnoreNextSysCommand;
  146. TStringList * FErrorList;
  147. HANDLE FDDExtMutex;
  148. AnsiString FDragExtFakeDirectory;
  149. TStrings * FDelayedDeletionList;
  150. TTimer * FDelayedDeletionTimer;
  151. TStrings * FDDFileList;
  152. __int64 FDDTotalSize;
  153. AnsiString FDragDropSshTerminate;
  154. HINSTANCE FOle32Library;
  155. HCURSOR FDragMoveCursor;
  156. AnsiString FDragTempDir;
  157. bool FRefreshLocalDirectory;
  158. bool FRefreshRemoteDirectory;
  159. TListItem * FQueueActedItem;
  160. TQueueController * FQueueController;
  161. int FLastDropEffect;
  162. bool FPendingTempSpaceWarn;
  163. TEditorManager * FEditorManager;
  164. TStrings * FCapturedLog;
  165. bool FDragDropOperation;
  166. AnsiString FCopyParamDefault;
  167. AnsiString FCopyParamAutoSelected;
  168. bool FEditingFocusedAdHocCommand;
  169. TList * FDocks;
  170. TSynchronizeController * FSynchronizeController;
  171. AnsiString FTransferComboHint;
  172. bool __fastcall GetEnableFocusedOperation(TOperationSide Side);
  173. bool __fastcall GetEnableSelectedOperation(TOperationSide Side);
  174. void __fastcall SetTerminal(TTerminal * value);
  175. void __fastcall SetQueue(TTerminalQueue * value);
  176. void __fastcall SessionComboPopup(TTBCustomItem * Sender, bool FromLink);
  177. void __fastcall SessionComboDrawItem(TTBXCustomList * Sender, TCanvas * ACanvas,
  178. const TRect & ARect, int AIndex, int AHoverIndex, bool & DrawDefault);
  179. void __fastcall SessionComboChange(TObject * Sender, const AnsiString Text);
  180. void __fastcall TransferComboChange(TObject * Sender, const AnsiString Text);
  181. void __fastcall CloseInternalEditor(TObject * Sender);
  182. void __fastcall ForceCloseInternalEditor(TObject * Sender);
  183. void __fastcall TerminalCaptureLog(TObject* Sender, TLogLineType Type,
  184. const AnsiString AddedLine);
  185. void __fastcall HistoryItemClick(System::TObject* Sender);
  186. void __fastcall UpdateHistoryMenu(TOperationSide Side, bool Back);
  187. void __fastcall AdHocCustomCommandValidate(const AnsiString & Command,
  188. int Params);
  189. void __fastcall SetDockAllowDrag(bool value);
  190. void __fastcall QueueSplitterDblClick(TObject * Sender);
  191. protected:
  192. TOperationSide FCurrentSide;
  193. TControl * FDDTargetControl;
  194. TProgressForm * FProgressForm;
  195. TSynchronizeProgressForm * FSynchronizeProgressForm;
  196. HANDLE FDDExtMapFile;
  197. bool FDDMoveSlipped;
  198. TTimer * FUserActionTimer;
  199. TQueueItemProxy * FPendingQueueActionItem;
  200. TTBXPopupMenu * FHistoryMenu[2][2];
  201. bool FNoTransferPresetAutoSelect;
  202. virtual bool __fastcall CopyParamDialog(TTransferDirection Direction,
  203. TTransferType Type, bool Temp, TStrings * FileList,
  204. AnsiString & TargetDirectory, TGUICopyParamType & CopyParam, bool Confirm);
  205. virtual bool __fastcall RemoteTransferDialog(TStrings * FileList,
  206. AnsiString & Target, AnsiString & FileMask, bool NoConfirmation, bool Move);
  207. virtual void __fastcall CreateParams(TCreateParams & Params);
  208. void __fastcall DeleteFiles(TOperationSide Side, TStrings * FileList);
  209. void __fastcall RemoteTransferFiles(TStrings * FileList, bool NoConfirmation, bool Move);
  210. virtual void __fastcall DoDirViewExecFile(TObject * Sender, TListItem * Item, bool & AllowExec);
  211. virtual TControl * __fastcall GetComponent(Byte Component);
  212. bool __fastcall GetComponentVisible(Word Component);
  213. virtual Boolean __fastcall GetHasDirView(TOperationSide Side);
  214. DYNAMIC void __fastcall KeyDown(Word & Key, Classes::TShiftState Shift);
  215. virtual void __fastcall RestoreFormParams();
  216. virtual void __fastcall RestoreParams();
  217. virtual void __fastcall SetComponentVisible(Word Component, bool value);
  218. virtual void __fastcall FixControlsPlacement();
  219. void __fastcall SetProperties(TOperationSide Side, TStrings * FileList);
  220. void __fastcall CustomCommand(TStrings * FileList, AnsiString Name,
  221. AnsiString Command, int Params);
  222. virtual void __fastcall TerminalChanging();
  223. virtual void __fastcall TerminalChanged();
  224. virtual void __fastcall QueueChanged();
  225. void __fastcall InitStatusBar();
  226. void __fastcall UpdateStatusBar();
  227. virtual void __fastcall DoOperationFinished(TFileOperation Operation,
  228. TOperationSide Side, bool Temp, const AnsiString FileName, bool Success,
  229. bool & DisconnectWhenFinished);
  230. virtual void __fastcall DoOpenDirectoryDialog(TOpenDirectoryMode Mode, TOperationSide Side);
  231. virtual void __fastcall FileOperationProgress(
  232. TFileOperationProgressType & ProgressData, TCancelStatus & Cancel);
  233. void __fastcall OperationComplete(const TDateTime & StartTime);
  234. void __fastcall ExecutedFileChanged(const AnsiString FileName,
  235. const TEditedFileData & Data, HANDLE UploadCompleteEvent);
  236. void __fastcall ExecutedFileEarlyClosed(const TEditedFileData & Data,
  237. bool * CloseFlag, bool & KeepOpen);
  238. void __fastcall CMAppSysCommand(TMessage & Message);
  239. void __fastcall WMAppCommand(TMessage & Message);
  240. void __fastcall WMSysCommand(TMessage & Message);
  241. virtual void __fastcall SysResizing(unsigned int Cmd);
  242. DYNAMIC void __fastcall DoShow();
  243. TStrings * __fastcall CreateVisitedDirectories(TOperationSide Side);
  244. void __fastcall HandleErrorList(TStringList *& ErrorList);
  245. void __fastcall TerminalSynchronizeDirectory(const AnsiString LocalDirectory,
  246. const AnsiString RemoteDirectory, bool & Continue);
  247. void __fastcall DoSynchronize(TSynchronizeController * Sender,
  248. const AnsiString LocalDirectory, const AnsiString RemoteDirectory,
  249. const TCopyParamType & CopyParam, const TSynchronizeParamType & Params,
  250. TSynchronizeStats * Stats, TSynchronizeOptions * Options, bool Full);
  251. void __fastcall DoSynchronizeInvalid(TSynchronizeController * Sender,
  252. const AnsiString Directory, const AnsiString ErrorStr);
  253. void __fastcall DoSynchronizeTooManyDirectories(TSynchronizeController * Sender,
  254. int & MaxDirectories);
  255. void __fastcall Synchronize(const AnsiString LocalDirectory,
  256. const AnsiString RemoteDirectory, TSynchronizeMode Mode,
  257. const TCopyParamType & CopyParam, int Params, TSynchronizeStats * Stats,
  258. TSynchronizeOptions * Options);
  259. void __fastcall GetSynchronizeOptions(int Params, TSynchronizeOptions & Options);
  260. bool __fastcall SynchronizeAllowSelectedOnly();
  261. virtual void __fastcall BatchStart(void *& Storage);
  262. virtual void __fastcall BatchEnd(void * Storage);
  263. void __fastcall ExecuteFileOperation(TFileOperation Operation, TOperationSide Side,
  264. TStrings * FileList, bool NoConfirmation, void * Param);
  265. virtual void __fastcall DDGetTarget(AnsiString & Directory);
  266. virtual void __fastcall DDExtInitDrag(TFileList * FileList, bool & Created);
  267. virtual void __fastcall SideEnter(TOperationSide Side);
  268. virtual TOperationSide __fastcall GetSide(TOperationSide Side);
  269. virtual void __fastcall PanelExportStore(TOperationSide Side,
  270. TPanelExport Export, TPanelExportDestination Destination,
  271. TStringList * ExportData);
  272. void __fastcall QueueListUpdate(TTerminalQueue * Queue);
  273. void __fastcall QueueItemUpdate(TTerminalQueue * Queue, TQueueItem * Item);
  274. void __fastcall UpdateQueueStatus();
  275. void __fastcall RefreshQueueItems(bool AppIdle);
  276. virtual int __fastcall GetStaticComponentsHeight();
  277. void __fastcall FillQueueViewItem(TListItem * Item,
  278. TQueueItemProxy * QueueItem, bool Detail);
  279. void __fastcall QueueViewDeleteItem(int Index);
  280. void __fastcall UserActionTimer(TObject * Sender);
  281. void __fastcall UpdateQueueView();
  282. bool __fastcall CanCloseQueue();
  283. virtual bool __fastcall IsFileControl(TObject * Control, TOperationSide Side);
  284. virtual void __fastcall ReloadLocalDirectory(const AnsiString Directory = "");
  285. virtual bool __fastcall PanelOperation(TOperationSide Side, bool DragDrop);
  286. void __fastcall DoWarnLackOfTempSpace(const AnsiString Path,
  287. __int64 RequiredSpace, bool & Continue);
  288. void __fastcall AddDelayedDirectoryDeletion(const AnsiString TempDir, int SecDelay);
  289. void __fastcall DoDelayedDeletion(TObject * Sender);
  290. TDragDropFilesEx * __fastcall DragDropFiles(TObject * Sender);
  291. void __fastcall RemoteFileControlDDTargetDrop();
  292. void __fastcall RemoteFileControlFileOperation(TObject * Sender,
  293. TFileOperation Operation, bool NoConfirmation, void * Param);
  294. bool __fastcall EnsureCommandSessionFallback(TFSCapability Capability);
  295. void __fastcall FileTerminalClosed(const AnsiString FileName,
  296. TEditedFileData & Data, TObject * Token, void * Arg);
  297. void __fastcall FileConfigurationChanged(const AnsiString FileName,
  298. TEditedFileData & Data, TObject * Token, void * Arg);
  299. void __fastcall CustomExecuteFile(TOperationSide Side,
  300. TExecuteFileBy ExecuteFileBy, AnsiString FileName, AnsiString OriginalFileName,
  301. const TEditorPreferences * ExternalEditor);
  302. bool __fastcall RemoteExecuteForceText(TExecuteFileBy ExecuteFileBy,
  303. const TEditorPreferences * ExternalEditor);
  304. void __fastcall ExecuteFileNormalize(TExecuteFileBy & ExecuteFileBy,
  305. const TEditorPreferences *& ExternalEditor, const AnsiString & FileName,
  306. bool Local);
  307. void __fastcall TemporarilyDownloadFiles(TStrings * FileList, bool ForceText,
  308. AnsiString & TempDir, bool AllFiles, bool GetTargetNames);
  309. TTBXPopupMenu * __fastcall HistoryMenu(TOperationSide Side, bool Back);
  310. void __fastcall UpdateFileStatusBar(TTBXStatusBar * StatusBar,
  311. const TStatusFileInfo & FileInfo, int Panel);
  312. virtual void __fastcall DoDirViewLoaded(TCustomDirView * Sender);
  313. virtual void __fastcall UpdateControls();
  314. void __fastcall StartUpdates();
  315. void __fastcall TransferPresetAutoSelect();
  316. virtual void __fastcall GetTransferPresetAutoSelectData(TCopyParamRuleData & Data);
  317. int __fastcall CustomCommandState(const AnsiString & Command, int Params, bool OnFocused);
  318. void __fastcall LoadToolbarsLayoutStr(AnsiString LayoutStr);
  319. AnsiString __fastcall GetToolbarsLayoutStr();
  320. virtual void __fastcall Dispatch(void * Message);
  321. void __fastcall PostComponentHide(unsigned short Component);
  322. public:
  323. virtual __fastcall ~TCustomScpExplorerForm();
  324. void __fastcall AddBookmark(TOperationSide Side);
  325. virtual void __fastcall AddEditLink();
  326. virtual Boolean __fastcall AllowedAction(TAction * Action, TActionAllowed Allowed) = 0;
  327. virtual void __fastcall ConfigurationChanged();
  328. void __fastcall CreateDirectory(TOperationSide Side);
  329. void __fastcall ExecuteFileOperation(TFileOperation Operation, TOperationSide Side,
  330. bool OnFocused, bool NoConfirmation = false, void * Param = NULL);
  331. void __fastcall AdHocCustomCommand(bool OnFocused);
  332. virtual TCustomDirView * __fastcall DirView(TOperationSide Side);
  333. virtual void __fastcall ChangePath(TOperationSide Side) = 0;
  334. virtual void __fastcall StoreParams();
  335. int __fastcall CustomCommandState(const AnsiString & Description, bool OnFocused);
  336. void __fastcall NewSession();
  337. void __fastcall CloseSession();
  338. void __fastcall OpenDirectory(TOperationSide Side);
  339. void __fastcall OpenStoredSession(TSessionData * Data);
  340. void __fastcall Idle(bool AppIdle);
  341. __fastcall TCustomScpExplorerForm(TComponent* Owner);
  342. void __fastcall SaveCurrentSession();
  343. virtual void __fastcall CompareDirectories();
  344. void __fastcall ExecuteCurrentFile();
  345. virtual void __fastcall OpenConsole(AnsiString Command = "");
  346. virtual void __fastcall UpdateSessionData(TSessionData * Data = NULL);
  347. virtual void __fastcall SynchronizeDirectories();
  348. virtual void __fastcall FullSynchronizeDirectories() = 0;
  349. virtual void __fastcall ExploreLocalDirectory();
  350. virtual void __fastcall GoToCommandLine();
  351. virtual void __fastcall GoToTree();
  352. virtual void __fastcall PanelExport(TOperationSide Side, TPanelExport Export,
  353. TPanelExportDestination Destination, bool OnFocused = false);
  354. void __fastcall ExecuteFile(TOperationSide Side, TExecuteFileBy ExecuteFileBy,
  355. const TEditorPreferences * ExternalEditor = NULL);
  356. void __fastcall EditNew(TOperationSide Side);
  357. bool __fastcall AllowQueueOperation(TQueueOperation Operation);
  358. void __fastcall ExecuteQueueOperation(TQueueOperation Operation);
  359. TQueueOperation __fastcall DefaultQueueOperation();
  360. void __fastcall LastTerminalClosed(TObject * Sender);
  361. void __fastcall TerminalClosed(TObject * Sender);
  362. void __fastcall TerminalListChanged(TObject * Sender);
  363. int __fastcall MoreMessageDialog(const AnsiString Message,
  364. TStrings * MoreMessages, TQueryType Type, int Answers,
  365. AnsiString HelpKeyword, const TMessageParams * Params = NULL);
  366. void __fastcall OperationFinished(TFileOperation Operation, TOperationSide Side,
  367. bool Temp, const AnsiString FileName, bool Success, bool & DisconnectWhenFinished);
  368. void __fastcall OperationProgress(TFileOperationProgressType & ProgressData, TCancelStatus & Cancel);
  369. bool __fastcall DoSynchronizeDirectories(AnsiString & LocalDirectory,
  370. AnsiString & RemoteDirectory);
  371. bool __fastcall DoFullSynchronizeDirectories(AnsiString & LocalDirectory,
  372. AnsiString & RemoteDirectory, TSynchronizeMode & Mode, bool & SaveMode);
  373. bool __fastcall CanPasteFromClipBoard();
  374. void __fastcall PasteFromClipBoard();
  375. void __fastcall ToggleQueueVisibility();
  376. virtual AnsiString __fastcall PathForCaption();
  377. void __fastcall FileListFromClipboard();
  378. void __fastcall PreferencesDialog(TPreferencesMode APreferencesMode);
  379. void __fastcall WhatsThis();
  380. virtual void __fastcall BeforeAction();
  381. __property bool ComponentVisible[Word Component] = { read = GetComponentVisible, write = SetComponentVisible };
  382. __property bool EnableFocusedOperation[TOperationSide Side] = { read = GetEnableFocusedOperation };
  383. __property bool EnableSelectedOperation[TOperationSide Side] = { read = GetEnableSelectedOperation };
  384. __property bool HasDirView[TOperationSide Side] = { read = GetHasDirView };
  385. __property TTerminal * Terminal = { read = FTerminal, write = SetTerminal };
  386. __property TTerminalQueue * Queue = { read = FQueue, write = SetQueue };
  387. };
  388. //---------------------------------------------------------------------------
  389. class TExporerState : public TObject
  390. {
  391. public:
  392. __fastcall TExporerState();
  393. virtual __fastcall ~TExporerState();
  394. TObject * Remote;
  395. TObject * Local;
  396. };
  397. //---------------------------------------------------------------------------
  398. struct TCustomCommandParam
  399. {
  400. AnsiString Name;
  401. AnsiString Command;
  402. int Params;
  403. };
  404. //---------------------------------------------------------------------------
  405. #endif