TCustomFreeTypeFontCollection = class
protected
function GetFont(AFileName: string): TCustomFontCollectionItem; virtual; abstract;
function GetFamily(AName: string): TCustomFamilyCollectionItem; virtual; abstract;
function GetFamilyCount: integer; virtual; abstract;
function GetFontCount: integer; virtual; abstract;
public
constructor Create; virtual; abstract;
procedure Clear; virtual; abstract;
procedure BeginUpdate; virtual; abstract;
procedure AddFolder(AFolder: string; AIncludeSubdirs: Boolean = false); virtual; abstract;
procedure RemoveFolder(AFolder: string); virtual; abstract;
function AddFile(AFilename: string): TCustomFontCollectionItem; virtual; abstract;
function RemoveFile(AFilename: string): boolean; virtual; abstract;
function AddStream(AStream: TStream; AOwned: boolean): boolean; virtual; abstract;
procedure EndUpdate; virtual; abstract;
function FontFileEnumerator: IFreeTypeFontEnumerator; virtual; abstract;
function FamilyEnumerator: IFreeTypeFamilyEnumerator; virtual; abstract;
property FontFileCount: integer read GetFontCount;
property FontFile[AFileName: string]: TCustomFontCollectionItem read GetFont;
property FamilyCount: integer read GetFamilyCount;
property Family[AName: string]: TCustomFamilyCollectionItem read GetFamily;
end;