mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 02:49:21 +02:00
webidl: write typedefs and callbacks in one list, they may depend on each other
This commit is contained in:
parent
88efd9eed6
commit
a84c13ad18
@ -127,13 +127,12 @@ type
|
|||||||
function WriteAttributeImplicitTypes(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteAttributeImplicitTypes(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteOtherImplicitTypes(Intf: TIDLInterfaceDefinition; aMemberList: TIDLDefinitionList): Integer; virtual;
|
function WriteOtherImplicitTypes(Intf: TIDLInterfaceDefinition; aMemberList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteDictionaryMemberImplicitTypes(aDict: TIDLDictionaryDefinition; aList: TIDLDefinitionList): Integer; virtual;
|
function WriteDictionaryMemberImplicitTypes(aDict: TIDLDictionaryDefinition; aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteCallBackDefs(aList: TIDLDefinitionList): Integer; virtual;
|
|
||||||
function WriteDictionaryDefs(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteDictionaryDefs(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteForwardClassDefs(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteForwardClassDefs(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteInterfaceDefs(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteInterfaceDefs(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteMethodDefs(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteMethodDefs(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteUtilityMethods(Intf: TIDLInterfaceDefinition): Integer; virtual;
|
function WriteUtilityMethods(Intf: TIDLInterfaceDefinition): Integer; virtual;
|
||||||
function WriteTypeDefs(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteTypeDefsAndCallbacks(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteEnumDefs(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteEnumDefs(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteConsts(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteConsts(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
function WriteProperties(aList: TIDLDefinitionList): Integer; virtual;
|
function WriteProperties(aList: TIDLDefinitionList): Integer; virtual;
|
||||||
@ -970,19 +969,30 @@ begin
|
|||||||
AddLn('end;');
|
AddLn('end;');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBaseWebIDLToPas.WriteTypeDefs(aList: TIDLDefinitionList): Integer;
|
function TBaseWebIDLToPas.WriteTypeDefsAndCallbacks(aList: TIDLDefinitionList): Integer;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
D: TIDLDefinition;
|
D: TIDLDefinition;
|
||||||
TD: TIDLTypeDefDefinition absolute D;
|
TD: TIDLTypeDefDefinition absolute D;
|
||||||
|
FD: TIDLFunctionDefinition absolute D;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result:=0;
|
Result:=0;
|
||||||
EnsureSection(csType);
|
EnsureSection(csType);
|
||||||
for D in aList do
|
for D in aList do
|
||||||
|
begin
|
||||||
if D is TIDLTypeDefDefinition then
|
if D is TIDLTypeDefDefinition then
|
||||||
|
begin
|
||||||
if WriteTypeDef(TD) then
|
if WriteTypeDef(TD) then
|
||||||
Inc(Result);
|
Inc(Result);
|
||||||
|
end
|
||||||
|
else if D is TIDLFunctionDefinition then
|
||||||
|
begin
|
||||||
|
if (foCallBack in FD.Options) then
|
||||||
|
if WriteFunctionTypeDefinition(FD) then
|
||||||
|
Inc(Result);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBaseWebIDLToPas.WriteEnumDef(aDef: TIDLEnumDefinition): Boolean;
|
function TBaseWebIDLToPas.WriteEnumDef(aDef: TIDLEnumDefinition): Boolean;
|
||||||
@ -1248,22 +1258,6 @@ begin
|
|||||||
if aDef=nil then exit;
|
if aDef=nil then exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBaseWebIDLToPas.WriteCallBackDefs(aList: TIDLDefinitionList): Integer;
|
|
||||||
|
|
||||||
Var
|
|
||||||
D: TIDLDefinition;
|
|
||||||
FD: TIDLFunctionDefinition absolute D;
|
|
||||||
|
|
||||||
begin
|
|
||||||
Result:=0;
|
|
||||||
EnsureSection(csType);
|
|
||||||
for D in aList do
|
|
||||||
if D is TIDLFunctionDefinition then
|
|
||||||
if (foCallBack in FD.Options) then
|
|
||||||
if WriteFunctionTypeDefinition(FD) then
|
|
||||||
Inc(Result);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TBaseWebIDLToPas.WriteDictionaryDefs(aList: TIDLDefinitionList): Integer;
|
function TBaseWebIDLToPas.WriteDictionaryDefs(aList: TIDLDefinitionList): Integer;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -1412,8 +1406,7 @@ begin
|
|||||||
Indent;
|
Indent;
|
||||||
WriteForwardClassDefs(Context.Definitions);
|
WriteForwardClassDefs(Context.Definitions);
|
||||||
WriteEnumDefs(Context.Definitions);
|
WriteEnumDefs(Context.Definitions);
|
||||||
WriteTypeDefs(Context.Definitions);
|
WriteTypeDefsAndCallbacks(Context.Definitions);
|
||||||
WriteCallbackDefs(Context.Definitions);
|
|
||||||
WriteDictionaryDefs(Context.Definitions);
|
WriteDictionaryDefs(Context.Definitions);
|
||||||
WriteInterfaceDefs(Context.GetInterfacesTopologically);
|
WriteInterfaceDefs(Context.GetInterfacesTopologically);
|
||||||
Undent;
|
Undent;
|
||||||
|
Loading…
Reference in New Issue
Block a user