You've already forked lazarus-ccr
106 lines
3.0 KiB
ObjectPascal
106 lines
3.0 KiB
ObjectPascal
![]() |
unit iOSXIBResource;
|
||
|
|
||
|
{$mode objfpc}{$H+}
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
Classes, SysUtils,
|
||
|
LCLMemManager, forms,
|
||
|
dom, XMLRead,XMLWrite,
|
||
|
ProjectIntf, UnitResources;
|
||
|
|
||
|
type
|
||
|
|
||
|
{ TXIBResourcefileFormat }
|
||
|
|
||
|
TXIBResourcefileFormat = class(TUnitResourcefileFormat)
|
||
|
public
|
||
|
class function FindResourceDirective(Source: TObject): boolean; override;
|
||
|
class function ResourceDirectiveFilename: string; override;
|
||
|
class function GetUnitResourceFilename(AUnitFilenae: string): string; override;
|
||
|
class procedure TextStreamToBinStream(ATxtStream, ABinStream: TExtMemoryStream); override;
|
||
|
class procedure BinStreamToTextStream(ABinStream, ATextStream: TExtMemoryStream); override;
|
||
|
class function GetClassNameFromStream(s: TStream; out IsInherited: Boolean): shortstring; override;
|
||
|
class function CreateReader(s: TStream; var DestroyDriver: boolean): TReader; override;
|
||
|
class function CreateWriter(s: TStream; var DestroyDriver: boolean): TWriter; override;
|
||
|
class function QuickCheckResourceBuffer(PascalBuffer, LFMBuffer: TObject;
|
||
|
out LFMType, LFMComponentName, LFMClassName: string; out
|
||
|
LCLVersion: string; out MissingClasses: TStrings): TModalResult; override;
|
||
|
end;
|
||
|
|
||
|
implementation
|
||
|
|
||
|
uses
|
||
|
CodeCache,
|
||
|
CodeToolManager,
|
||
|
BasicCodeTools,
|
||
|
ios_views;
|
||
|
|
||
|
{ TXIBResourcefileFormat }
|
||
|
|
||
|
class function TXIBResourcefileFormat.FindResourceDirective(Source: TObject): boolean;
|
||
|
var
|
||
|
cb: TCodeBuffer;
|
||
|
nx,ny,nt: integer;
|
||
|
r,p: integer;
|
||
|
begin
|
||
|
// CodeToolBoss.find;
|
||
|
r := FindNextCompilerDirectiveWithName((source as TCodeBuffer).Source, -1, 'FakeResource', False, p);
|
||
|
result := (r > -1)
|
||
|
end;
|
||
|
|
||
|
class function TXIBResourcefileFormat.ResourceDirectiveFilename: string;
|
||
|
begin
|
||
|
result := '*.xib';
|
||
|
end;
|
||
|
|
||
|
class function TXIBResourcefileFormat.GetUnitResourceFilename(
|
||
|
AUnitFilenae: string): string;
|
||
|
begin
|
||
|
result := ChangeFileExt(AUnitFilenae,'.xib');
|
||
|
end;
|
||
|
|
||
|
class procedure TXIBResourcefileFormat.TextStreamToBinStream(ATxtStream,
|
||
|
ABinStream: TExtMemoryStream);
|
||
|
begin
|
||
|
ABinStream.LoadFromStream(ATxtStream);
|
||
|
end;
|
||
|
|
||
|
class procedure TXIBResourcefileFormat.BinStreamToTextStream(ABinStream,
|
||
|
ATextStream: TExtMemoryStream);
|
||
|
begin
|
||
|
ATextStream.LoadFromStream(ABinStream);
|
||
|
end;
|
||
|
|
||
|
class function TXIBResourcefileFormat.GetClassNameFromStream(s: TStream; out
|
||
|
IsInherited: Boolean): shortstring;
|
||
|
begin
|
||
|
result := 'TSObject1';
|
||
|
end;
|
||
|
|
||
|
class function TXIBResourcefileFormat.CreateReader(s: TStream;
|
||
|
var DestroyDriver: boolean): TReader;
|
||
|
begin
|
||
|
result := TXIBReader.Create(S, 4096);
|
||
|
end;
|
||
|
|
||
|
class function TXIBResourcefileFormat.CreateWriter(s: TStream;
|
||
|
var DestroyDriver: boolean): TWriter;
|
||
|
begin
|
||
|
result := TWriter.Create(TNIBObjectWriter.Create(s));
|
||
|
end;
|
||
|
|
||
|
class function TXIBResourcefileFormat.QuickCheckResourceBuffer(PascalBuffer,
|
||
|
LFMBuffer: TObject; out LFMType, LFMComponentName, LFMClassName: string; out
|
||
|
LCLVersion: string; out MissingClasses: TStrings): TModalResult;
|
||
|
begin
|
||
|
LCLVersion:='1.1';
|
||
|
LFMType:='unknown';
|
||
|
LFMClassName:='TSObject1';
|
||
|
LFMComponentName:='SObject1';
|
||
|
end;
|
||
|
|
||
|
end.
|
||
|
|