|
@@ -397,6 +397,7 @@ type
|
|
procedure SplitFont(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual; // todo systemfont
|
|
procedure SplitFont(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual; // todo systemfont
|
|
procedure SplitMargin(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitMargin(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitMarginBlock(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitMarginBlock(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
|
|
+ procedure SplitMarginInline(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitPadding(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitPadding(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitBackgroundPosition(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitBackgroundPosition(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitBackground(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
procedure SplitBackground(Resolver: TCSSBaseResolver; var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray); virtual;
|
|
@@ -813,8 +814,7 @@ type
|
|
property Parent: TFresnelElement read FParent write SetParent;
|
|
property Parent: TFresnelElement read FParent write SetParent;
|
|
property NodeCount: integer read GetNodeCount;
|
|
property NodeCount: integer read GetNodeCount;
|
|
property Nodes[Index: integer]: TFresnelElement read GetNodes; default;
|
|
property Nodes[Index: integer]: TFresnelElement read GetNodes; default;
|
|
- property Resolver: TCSSResolver read FResolver;
|
|
|
|
- // CSS
|
|
|
|
|
|
+ // CSS and implementation of ICSSNode
|
|
class function CSSTypeID: TCSSNumericalID; virtual; abstract;
|
|
class function CSSTypeID: TCSSNumericalID; virtual; abstract;
|
|
class function CSSTypeName: TCSSString; virtual; abstract;
|
|
class function CSSTypeName: TCSSString; virtual; abstract;
|
|
class function GetCSSTypeStyle: TCSSString; virtual;
|
|
class function GetCSSTypeStyle: TCSSString; virtual;
|
|
@@ -897,6 +897,8 @@ type
|
|
property EventDispatcher : TFresnelEventDispatcher Read FEventDispatcher;
|
|
property EventDispatcher : TFresnelEventDispatcher Read FEventDispatcher;
|
|
// font
|
|
// font
|
|
property Font: IFresnelFont read GetFont write FFont;
|
|
property Font: IFresnelFont read GetFont write FFont;
|
|
|
|
+ //
|
|
|
|
+ property Resolver: TCSSResolver read FResolver;
|
|
property ViewportConnected: boolean read GetViewportConnected write SetViewportConnected; // true for example if using a Font of Viewport
|
|
property ViewportConnected: boolean read GetViewportConnected write SetViewportConnected; // true for example if using a Font of Viewport
|
|
property Viewport: TFresnelViewport read FViewPort;
|
|
property Viewport: TFresnelViewport read FViewPort;
|
|
published
|
|
published
|
|
@@ -2475,6 +2477,31 @@ begin
|
|
Values[1]:=Found[0];
|
|
Values[1]:=Found[0];
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TFresnelCSSRegistry.SplitMarginInline(Resolver: TCSSBaseResolver;
|
|
|
|
+ var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray);
|
|
|
|
+var
|
|
|
|
+ Found: TCSSStringArray;
|
|
|
|
+begin
|
|
|
|
+ Found:=[];
|
|
|
|
+ repeat
|
|
|
|
+ if Chk_Margin_Dim.Fits(Resolver.CurComp) or (Resolver.CurComp.Kind=rvkFunction) then
|
|
|
|
+ Insert(Resolver.GetCompString,Found,length(Found));
|
|
|
|
+ if length(Found)=2 then break;
|
|
|
|
+ until not Resolver.ReadNext;
|
|
|
|
+
|
|
|
|
+ if length(Found)=0 then exit;
|
|
|
|
+
|
|
|
|
+ SetLength(AttrIDs,2);
|
|
|
|
+ SetLength(Values,2);
|
|
|
|
+ AttrIDs[0]:=FresnelAttrs[fcaMarginInlineStart].Index;
|
|
|
|
+ AttrIDs[1]:=FresnelAttrs[fcaMarginInlineEnd].Index;
|
|
|
|
+ Values[0]:=Found[0];
|
|
|
|
+ if length(Found)=2 then
|
|
|
|
+ Values[1]:=Found[1]
|
|
|
|
+ else
|
|
|
|
+ Values[1]:=Found[0];
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TFresnelCSSRegistry.SplitPadding(Resolver: TCSSBaseResolver;
|
|
procedure TFresnelCSSRegistry.SplitPadding(Resolver: TCSSBaseResolver;
|
|
var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray);
|
|
var AttrIDs: TCSSNumericalIDArray; var Values: TCSSStringArray);
|
|
var
|
|
var
|
|
@@ -2908,6 +2935,12 @@ begin
|
|
AddFresnelShorthand(fcaMarginBlock,@CheckMargin,@SplitMarginBlock,
|
|
AddFresnelShorthand(fcaMarginBlock,@CheckMargin,@SplitMarginBlock,
|
|
[fcaMarginBlockStart,fcaMarginBlockEnd]);
|
|
[fcaMarginBlockStart,fcaMarginBlockEnd]);
|
|
|
|
|
|
|
|
+ // margin-inline
|
|
|
|
+ AddFresnelLonghand(fcaMarginInlineEnd,false,@CheckMargin,'0');
|
|
|
|
+ AddFresnelLonghand(fcaMarginInlineStart,false,@CheckMargin,'0');
|
|
|
|
+ AddFresnelShorthand(fcaMarginInline,@CheckMargin,@SplitMarginInline,
|
|
|
|
+ [fcaMarginInlineStart,fcaMarginInlineEnd]);
|
|
|
|
+
|
|
// opacity
|
|
// opacity
|
|
AddFresnelLonghand(fcaOpacity,false,@CheckOpacity,'1');
|
|
AddFresnelLonghand(fcaOpacity,false,@CheckOpacity,'1');
|
|
Chk_Opacity_Dim.AllowedUnits:=[cuNone,cuPercent];
|
|
Chk_Opacity_Dim.AllowedUnits:=[cuNone,cuPercent];
|
|
@@ -4326,6 +4359,7 @@ begin
|
|
writeln('TFresnelElement.WriteComputedAttributes ',Title,' ',GetPath,'================');
|
|
writeln('TFresnelElement.WriteComputedAttributes ',Title,' ',GetPath,'================');
|
|
for Attr in TFresnelCSSAttribute do
|
|
for Attr in TFresnelCSSAttribute do
|
|
begin
|
|
begin
|
|
|
|
+ writeln('TFresnelElement.WriteComputedAttributes ',Attr);
|
|
CurValue:=GetComputedString(Attr);
|
|
CurValue:=GetComputedString(Attr);
|
|
DefValue:=GetUnsetCSSString(Attr);
|
|
DefValue:=GetUnsetCSSString(Attr);
|
|
if CurValue<>DefValue then
|
|
if CurValue<>DefValue then
|