CustomWinConfiguration.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //---------------------------------------------------------------------------
  2. #ifndef CustomWinConfigurationH
  3. #define CustomWinConfigurationH
  4. //---------------------------------------------------------------------------
  5. #include "GUIConfiguration.h"
  6. #define WM_WINSCP_USER (WM_USER + 0x2000)
  7. #define WM_LOCALE_CHANGE (WM_WINSCP_USER + 1)
  8. // WM_USER_STOP = WM_WINSCP_USER + 2 (in forms/Synchronize.cpp)
  9. // WM_INTERUPT_IDLE = WM_WINSCP_USER + 3 (in windows/ConsoleRunner.cpp)
  10. // WM_COMPONENT_HIDE = WM_WINSCP_USER + 4 (forms/CustomScpExplorer.cpp)
  11. // WM_TRAY_ICON = WM_WINSCP_USER + 5 (forms/CustomScpExplorer.cpp)
  12. // WM_LOG_UPDATE = WM_WINSCP_USER + 6 (components/LogMemo.cpp)
  13. #define WM_MANAGES_CAPTION (WM_WINSCP_USER + 7)
  14. //---------------------------------------------------------------------------
  15. #define C(Property) (Property != rhc.Property) ||
  16. struct TSynchronizeChecklistConfiguration
  17. {
  18. UnicodeString WindowParams;
  19. UnicodeString ListParams;
  20. bool __fastcall operator !=(TSynchronizeChecklistConfiguration & rhc)
  21. { return C(WindowParams) C(ListParams) 0; };
  22. };
  23. typedef TSynchronizeChecklistConfiguration TFindFileConfiguration;
  24. //---------------------------------------------------------------------------
  25. struct TConsoleWinConfiguration
  26. {
  27. UnicodeString WindowSize;
  28. bool __fastcall operator !=(TConsoleWinConfiguration & rhc)
  29. { return C(WindowSize) 0; };
  30. };
  31. typedef TConsoleWinConfiguration TLoginDialogConfiguration;
  32. //---------------------------------------------------------------------------
  33. class TCustomWinConfiguration : public TGUIConfiguration
  34. {
  35. static const int MaxHistoryCount = 50;
  36. private:
  37. TLogView FLogView;
  38. TInterface FInterface;
  39. TInterface FAppliedInterface;
  40. TStringList * FHistory;
  41. TStrings * FEmptyHistory;
  42. TSynchronizeChecklistConfiguration FSynchronizeChecklist;
  43. TFindFileConfiguration FFindFile;
  44. TConsoleWinConfiguration FConsoleWin;
  45. TLoginDialogConfiguration FLoginDialog;
  46. TInterface FDefaultInterface;
  47. bool FCanApplyInterfaceImmediately;
  48. bool FConfirmExitOnCompletion;
  49. bool FOperationProgressOnTop;
  50. UnicodeString FSessionColors;
  51. TNotifyEvent FOnMasterPasswordRecrypt;
  52. void __fastcall SetInterface(TInterface value);
  53. void __fastcall SetLogView(TLogView value);
  54. void __fastcall SetHistory(const UnicodeString Index, TStrings * value);
  55. TStrings * __fastcall GetHistory(const UnicodeString Index);
  56. void __fastcall SetSynchronizeChecklist(TSynchronizeChecklistConfiguration value);
  57. void __fastcall SetFindFile(TFindFileConfiguration value);
  58. void __fastcall SetConsoleWin(TConsoleWinConfiguration value);
  59. void __fastcall SetLoginDialog(TLoginDialogConfiguration value);
  60. void __fastcall SetConfirmExitOnCompletion(bool value);
  61. UnicodeString __fastcall GetDefaultFixedWidthFontName();
  62. int __fastcall GetDefaultFixedWidthFontSize();
  63. protected:
  64. virtual void __fastcall SaveData(THierarchicalStorage * Storage, bool All);
  65. virtual void __fastcall LoadData(THierarchicalStorage * Storage);
  66. virtual void __fastcall LoadAdmin(THierarchicalStorage * Storage);
  67. virtual void __fastcall Saved();
  68. void __fastcall ClearHistory();
  69. virtual void __fastcall DefaultHistory();
  70. void __fastcall RecryptPasswords(TStrings * RecryptPasswordErrors);
  71. virtual bool __fastcall GetUseMasterPassword() = 0;
  72. UnicodeString __fastcall FormatDefaultWindowParams(int Width, int Height);
  73. UnicodeString __fastcall FormatDefaultWindowSize(int Width, int Height);
  74. public:
  75. __fastcall TCustomWinConfiguration();
  76. virtual __fastcall ~TCustomWinConfiguration();
  77. virtual void __fastcall Default();
  78. virtual void __fastcall AskForMasterPasswordIfNotSet() = 0;
  79. void __fastcall AskForMasterPasswordIfNotSetAndNeededToPersistSessionData(TSessionData * SessionData);
  80. __property TLogView LogView = { read = FLogView, write = SetLogView };
  81. __property TInterface Interface = { read = FInterface, write = SetInterface };
  82. __property TInterface AppliedInterface = { read = FAppliedInterface, write = FAppliedInterface };
  83. __property bool CanApplyInterfaceImmediately = { read = FCanApplyInterfaceImmediately, write = FCanApplyInterfaceImmediately };
  84. __property TStrings * History[UnicodeString Name] = { read = GetHistory, write = SetHistory };
  85. __property TSynchronizeChecklistConfiguration SynchronizeChecklist = { read = FSynchronizeChecklist, write = SetSynchronizeChecklist };
  86. __property TFindFileConfiguration FindFile = { read = FFindFile, write = SetFindFile };
  87. __property TConsoleWinConfiguration ConsoleWin = { read = FConsoleWin, write = SetConsoleWin };
  88. __property TLoginDialogConfiguration LoginDialog = { read = FLoginDialog, write = SetLoginDialog };
  89. __property bool ConfirmExitOnCompletion = { read=FConfirmExitOnCompletion, write=SetConfirmExitOnCompletion };
  90. __property bool OperationProgressOnTop = { read=FOperationProgressOnTop, write=FOperationProgressOnTop };
  91. __property UnicodeString SessionColors = { read=FSessionColors, write=FSessionColors };
  92. __property bool UseMasterPassword = { read = GetUseMasterPassword };
  93. __property TNotifyEvent OnMasterPasswordRecrypt = { read = FOnMasterPasswordRecrypt, write = FOnMasterPasswordRecrypt };
  94. __property UnicodeString DefaultFixedWidthFontName = { read = GetDefaultFixedWidthFontName };
  95. __property int DefaultFixedWidthFontSize = { read = GetDefaultFixedWidthFontSize };
  96. };
  97. //---------------------------------------------------------------------------
  98. extern TCustomWinConfiguration * CustomWinConfiguration;
  99. //---------------------------------------------------------------------------
  100. #endif