mirror of
https://github.com/winscp/winscp.git
synced 2026-10-24 02:28:55 +03:00
129 lines
6.8 KiB
C++
129 lines
6.8 KiB
C++
//---------------------------------------------------------------------------
|
|
#ifndef CustomWinConfigurationH
|
|
#define CustomWinConfigurationH
|
|
//---------------------------------------------------------------------------
|
|
#include "GUIConfiguration.h"
|
|
#define WM_WINSCP_USER (WM_USER + 0x2000)
|
|
// WM_USER_STOP = WM_WINSCP_USER + 2 (in forms/Synchronize.cpp)
|
|
// WM_INTERUPT_IDLE = WM_WINSCP_USER + 3 (in windows/ConsoleRunner.cpp)
|
|
// WM_COMPONENT_HIDE = WM_WINSCP_USER + 4 (forms/CustomScpExplorer.cpp)
|
|
// WM_TRAY_ICON = WM_WINSCP_USER + 5 (forms/CustomScpExplorer.cpp)
|
|
// WM_WINSCP_USER + 6 was WM_LOG_UPDATE
|
|
#define WM_MANAGES_CAPTION (WM_WINSCP_USER + 7)
|
|
#define WM_WANTS_MOUSEWHEEL (WM_WINSCP_USER + 8)
|
|
#define WM_CAN_DISPLAY_UPDATES (WM_WINSCP_USER + 9)
|
|
// CM_DPICHANGED + 10 (packages/my/PasTools.pas)
|
|
#define WM_WANTS_MOUSEWHEEL_INACTIVE (WM_WINSCP_USER + 11)
|
|
#define WM_WANTS_SCREEN_TIPS (WM_WINSCP_USER + 12)
|
|
// WM_USER_SHCHANGENOTIFY + 13 (packages/filemng/DriveView.pas)
|
|
// WM_PASTE_FILES + 14 (forms/CustomScpExplorer.cpp)
|
|
#define WM_IS_HIDDEN (WM_WINSCP_USER + 15)
|
|
// WM_USER_INVALIDATEITEM + 16 (packages/filemng/DirView.pas)
|
|
#define WM_QUEUE_CALLBACK (WM_WINSCP_USER + 17)
|
|
//---------------------------------------------------------------------------
|
|
#define C(Property) (Property != rhc.Property) ||
|
|
struct TSynchronizeChecklistConfiguration
|
|
{
|
|
UnicodeString WindowParams;
|
|
UnicodeString ListParams;
|
|
bool __fastcall operator !=(TSynchronizeChecklistConfiguration & rhc)
|
|
{ return C(WindowParams) C(ListParams) 0; };
|
|
};
|
|
typedef TSynchronizeChecklistConfiguration TFindFileConfiguration;
|
|
//---------------------------------------------------------------------------
|
|
struct TConsoleWinConfiguration
|
|
{
|
|
UnicodeString WindowSize;
|
|
bool __fastcall operator !=(TConsoleWinConfiguration & rhc)
|
|
{ return C(WindowSize) 0; };
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
enum TIncrementalSearch { isOff = -1, isNameStartOnly, isName, isAll };
|
|
//---------------------------------------------------------------------------
|
|
struct TLoginDialogConfiguration : public TConsoleWinConfiguration
|
|
{
|
|
TIncrementalSearch SiteSearch;
|
|
bool __fastcall operator !=(TLoginDialogConfiguration & rhc)
|
|
{ return (TConsoleWinConfiguration::operator !=(rhc)) || C(SiteSearch) 0; };
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
class TCustomWinConfiguration : public TGUIConfiguration
|
|
{
|
|
static const int MaxHistoryCount = 50;
|
|
private:
|
|
TInterface FInterface;
|
|
TInterface FAppliedInterface;
|
|
TStringList * FHistory;
|
|
TStrings * FEmptyHistory;
|
|
TSynchronizeChecklistConfiguration FSynchronizeChecklist;
|
|
TFindFileConfiguration FFindFile;
|
|
TConsoleWinConfiguration FConsoleWin;
|
|
TLoginDialogConfiguration FLoginDialog;
|
|
TInterface FDefaultInterface;
|
|
bool FCanApplyInterfaceImmediately;
|
|
bool FConfirmExitOnCompletion;
|
|
bool FSynchronizeSummary;
|
|
UnicodeString FSessionColors;
|
|
UnicodeString FFontColors;
|
|
bool FCopyShortCutHintShown;
|
|
bool FHttpForWebDAV;
|
|
TNotifyEvent FOnMasterPasswordRecrypt;
|
|
UnicodeString FDefaultFixedWidthFontName;
|
|
int FDefaultFixedWidthFontSize;
|
|
|
|
void __fastcall SetInterface(TInterface value);
|
|
void __fastcall SetHistory(const UnicodeString Index, TStrings * value);
|
|
TStrings * __fastcall GetHistory(const UnicodeString Index);
|
|
void __fastcall SetSynchronizeChecklist(TSynchronizeChecklistConfiguration value);
|
|
void __fastcall SetFindFile(TFindFileConfiguration value);
|
|
void __fastcall SetConsoleWin(TConsoleWinConfiguration value);
|
|
void __fastcall SetLoginDialog(TLoginDialogConfiguration value);
|
|
void __fastcall SetConfirmExitOnCompletion(bool value);
|
|
void __fastcall SetSynchronizeSummary(bool value);
|
|
UnicodeString __fastcall GetDefaultFixedWidthFontName();
|
|
int __fastcall GetDefaultFixedWidthFontSize();
|
|
|
|
protected:
|
|
virtual void __fastcall SaveData(THierarchicalStorage * Storage, bool All);
|
|
virtual void __fastcall LoadData(THierarchicalStorage * Storage);
|
|
virtual void __fastcall LoadAdmin(THierarchicalStorage * Storage);
|
|
virtual void __fastcall Saved();
|
|
void __fastcall ClearHistory();
|
|
virtual void __fastcall DefaultHistory();
|
|
void __fastcall RecryptPasswords(TStrings * RecryptPasswordErrors);
|
|
virtual bool __fastcall GetUseMasterPassword() = 0;
|
|
UnicodeString __fastcall FormatDefaultWindowParams(int Width, int Height);
|
|
UnicodeString __fastcall FormatDefaultWindowSize(int Width, int Height);
|
|
|
|
public:
|
|
__fastcall TCustomWinConfiguration();
|
|
virtual __fastcall ~TCustomWinConfiguration();
|
|
virtual void __fastcall Default();
|
|
virtual void __fastcall AskForMasterPasswordIfNotSet() = 0;
|
|
void __fastcall AskForMasterPasswordIfNotSetAndNeededToPersistSessionData(TSessionData * SessionData);
|
|
static UnicodeString __fastcall GetValidHistoryKey(UnicodeString Key);
|
|
|
|
__property TInterface Interface = { read = FInterface, write = SetInterface };
|
|
__property TInterface AppliedInterface = { read = FAppliedInterface, write = FAppliedInterface };
|
|
__property bool CanApplyInterfaceImmediately = { read = FCanApplyInterfaceImmediately, write = FCanApplyInterfaceImmediately };
|
|
__property TStrings * History[UnicodeString Name] = { read = GetHistory, write = SetHistory };
|
|
__property TSynchronizeChecklistConfiguration SynchronizeChecklist = { read = FSynchronizeChecklist, write = SetSynchronizeChecklist };
|
|
__property TFindFileConfiguration FindFile = { read = FFindFile, write = SetFindFile };
|
|
__property TConsoleWinConfiguration ConsoleWin = { read = FConsoleWin, write = SetConsoleWin };
|
|
__property TLoginDialogConfiguration LoginDialog = { read = FLoginDialog, write = SetLoginDialog };
|
|
__property bool ConfirmExitOnCompletion = { read=FConfirmExitOnCompletion, write=SetConfirmExitOnCompletion };
|
|
__property bool SynchronizeSummary = { read = FSynchronizeSummary, write = SetSynchronizeSummary };
|
|
__property UnicodeString SessionColors = { read=FSessionColors, write=FSessionColors };
|
|
__property UnicodeString FontColors = { read=FFontColors, write=FFontColors };
|
|
__property bool CopyShortCutHintShown = { read=FCopyShortCutHintShown, write=FCopyShortCutHintShown };
|
|
__property bool UseMasterPassword = { read = GetUseMasterPassword };
|
|
__property bool HttpForWebDAV = { read = FHttpForWebDAV, write = FHttpForWebDAV };
|
|
__property TNotifyEvent OnMasterPasswordRecrypt = { read = FOnMasterPasswordRecrypt, write = FOnMasterPasswordRecrypt };
|
|
__property UnicodeString DefaultFixedWidthFontName = { read = GetDefaultFixedWidthFontName };
|
|
__property int DefaultFixedWidthFontSize = { read = GetDefaultFixedWidthFontSize };
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
extern TCustomWinConfiguration * CustomWinConfiguration;
|
|
//---------------------------------------------------------------------------
|
|
#endif
|