WinConfiguration.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. //---------------------------------------------------------------------------
  2. #ifndef WinConfigurationH
  3. #define WinConfigurationH
  4. //---------------------------------------------------------------------------
  5. #include "CustomWinConfiguration.h"
  6. #include "CustomDirView.hpp"
  7. //---------------------------------------------------------------------------
  8. enum TEditor { edInternal, edExternal };
  9. extern const char ShellCommandFileNamePattern[];
  10. //---------------------------------------------------------------------------
  11. #define C(Property) (Property != rhc.Property) ||
  12. struct TScpExplorerConfiguration {
  13. AnsiString WindowParams;
  14. AnsiString DirViewParams;
  15. AnsiString CoolBarLayout;
  16. bool StatusBar;
  17. AnsiString LastLocalTargetDirectory;
  18. int ViewStyle;
  19. bool ShowFullAddress;
  20. bool __fastcall operator !=(TScpExplorerConfiguration & rhc)
  21. { return C(WindowParams) C(DirViewParams) C(CoolBarLayout) C(StatusBar)
  22. C(LastLocalTargetDirectory) C(ViewStyle) C(ShowFullAddress) 0; };
  23. };
  24. //---------------------------------------------------------------------------
  25. struct TScpCommanderPanelConfiguration {
  26. AnsiString DirViewParams;
  27. AnsiString CoolBarLayout;
  28. bool StatusBar;
  29. bool __fastcall operator !=(TScpCommanderPanelConfiguration & rhc)
  30. { return C(DirViewParams) C(CoolBarLayout) C(StatusBar) 0; };
  31. };
  32. //---------------------------------------------------------------------------
  33. struct TScpCommanderConfiguration {
  34. AnsiString WindowParams;
  35. float LocalPanelWidth;
  36. AnsiString CoolBarLayout;
  37. bool StatusBar;
  38. bool CommandLine;
  39. bool ToolBar;
  40. TOperationSide CurrentPanel;
  41. bool ExplorerStyleSelection;
  42. bool PreserveLocalDirectory;
  43. TScpCommanderPanelConfiguration LocalPanel;
  44. TScpCommanderPanelConfiguration RemotePanel;
  45. bool CompareByTime;
  46. bool CompareBySize;
  47. bool SynchronizeBrowsing;
  48. bool __fastcall operator !=(TScpCommanderConfiguration & rhc)
  49. { return C(WindowParams) C(LocalPanelWidth) C(CoolBarLayout) C(StatusBar)
  50. C(LocalPanel) C(RemotePanel) C(CurrentPanel) C(ToolBar) C(CommandLine)
  51. C(ExplorerStyleSelection) C(PreserveLocalDirectory)
  52. C(CompareBySize) C(CompareByTime) C(SynchronizeBrowsing) 0; };
  53. TCompareCriterias __fastcall CompareCriterias()
  54. {
  55. TCompareCriterias Criterias;
  56. if (CompareByTime)
  57. {
  58. Criterias << ccTime;
  59. }
  60. if (CompareBySize)
  61. {
  62. Criterias << ccSize;
  63. }
  64. return Criterias;
  65. }
  66. };
  67. //---------------------------------------------------------------------------
  68. struct TEditorConfiguration {
  69. TEditor Editor;
  70. AnsiString ExternalEditor;
  71. AnsiString FontName;
  72. int FontHeight;
  73. int FontCharset;
  74. int FontStyle;
  75. bool WordWrap;
  76. AnsiString FindText;
  77. AnsiString ReplaceText;
  78. bool FindMatchCase;
  79. bool FindWholeWord;
  80. bool __fastcall operator !=(TEditorConfiguration & rhc)
  81. { return C(Editor) C(ExternalEditor) C(FontName) C(FontHeight)
  82. C(FontCharset) C(FontStyle) C(WordWrap) C(FindText) C(ReplaceText)
  83. C(FindMatchCase) C(FindWholeWord) 0; };
  84. };
  85. #undef C
  86. //---------------------------------------------------------------------------
  87. class TBookmarks;
  88. class TBookmarkList;
  89. class TCustomCommands;
  90. //---------------------------------------------------------------------------
  91. class TWinConfiguration : public TCustomWinConfiguration
  92. {
  93. private:
  94. AnsiString FAutoStartSession;
  95. bool FCopyOnDoubleClick;
  96. bool FCopyOnDoubleClickConfirmation;
  97. bool FDDAllowMove;
  98. bool FDDTransferConfirmation;
  99. bool FDeleteToRecycleBin;
  100. bool FDimmHiddenFiles;
  101. bool FLogWindowOnStartup;
  102. AnsiString FLogWindowParams;
  103. TScpCommanderConfiguration FScpCommander;
  104. TScpExplorerConfiguration FScpExplorer;
  105. bool FSelectDirectories;
  106. AnsiString FSelectMask;
  107. bool FShowHiddenFiles;
  108. bool FShowInaccesibleDirectories;
  109. bool FConfirmDeleting;
  110. bool FUseLocationProfiles;
  111. AnsiString FDDTemporaryDirectory;
  112. bool FDDWarnLackOfTempSpace;
  113. bool FDDExtEnabled;
  114. int FDDExtInstalled;
  115. int FDDExtTimeout;
  116. int FDDExtCopySlipTimeout;
  117. bool FConfirmClosingSession;
  118. bool FConfirmExitOnCompletion;
  119. double FDDWarnLackOfTempSpaceRatio;
  120. AnsiString FTemporarySessionFile;
  121. AnsiString FTemporaryKeyFile;
  122. TBookmarks * FBookmarks;
  123. TCustomCommands * FCustomCommands;
  124. bool FCustomCommandsModified;
  125. TEditorConfiguration FEditor;
  126. bool FEmbeddedSessions;
  127. bool FExpertMode;
  128. bool FDisableOpenEdit;
  129. bool FForceDeleteTempFolder;
  130. void __fastcall SetCopyOnDoubleClick(bool value);
  131. void __fastcall SetCopyOnDoubleClickConfirmation(bool value);
  132. void __fastcall SetDDAllowMove(bool value);
  133. void __fastcall SetDDTransferConfirmation(bool value);
  134. void __fastcall SetDeleteToRecycleBin(bool value);
  135. void __fastcall SetDimmHiddenFiles(bool value);
  136. void __fastcall SetLogWindowOnStartup(bool value);
  137. void __fastcall SetLogWindowParams(AnsiString value);
  138. void __fastcall SetScpCommander(TScpCommanderConfiguration value);
  139. void __fastcall SetScpExplorer(TScpExplorerConfiguration value);
  140. void __fastcall SetSelectDirectories(bool value);
  141. void __fastcall SetShowHiddenFiles(bool value);
  142. void __fastcall SetShowInaccesibleDirectories(bool value);
  143. void __fastcall SetConfirmDeleting(bool value);
  144. void __fastcall SetUseLocationProfiles(bool value);
  145. void __fastcall SetDDTemporaryDirectory(AnsiString value);
  146. void __fastcall SetDDWarnLackOfTempSpace(bool value);
  147. void __fastcall SetDDExtEnabled(bool value);
  148. void __fastcall SetDDExtTimeout(int value);
  149. void __fastcall SetDDExtCopySlipTimeout(int value);
  150. void __fastcall SetConfirmClosingSession(bool value);
  151. void __fastcall SetConfirmExitOnCompletion(bool value);
  152. void __fastcall SetForceDeleteTempFolder(bool value);
  153. void __fastcall SetDDWarnLackOfTempSpaceRatio(double value);
  154. void __fastcall SetBookmarks(AnsiString Key, TBookmarkList * value);
  155. TBookmarkList * __fastcall GetBookmarks(AnsiString Key);
  156. void __fastcall SetAutoStartSession(AnsiString value);
  157. void __fastcall SetExpertMode(bool value);
  158. void __fastcall SetEditor(TEditorConfiguration value);
  159. void __fastcall SetCustomCommands(TCustomCommands * value);
  160. bool __fastcall GetDDExtInstalled();
  161. protected:
  162. virtual TStorage __fastcall GetStorage();
  163. bool __fastcall DumpResourceToFile(
  164. const AnsiString ResName, const AnsiString FileName);
  165. virtual void __fastcall SaveSpecial(THierarchicalStorage * Storage);
  166. virtual void __fastcall LoadSpecial(THierarchicalStorage * Storage);
  167. virtual void __fastcall LoadAdmin(THierarchicalStorage * Storage);
  168. virtual AnsiString __fastcall GetDefaultKeyFile();
  169. virtual void __fastcall ModifyAll();
  170. bool __fastcall SameStringLists(TStrings * Strings1, TStrings * Strings2);
  171. bool __fastcall InternalReloadComponentRes(const AnsiString ResName,
  172. HANDLE HInst, TComponent * Instance);
  173. bool __fastcall InitComponent(TComponent * Instance,
  174. TClass RootAncestor, TClass ClassType);
  175. virtual HANDLE __fastcall LoadNewResourceModule(LCID Locale,
  176. AnsiString * FileName = NULL);
  177. virtual void __fastcall SetResourceModule(HANDLE Instance);
  178. virtual LCID __fastcall GetLocale();
  179. void __fastcall CheckTranslationVersion(const AnsiString FileName);
  180. public:
  181. __fastcall TWinConfiguration();
  182. __fastcall ~TWinConfiguration();
  183. virtual void __fastcall Default();
  184. void __fastcall RestoreForm(AnsiString Data, TCustomForm * Form);
  185. AnsiString __fastcall StoreForm(TCustomForm * Form);
  186. void __fastcall ClearTemporaryLoginData();
  187. virtual THierarchicalStorage * CreateScpStorage(bool SessionList);
  188. static void ReformatFileNameCommand(AnsiString & Command);
  189. __property TScpCommanderConfiguration ScpCommander = { read = FScpCommander, write = SetScpCommander };
  190. __property TScpExplorerConfiguration ScpExplorer = { read = FScpExplorer, write = SetScpExplorer };
  191. __property bool SelectDirectories = { read = FSelectDirectories, write = SetSelectDirectories };
  192. __property AnsiString SelectMask = { read = FSelectMask, write = FSelectMask };
  193. __property bool ShowHiddenFiles = { read = FShowHiddenFiles, write = SetShowHiddenFiles };
  194. __property bool ShowInaccesibleDirectories = { read = FShowInaccesibleDirectories, write = SetShowInaccesibleDirectories };
  195. __property TEditorConfiguration Editor = { read = FEditor, write = SetEditor };
  196. __property AnsiString AutoStartSession = { read = FAutoStartSession, write = SetAutoStartSession };
  197. __property bool CopyOnDoubleClick = { read = FCopyOnDoubleClick, write = SetCopyOnDoubleClick };
  198. __property bool CopyOnDoubleClickConfirmation = { read = FCopyOnDoubleClickConfirmation, write = SetCopyOnDoubleClickConfirmation };
  199. __property bool DDAllowMove = { read = FDDAllowMove, write = SetDDAllowMove };
  200. __property bool DDTransferConfirmation = { read = FDDTransferConfirmation, write = SetDDTransferConfirmation };
  201. __property bool LogWindowOnStartup = { read = FLogWindowOnStartup, write = SetLogWindowOnStartup };
  202. __property bool DeleteToRecycleBin = { read = FDeleteToRecycleBin, write = SetDeleteToRecycleBin };
  203. __property bool DimmHiddenFiles = { read = FDimmHiddenFiles, write = SetDimmHiddenFiles };
  204. __property AnsiString LogWindowParams = { read = FLogWindowParams, write = SetLogWindowParams };
  205. __property bool ConfirmDeleting = { read = FConfirmDeleting, write = SetConfirmDeleting};
  206. __property bool UseLocationProfiles = { read = FUseLocationProfiles, write = SetUseLocationProfiles};
  207. __property AnsiString DDTemporaryDirectory = { read=FDDTemporaryDirectory, write=SetDDTemporaryDirectory };
  208. __property bool DDWarnLackOfTempSpace = { read=FDDWarnLackOfTempSpace, write=SetDDWarnLackOfTempSpace };
  209. __property bool DDExtEnabled = { read=FDDExtEnabled, write=SetDDExtEnabled };
  210. __property bool DDExtInstalled = { read=GetDDExtInstalled };
  211. __property int DDExtTimeout = { read=FDDExtTimeout, write=SetDDExtTimeout };
  212. __property int DDExtCopySlipTimeout = { read=FDDExtCopySlipTimeout, write=SetDDExtCopySlipTimeout };
  213. __property bool ConfirmClosingSession = { read=FConfirmClosingSession, write=SetConfirmClosingSession };
  214. __property bool ConfirmExitOnCompletion = { read=FConfirmExitOnCompletion, write=SetConfirmExitOnCompletion };
  215. __property bool ForceDeleteTempFolder = { read=FForceDeleteTempFolder, write=SetForceDeleteTempFolder };
  216. __property double DDWarnLackOfTempSpaceRatio = { read=FDDWarnLackOfTempSpaceRatio, write=SetDDWarnLackOfTempSpaceRatio };
  217. __property TBookmarkList * Bookmarks[AnsiString Key] = { read = GetBookmarks, write = SetBookmarks };
  218. __property bool EmbeddedSessions = { read = FEmbeddedSessions };
  219. __property bool ExpertMode = { read = FExpertMode, write = SetExpertMode };
  220. __property bool DisableOpenEdit = { read = FDisableOpenEdit };
  221. __property TCustomCommands * CustomCommands = { read = FCustomCommands, write = SetCustomCommands };
  222. };
  223. //---------------------------------------------------------------------------
  224. class TCustomCommands : public TStringList
  225. {
  226. public:
  227. __property int Params[AnsiString Name] = {read=GetParam, write=SetParam};
  228. bool __fastcall Equals(TCustomCommands * Commands);
  229. private:
  230. int __fastcall GetParam(const AnsiString & Name);
  231. void __fastcall SetParam(const AnsiString & Name, int value);
  232. };
  233. //---------------------------------------------------------------------------
  234. #define WinConfiguration (dynamic_cast<TWinConfiguration *>(Configuration))
  235. //---------------------------------------------------------------------------
  236. #endif