summaryrefslogtreecommitdiff
path: root/plugins/!NotAdopted/Chess4Net/IniSettingsUnit.pas
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/!NotAdopted/Chess4Net/IniSettingsUnit.pas')
-rw-r--r--plugins/!NotAdopted/Chess4Net/IniSettingsUnit.pas348
1 files changed, 0 insertions, 348 deletions
diff --git a/plugins/!NotAdopted/Chess4Net/IniSettingsUnit.pas b/plugins/!NotAdopted/Chess4Net/IniSettingsUnit.pas
deleted file mode 100644
index 468035404e..0000000000
--- a/plugins/!NotAdopted/Chess4Net/IniSettingsUnit.pas
+++ /dev/null
@@ -1,348 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-// All code below is exclusively owned by author of Chess4Net - Pavel Perminov
-// (packpaul@mail.ru, packpaul1@gmail.com).
-// Any changes, modifications, borrowing and adaptation are a subject for
-// explicit permition from the owner.
-
-unit IniSettingsUnit;
-
-interface
-
-uses
- TntIniFiles,
- //
- ChessBoardUnit, ChessRulesEngine;
-
-type
- TIniSettingsID = (isidLastMoveHilighted, isidFlashOnMove, isidCoordinatesShown,
- isidStayOnTop, isidExtraExit, isidActiveLanguage, isidDontShowLastVersion,
- isidDontShowCredits, isidClock, isidTrainingMode, isidCanPauseGame,
- isidCanAdjournGame, isidExternalBaseName, isidUseUserBase, isidAllowTakebacks,
- isidAutoFlag, isidAdjourned);
-
- TIniSettings = class
- private
- m_IniFile: TTntIniFile;
-
- m_strOpponentId: string;
-
- constructor FCreate;
- function FGetIniFileName: string;
-
- function FGetBooleanValue(ID: TIniSettingsID): boolean;
- procedure FSetBooleanValue(ID: TIniSettingsID; bValue: boolean);
-
- function FGetIntegerValue(ID: TIniSettingsID): integer;
- procedure FSetIntegerValue(ID: TIniSettingsID; iValue: integer);
-
- function FGetStringValue(ID: TIniSettingsID): string;
- procedure FSetStringValue(ID: TIniSettingsID; const strValue: string);
-
- function FGetAnimation: TAnimation;
- procedure FSetAnimation(Value: TAnimation);
-
- function FGetCommonSectionName: string;
-
- function FGetPlayerColor: TFigureColor;
- procedure FSetPlayerColor(Value: TFigureColor);
-
- public
- destructor Destroy; override;
-
- class function Instance: TIniSettings;
- class procedure FreeInstance; reintroduce;
-
- procedure SetOpponentId(const strValue: string);
- function HasCommonSettings: boolean;
-
- // private settings
- property Animation: TAnimation
- read FGetAnimation write FSetAnimation;
- property LastMoveHilighted: boolean index isidLastMoveHilighted
- read FGetBooleanValue write FSetBooleanValue;
- property FlashOnMove: boolean index isidFlashOnMove
- read FGetBooleanValue write FSetBooleanValue;
- property CoordinatesShown: boolean index isidCoordinatesShown
- read FGetBooleanValue write FSetBooleanValue;
- property StayOnTop: boolean index isidStayOnTop
- read FGetBooleanValue write FSetBooleanValue;
- property ExtraExit: boolean index isidExtraExit
- read FGetBooleanValue write FSetBooleanValue;
- property ActiveLanguage: integer index isidActiveLanguage
- read FGetIntegerValue write FSetIntegerValue;
- property DontShowLastVersion: integer index isidDontShowLastVersion
- read FGetIntegerValue write FSetIntegerValue;
- property DontShowCredits: boolean index isidDontShowCredits
- read FGetBooleanValue write FSetBooleanValue;
-
- // common settings
- property PlayerColor: TFigureColor
- read FGetPlayerColor write FSetPlayerColor;
- property Clock: string index isidClock
- read FGetStringValue write FSetStringValue;
- property TrainingMode: boolean index isidTrainingMode
- read FGetBooleanValue write FSetBooleanValue;
- property CanPauseGame: boolean index isidCanPauseGame
- read FGetBooleanValue write FSetBooleanValue;
- property CanAdjournGame: boolean index isidCanAdjournGame
- read FGetBooleanValue write FSetBooleanValue;
- property ExternalBaseName: string index isidExternalBaseName
- read FGetStringValue write FSetStringValue;
- property UseUserBase: boolean index isidUseUserBase
- read FGetBooleanValue write FSetBooleanValue;
- property AllowTakebacks: boolean index isidAllowTakebacks
- read FGetBooleanValue write FSetBooleanValue;
- property AutoFlag: boolean index isidAutoFlag
- read FGetBooleanValue write FSetBooleanValue;
- property Adjourned: string index isidAdjourned
- read FGetStringValue write FSetStringValue;
- end;
-
-implementation
-
-uses
- SysUtils,
- //
- GlobalsUnit, GlobalsLocalUnit;
-
-const
- INI_FILE_NAME = 'Chess4Net.ini';
-
- PRIVATE_SECTION_NAME = 'Private';
- COMMON_SECTION_PREFIX = 'Common';
- ANIMATION_KEY_NAME = 'Animation';
- HILIGHT_LAST_MOVE_KEY_NAME = 'HilightLastMove';
- FLASH_ON_MOVE_NAME = 'FlashOnMove';
- SHOW_COORDINATES_KEY_NAME = 'ShowCoordinates';
- STAY_ON_TOP_KEY_NAME = 'StayOnTop';
- EXTRA_EXIT_KEY_NAME = 'ExtraExit';
- CAN_PAUSE_GAME_KEY_NAME = 'CanPauseGame';
- CAN_ADJOURN_GAME_KEY_NAME = 'CanAdjournGame';
- ALLOW_TAKEBACKS_KEY_NAME = 'AllowTakebacks';
- EXTERNAL_BASE_NAME_KEY_NAME = 'ExternalBaseName';
- USE_USER_BASE_KEY_NAME = 'UseUserBase';
- AUTO_FLAG_KEY_NAME = 'AutoFlag';
- TRAINING_MODE_KEY_NAME = 'TrainingMode';
- PLAYER_COLOR_KEY_NAME = 'PlayerColor';
- CLOCK_KEY_NAME = 'Clock';
- ADJOURNED_KEY_NAME = 'Adjourned';
- LANGUAGE_KEY_NAME = 'Language';
- DONT_SHOW_CREDITS = 'DontShowCredits';
- DONT_SHOW_LAST_VERSION = 'DontShowLastVersion';
-
-var
- g_Instance: TIniSettings = nil;
-
-////////////////////////////////////////////////////////////////////////////////
-// TIniSettings
-
-constructor TIniSettings.FCreate;
-begin
- inherited Create;
- m_IniFile := TTntIniFile.Create(FGetIniFileName);
-end;
-
-
-destructor TIniSettings.Destroy;
-begin
- m_IniFile.Free;
- inherited;
-end;
-
-
-class function TIniSettings.Instance: TIniSettings;
-begin
- if (not Assigned(g_Instance)) then
- g_Instance := TIniSettings.FCreate;
- Result := g_Instance;
-end;
-
-
-class procedure TIniSettings.FreeInstance;
-begin
- FreeAndNil(g_Instance);
-end;
-
-
-function TIniSettings.FGetIniFileName: string;
-begin
- Result := Chess4NetIniFilePath + INI_FILE_NAME;
-end;
-
-
-function TIniSettings.FGetAnimation: TAnimation;
-begin
- Result := TAnimation(m_IniFile.ReadInteger(PRIVATE_SECTION_NAME, ANIMATION_KEY_NAME, Ord(aQuick)))
-end;
-
-
-procedure TIniSettings.FSetAnimation(Value: TAnimation);
-begin
- m_IniFile.WriteInteger(PRIVATE_SECTION_NAME, ANIMATION_KEY_NAME, Ord(Value));
-end;
-
-
-function TIniSettings.FGetBooleanValue(ID: TIniSettingsID): boolean;
-begin
- case ID of
- isidLastMoveHilighted:
- Result := m_IniFile.ReadBool(PRIVATE_SECTION_NAME, HILIGHT_LAST_MOVE_KEY_NAME, FALSE);
- isidFlashOnMove:
- Result := m_IniFile.ReadBool(PRIVATE_SECTION_NAME, FLASH_ON_MOVE_NAME, FALSE);
- isidCoordinatesShown:
- Result := m_IniFile.ReadBool(PRIVATE_SECTION_NAME, SHOW_COORDINATES_KEY_NAME, TRUE);
- isidStayOnTop:
- Result := m_IniFile.ReadBool(PRIVATE_SECTION_NAME, STAY_ON_TOP_KEY_NAME, FALSE);
- isidExtraExit:
- Result := m_IniFile.ReadBool(PRIVATE_SECTION_NAME, EXTRA_EXIT_KEY_NAME, FALSE);
- isidDontShowCredits:
- Result := m_IniFile.ReadBool(PRIVATE_SECTION_NAME, DONT_SHOW_CREDITS, FALSE);
- isidTrainingMode:
- Result := m_IniFile.ReadBool(FGetCommonSectionName, TRAINING_MODE_KEY_NAME, FALSE);
- isidCanPauseGame:
- Result := m_IniFile.ReadBool(FGetCommonSectionName, CAN_PAUSE_GAME_KEY_NAME, FALSE);
- isidCanAdjournGame:
- Result := m_IniFile.ReadBool(FGetCommonSectionName, CAN_ADJOURN_GAME_KEY_NAME, FALSE);
- isidUseUserBase:
- Result := m_IniFile.ReadBool(FGetCommonSectionName, USE_USER_BASE_KEY_NAME, FALSE);
- isidAllowTakebacks:
- Result := m_IniFile.ReadBool(FGetCommonSectionName, ALLOW_TAKEBACKS_KEY_NAME, FALSE);
- isidAutoFlag:
- Result := m_IniFile.ReadBool(FGetCommonSectionName, AUTO_FLAG_KEY_NAME, FALSE);
- else
- Result := FALSE;
- Assert(FALSE);
- end;
-end;
-
-
-procedure TIniSettings.FSetBooleanValue(ID: TIniSettingsID; bValue: boolean);
-begin
- case ID of
- isidLastMoveHilighted:
- m_IniFile.WriteBool(PRIVATE_SECTION_NAME, HILIGHT_LAST_MOVE_KEY_NAME, bValue);
- isidFlashOnMove:
- m_IniFile.WriteBool(PRIVATE_SECTION_NAME, FLASH_ON_MOVE_NAME, bValue);
- isidCoordinatesShown:
- m_IniFile.WriteBool(PRIVATE_SECTION_NAME, SHOW_COORDINATES_KEY_NAME, bValue);
- isidStayOnTop:
- m_IniFile.WriteBool(PRIVATE_SECTION_NAME, STAY_ON_TOP_KEY_NAME, bValue);
- isidExtraExit:
- m_IniFile.WriteBool(PRIVATE_SECTION_NAME, EXTRA_EXIT_KEY_NAME, bValue);
- isidDontShowCredits:
- m_IniFile.WriteBool(PRIVATE_SECTION_NAME, DONT_SHOW_CREDITS, bValue);
- isidTrainingMode:
- m_IniFile.WriteBool(FGetCommonSectionName, TRAINING_MODE_KEY_NAME, bValue);
- isidCanPauseGame:
- m_IniFile.WriteBool(FGetCommonSectionName, CAN_PAUSE_GAME_KEY_NAME, bValue);
- isidCanAdjournGame:
- m_IniFile.WriteBool(FGetCommonSectionName, CAN_ADJOURN_GAME_KEY_NAME, bValue);
- isidUseUserBase:
- m_IniFile.WriteBool(FGetCommonSectionName, USE_USER_BASE_KEY_NAME, bValue);
- isidAllowTakebacks:
- m_IniFile.WriteBool(FGetCommonSectionName, ALLOW_TAKEBACKS_KEY_NAME, bValue);
- isidAutoFlag:
- m_IniFile.WriteBool(FGetCommonSectionName, AUTO_FLAG_KEY_NAME, bValue);
- else
- Assert(FALSE);
- end;
-end;
-
-
-function TIniSettings.FGetIntegerValue(ID: TIniSettingsID): integer;
-begin
- case ID of
- isidActiveLanguage:
- Result := m_IniFile.ReadInteger(PRIVATE_SECTION_NAME, LANGUAGE_KEY_NAME, 1) - 1;
- isidDontShowLastVersion:
- Result := m_IniFile.ReadInteger(PRIVATE_SECTION_NAME, DONT_SHOW_LAST_VERSION, CHESS4NET_VERSION);
- else
- Result := 0;
- Assert(FALSE);
- end;
-end;
-
-
-procedure TIniSettings.FSetIntegerValue(ID: TIniSettingsID; iValue: integer);
-begin
- case ID of
- isidActiveLanguage:
- m_IniFile.WriteInteger(PRIVATE_SECTION_NAME, LANGUAGE_KEY_NAME, iValue + 1);
- isidDontShowLastVersion:
- m_IniFile.WriteInteger(PRIVATE_SECTION_NAME, DONT_SHOW_LAST_VERSION, iValue);
- else
- Assert(FALSE);
- end;
-end;
-
-
-function TIniSettings.FGetStringValue(ID: TIniSettingsID): string;
-begin
- case ID of
- isidClock:
- Result := m_IniFile.ReadString(FGetCommonSectionName, CLOCK_KEY_NAME, INITIAL_CLOCK_TIME);
- isidExternalBaseName:
- Result := m_IniFile.ReadString(FGetCommonSectionName, EXTERNAL_BASE_NAME_KEY_NAME, '');
- isidAdjourned:
- Result := m_IniFile.ReadString(FGetCommonSectionName, ADJOURNED_KEY_NAME, '');
- else
- Result := '';
- Assert(FALSE);
- end;
-end;
-
-
-procedure TIniSettings.FSetStringValue(ID: TIniSettingsID; const strValue: string);
-begin
- case ID of
- isidClock:
- m_IniFile.WriteString(FGetCommonSectionName, CLOCK_KEY_NAME, strValue);
- isidExternalBaseName:
- m_IniFile.WriteString(FGetCommonSectionName, EXTERNAL_BASE_NAME_KEY_NAME, strValue);
- isidAdjourned:
- begin
- m_IniFile.WriteString(FGetCommonSectionName, ADJOURNED_KEY_NAME, strValue);
- m_IniFile.UpdateFile;
- end;
- else
- Assert(FALSE);
- end;
-end;
-
-
-procedure TIniSettings.SetOpponentId(const strValue: string);
-begin
- m_strOpponentId := strValue;
-end;
-
-
-function TIniSettings.HasCommonSettings: boolean;
-begin
- Result := m_IniFile.SectionExists(FGetCommonSectionName);
-end;
-
-
-function TIniSettings.FGetCommonSectionName: string;
-begin
- Result := COMMON_SECTION_PREFIX + ' ' + m_strOpponentId;
-end;
-
-
-function TIniSettings.FGetPlayerColor: TFigureColor;
-begin
- Result := TFigureColor(m_IniFile.ReadInteger(
- FGetCommonSectionName, PLAYER_COLOR_KEY_NAME, Ord(fcBlack)))
-end;
-
-
-procedure TIniSettings.FSetPlayerColor(Value: TFigureColor);
-begin
- m_IniFile.WriteInteger(FGetCommonSectionName, PLAYER_COLOR_KEY_NAME, Ord(Value));
-end;
-
-initialization
-
-finalization
- TIniSettings.FreeInstance;
-
-end.