1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00
Files
winscp/source/windows/CustomWinConfiguration.h
Martin Prikryl 74fdf539de Clang imposed changes that should be noop and have no effect on classic compiler (2nd after 92ba1e3f0 + preceding commits)
Mostly
– explicit static global variables
– const, sign and down casts safety
– same-named variables in nested scopes
– incorrectly identified uninitialized variables
– semicolon after function implementation
– unused variables, fields, arguments and macros
– exact include filename case
– field initialization order
– typename use
– struct vs class declarations
– incorrectly identified uninitialized variables
– refactoring to solve Clang internal compiler error when using new variable in __finally block

Source commit: 3da995ff5169eefcfe3b3b7cc0d019c660096c07
2025-06-24 16:32:34 +02:00

130 lines
6.9 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/IEDriveInfo.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)
// WM_DRIVEINFO_PROCESS + 18 (packages/filemng/IEDriveInfo.pas)
//---------------------------------------------------------------------------
#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