lazarus-ccr/components/chelper/cconvconfig.pas
2010-08-23 09:00:13 +00:00

92 lines
3.1 KiB
ObjectPascal

{ The unit is part of Lazarus Chelper package
Copyright (C) 2010 Dmitry Boyarintsev skalogryz dot lists at gmail.com
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
for more details.
You should have received a copy of the GNU Library General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit cconvconfig;
{$mode delphi}
interface
uses
Classes, SysUtils, ctopasconvert, IniFiles;
procedure LoadFromFile(const FileName: AnsiString; cfg: TConvertSettings);
procedure SaveToFile(const FileName: AnsiString; cfg: TConvertSettings);
implementation
procedure LoadFromFile(const FileName: AnsiString; cfg: TConvertSettings);
var
ini : TIniFile;
begin
if not Assigned(cfg) then Exit;
try
ini:=TIniFile.Create(FileName);
try
// C to Pas Types
ini.ReadSectionValues('Types', cfg.CtoPasTypes);
cfg.RecordsArePacked:=ini.ReadBool('Main','RecordsArePacked', cfg.RecordsArePacked);
cfg.FuncsAreExternal:=ini.ReadBool('Main','FuncsAreExternal', cfg.FuncsAreExternal);
cfg.EnumsAsConst:=ini.ReadBool('Main','EnumAsConst', cfg.EnumsAsConst);
cfg.TypeNamePrefix:=ini.ReadString('Main','TypeNamePrefix',cfg.TypeNamePrefix);
cfg.RefTypeNamePrefix:=ini.ReadString('Main','RefTypeNamePrefix',cfg.RefTypeNamePrefix);
cfg.FuncConv:=ini.ReadString('Main','FuncConv',cfg.FuncConv);
cfg.FuncDeclPostfix:=ini.ReadString('Main','FuncDeclPostfix',cfg.FuncDeclPostfix);
cfg.ExtLibName:=ini.ReadString('Main','ExtLibName',cfg.ExtLibName);
cfg.ParamPrefix:=ini.ReadString('Main','ParamPrefix',cfg.ParamPrefix);
finally
ini.Free;
end;
except
end;
end;
procedure SaveToFile(const FileName: AnsiString; cfg: TConvertSettings);
var
ini : TIniFile;
i : Integer;
begin
if not Assigned(cfg) then Exit;
try
ini:=TIniFile.Create(FileName);
try
// C to Pas Types
for i:=0 to cfg.CtoPasTypes.Count-1 do
ini.WriteString('Types', cfg.CtoPasTypes.Names[i], cfg.CtoPasTypes.ValueFromIndex[i]);
ini.WriteBool('Main','RecordsArePacked', cfg.RecordsArePacked);
ini.WriteBool('Main','FuncsAreExternal', cfg.FuncsAreExternal);
ini.WriteBool('Main','EnumAsConst', cfg.EnumsAsConst);
ini.WriteString('Main','TypeNamePrefix',cfg.TypeNamePrefix);
ini.WriteString('Main','RefTypeNamePrefix',cfg.RefTypeNamePrefix);
ini.WriteString('Main','FuncConv',cfg.FuncConv);
ini.WriteString('Main','FuncDeclPostfix',cfg.FuncDeclPostfix);
ini.WriteString('Main','ParamPrefix',cfg.ParamPrefix);
ini.WriteString('Main','ExtLibName',cfg.ExtLibName);
finally
ini.Free;
end;
except
end;
end;
end.