Componentes.Terceros.jcl/official/2.1.1/experts/debug/converter/JclDebugIdeConfigFrame.pas
2010-01-18 16:51:36 +00:00

247 lines
9.7 KiB
ObjectPascal

{**************************************************************************************************}
{ }
{ Project JEDI Code Library (JCL) }
{ }
{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); }
{ you may not use this file except in compliance with the License. You may obtain a copy of the }
{ License at http://www.mozilla.org/MPL/ }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF }
{ ANY KIND, either express or implied. See the License for the specific language governing rights }
{ and limitations under the License. }
{ }
{ The Original Code is JclDebugIdeConfigFrame.pas. }
{ }
{ The Initial Developer of the Original Code is Florent Ouchet. }
{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. }
{ }
{ Contributors: }
{ }
{**************************************************************************************************}
{ }
{ Last modified: $Date:: 2009-09-14 18:00:50 +0200 (lun., 14 sept. 2009) $ }
{ Revision: $Rev:: 3012 $ }
{ Author: $Author:: outchy $ }
{ }
{**************************************************************************************************}
unit JclDebugIdeConfigFrame;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
Dialogs, StdCtrls, ExtCtrls;
type
TDebugExpertState = (deAlwaysDisabled, deProjectDisabled, deProjectEnabled, deAlwaysEnabled);
TJclDebugIdeConfigFrame = class(TFrame)
RadioGroupGenerateJdbg: TRadioGroup;
RadioGroupInsertJdbg: TRadioGroup;
RadioGroupDeleteMapFile: TRadioGroup;
private
function GetGenerateJdbgState: TDebugExpertState;
function GetInsertJdbgState: TDebugExpertState;
function GetDeleteMapFileState: TDebugExpertState;
procedure SetGenerateJdbgState(Value: TDebugExpertState);
procedure SetInsertJdbgState(Value: TDebugExpertState);
procedure SetDeleteMapFileState(Value: TDebugExpertState);
public
constructor Create(AOwner: TComponent); override;
property GenerateJdbgState: TDebugExpertState read GetGenerateJdbgState write SetGenerateJdbgState;
property InsertJdbgState: TDebugExpertState read GetInsertJdbgState write SetInsertJdbgState;
property DeleteMapFileState: TDebugExpertState read GetDeleteMapFileState write SetDeleteMapFileState;
end;
function DebugExpertStateToInt(Value: TDebugExpertState): Integer;
function IntToDebugExpertState(Value: Integer): TDebugExpertState;
function ToggleDebugExpertState(Value: TDebugExpertState): TDebugExpertState;
function EnableDebugExpertState(Value: TDebugExpertState): TDebugExpertState;
function DisableDebugExpertState(Value: TDebugExpertState): TDebugExpertState;
function ApplyDebugExpertState(GlobalState: TDebugExpertState; LocalEnabled: Boolean): TDebugExpertState;
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
RCSfile: '$URL: https://jcl.svn.sourceforge.net/svnroot/jcl/tags/JCL-2.1-Build3536/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas $';
Revision: '$Revision: 3012 $';
Date: '$Date: 2009-09-14 18:00:50 +0200 (lun., 14 sept. 2009) $';
LogPath: 'JCL\experts\debug\converter';
Extra: '';
Data: nil
);
{$ENDIF UNITVERSIONING}
implementation
{$R *.dfm}
uses
JclOtaResources;
function DebugExpertStateToInt(Value: TDebugExpertState): Integer;
begin
case Value of
deAlwaysDisabled:
Result := 0;
deProjectDisabled:
Result := 1;
deProjectEnabled:
Result := 2;
deAlwaysEnabled:
Result := 3;
else
raise EConvertError.CreateResFmt(@RsEInvalidDebugExpertState, [Integer(Value)]);
end;
end;
function IntToDebugExpertState(Value: Integer): TDebugExpertState;
begin
case Value of
0:
Result := deAlwaysDisabled;
1:
Result := deProjectDisabled;
2:
Result := deProjectEnabled;
3:
Result := deAlwaysEnabled;
else
raise EConvertError.CreateResFmt(@RsEInvalidDebugExpertState, [Value]);
end;
end;
function ToggleDebugExpertState(Value: TDebugExpertState): TDebugExpertState;
begin
case Value of
deAlwaysDisabled:
Result := deAlwaysEnabled;
deProjectDisabled:
Result := deProjectEnabled;
deProjectEnabled:
Result := deProjectDisabled;
deAlwaysEnabled:
Result := deAlwaysDisabled;
else
raise EConvertError.CreateResFmt(@RsEInvalidDebugExpertState, [Integer(Value)]);
end;
end;
function EnableDebugExpertState(Value: TDebugExpertState): TDebugExpertState;
begin
case Value of
deAlwaysDisabled:
Result := deAlwaysEnabled;
deProjectDisabled:
Result := deProjectEnabled;
deProjectEnabled,
deAlwaysEnabled:
Result := Value;
else
raise EConvertError.CreateResFmt(@RsEInvalidDebugExpertState, [Integer(Value)]);
end;
end;
function DisableDebugExpertState(Value: TDebugExpertState): TDebugExpertState;
begin
case Value of
deAlwaysDisabled,
deProjectDisabled:
Result := Value;
deProjectEnabled:
Result := deProjectDisabled;
deAlwaysEnabled:
Result := deAlwaysDisabled;
else
raise EConvertError.CreateResFmt(@RsEInvalidDebugExpertState, [Integer(Value)]);
end;
end;
function ApplyDebugExpertState(GlobalState: TDebugExpertState; LocalEnabled: Boolean): TDebugExpertState;
begin
case GlobalState of
deAlwaysDisabled:
Result := deAlwaysDisabled;
deProjectDisabled,
deProjectEnabled:
if LocalEnabled then
Result := deProjectEnabled
else
Result := deProjectDisabled;
deAlwaysEnabled:
Result := deAlwaysEnabled;
else
raise EConvertError.CreateResFmt(@RsEInvalidDebugExpertState, [Integer(GlobalState)]);
end;
end;
//=== { TJclDebugIdeConfigFrame } ============================================
constructor TJclDebugIdeConfigFrame.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
RadioGroupGenerateJdbg.Caption := LoadResString(@RsDebugGenerateJdbg);
RadioGroupGenerateJdbg.Items.Strings[0] := LoadResString(@RsAlwaysDisabled);
RadioGroupGenerateJdbg.Items.Strings[1] := LoadResString(@RsDefaultDisabled);
RadioGroupGenerateJdbg.Items.Strings[2] := LoadResString(@RsDefaultEnabled);
RadioGroupGenerateJdbg.Items.Strings[3] := LoadResString(@RsAlwaysEnabled);
RadioGroupInsertJdbg.Caption := LoadResString(@RsDebugInsertJdbg);
RadioGroupInsertJdbg.Items.Strings[0] := LoadResString(@RsAlwaysDisabled);
RadioGroupInsertJdbg.Items.Strings[1] := LoadResString(@RsDefaultDisabled);
RadioGroupInsertJdbg.Items.Strings[2] := LoadResString(@RsDefaultEnabled);
RadioGroupInsertJdbg.Items.Strings[3] := LoadResString(@RsAlwaysEnabled);
RadioGroupDeleteMapFile.Caption := LoadResString(@RsDeleteMapFile);
RadioGroupDeleteMapFile.Items.Strings[0] := LoadResString(@RsAlwaysDisabled);
RadioGroupDeleteMapFile.Items.Strings[1] := LoadResString(@RsDefaultDisabled);
RadioGroupDeleteMapFile.Items.Strings[2] := LoadResString(@RsDefaultEnabled);
RadioGroupDeleteMapFile.Items.Strings[3] := LoadResString(@RsAlwaysEnabled);
end;
function TJclDebugIdeConfigFrame.GetGenerateJdbgState: TDebugExpertState;
begin
Result := IntToDebugExpertState(RadioGroupGenerateJdbg.ItemIndex);
end;
function TJclDebugIdeConfigFrame.GetInsertJdbgState: TDebugExpertState;
begin
Result := IntToDebugExpertState(RadioGroupInsertJdbg.ItemIndex);
end;
function TJclDebugIdeConfigFrame.GetDeleteMapFileState: TDebugExpertState;
begin
Result := IntToDebugExpertState(RadioGroupDeleteMapFile.ItemIndex);
end;
procedure TJclDebugIdeConfigFrame.SetGenerateJdbgState(Value: TDebugExpertState);
begin
RadioGroupGenerateJdbg.ItemIndex := DebugExpertStateToInt(Value);
end;
procedure TJclDebugIdeConfigFrame.SetInsertJdbgState(Value: TDebugExpertState);
begin
RadioGroupInsertJdbg.ItemIndex := DebugExpertStateToInt(Value);
end;
procedure TJclDebugIdeConfigFrame.SetDeleteMapFileState(Value: TDebugExpertState);
begin
RadioGroupDeleteMapFile.ItemIndex := DebugExpertStateToInt(Value);
end;
{$IFDEF UNITVERSIONING}
initialization
RegisterUnitVersion(HInstance, UnitVersioning);
finalization
UnregisterUnitVersion(HInstance);
{$ENDIF UNITVERSIONING}
end.