Jelajahi Sumber

demo: shortened

mattias 1 tahun lalu
induk
melakukan
94cc493ea0
2 mengubah file dengan 46 tambahan dan 101 penghapusan
  1. 45 100
      demo/ButtonGenerator/MainUnit.pas
  2. 1 1
      src/skia/fresnel.skiarenderer.pas

+ 45 - 100
demo/ButtonGenerator/MainUnit.pas

@@ -5,8 +5,8 @@ unit MainUnit;
 interface
 
 uses
-  Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, DemoSlider,
-  DemoCheckBox;
+  Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls,
+  DemoSlider, DemoCheckBox;
 
 type
 
@@ -50,6 +50,33 @@ implementation
 { TFresnelForm1 }
 
 procedure TFresnelForm1.FresnelForm1Create(Sender: TObject);
+
+  function AddSlider(aName, aCaption: string; aParent: TFresnelElement = nil): TDemoSlider;
+  begin
+    if aParent=nil then aParent:=Self;
+    Result:=TDemoSlider.Create(Self);
+    with Result do begin
+      Name:=aName;
+      Caption:=aCaption;
+      ValueFormat:='%.0fpx';
+      Parent:=aParent;
+      OnChange:=@OnPropChange;
+    end;
+  end;
+
+  function AddCheckBox(aName, aCaption: string; aParent: TFresnelElement = nil): TDemoCheckBox;
+  begin
+    if aParent=nil then aParent:=Self;
+    Result:=TDemoCheckBox.Create(Self);
+    with Result do begin
+      Name:=aName;
+      Caption:=aCaption;
+      Checked:=true;
+      Parent:=aParent;
+      OnChange:=@OnPropChange;
+    end;
+  end;
+
 begin
   BackgroundColor1:='#79bbff';
   BackgroundColor2:='#378de5';
@@ -72,59 +99,35 @@ begin
     +'}'+LineEnding
     +'.Slider {'+LineEnding
     +'  margin: 6px;'+LineEnding
+    +'  width: 150px;'+LineEnding
     +'}'+LineEnding
     );
 
   // font-size slider
-  FontSizeSlider:=TDemoSlider.Create(Self);
+  FontSizeSlider:=AddSlider('FontSizeSlider','Font Size:');
   with FontSizeSlider do begin
-    Name:='FontSizeSlider';
-    Caption:='Font Size:';
-    Style:='width: 150px';
-    ValueFormat:='%.0fpx';
     MinPosition:=5;
     MaxPosition:=40;
     Position:=12;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
   end;
 
   // padding vertical slider
-  PaddingVerticalSlider:=TDemoSlider.Create(Self);
+  PaddingVerticalSlider:=AddSlider('PaddingVerticalSlider','Vertical Padding:');
   with PaddingVerticalSlider do begin
-    Name:='PaddingVerticalSlider';
-    Caption:='Vertical Padding:';
-    Style:='width: 150px';
-    ValueFormat:='%.0fpx';
     MinPosition:=0;
     MaxPosition:=50;
     Position:=16;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
   end;
 
   // gradient
-  GradientChkBox:=TDemoCheckBox.Create(Self);
-  with GradientChkBox do begin
-    Name:='GradientChkBox';
-    Caption:='Gradient';
-    Checked:=true;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
-  end;
+  GradientChkBox:=AddCheckBox('GradientChkBox','Gradient');
 
   // border-width slider
-  BorderWidthSlider:=TDemoSlider.Create(Self);
+  BorderWidthSlider:=AddSlider('BorderWidthSlider','Border Width:');
   with BorderWidthSlider do begin
-    Name:='BorderWidthSlider';
-    Caption:='Border Width:';
-    Style:='width: 150px';
-    ValueFormat:='%.0fpx';
     MinPosition:=0;
     MaxPosition:=10;
     Position:=1;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
   end;
 
   // border-radius corners: four checkboxes
@@ -142,106 +145,48 @@ begin
     Parent:=BorderRadiusDiv;
   end;
 
-  BorderRadiusTopLeftChkBox:=TDemoCheckBox.Create(Self);
-  with BorderRadiusTopLeftChkBox do begin
-    Name:='BorderRadiusTopLeftChkBox';
-    Caption:='Top Left';
-    Checked:=true;
-    Parent:=BorderRadiusDiv;
-    OnChange:=@OnPropChange;
-  end;
+  BorderRadiusTopLeftChkBox:=AddCheckBox('BorderRadiusTopLeftChkBox','Top Left',BorderRadiusDiv);
 
-  BorderRadiusTopRightChkBox:=TDemoCheckBox.Create(Self);
-  with BorderRadiusTopRightChkBox do begin
-    Name:='BorderRadiusTopRightChkBox';
-    Caption:='Top Right';
-    Checked:=true;
-    Parent:=BorderRadiusDiv;
-    OnChange:=@OnPropChange;
-  end;
+  BorderRadiusTopRightChkBox:=AddCheckBox('BorderRadiusTopRightChkBox','Top Right',BorderRadiusDiv);
 
-  BorderRadiusBottomLeftChkBox:=TDemoCheckBox.Create(Self);
-  with BorderRadiusBottomLeftChkBox do begin
-    Name:='BorderRadiusBottomLeftChkBox';
-    Caption:='Bottom Left';
-    Checked:=true;
-    Parent:=BorderRadiusDiv;
-    OnChange:=@OnPropChange;
-  end;
+  BorderRadiusBottomLeftChkBox:=AddCheckBox('BorderRadiusBottomLeftChkBox','Bottom Left',BorderRadiusDiv);
 
-  BorderRadiusBottomRightChkBox:=TDemoCheckBox.Create(Self);
-  with BorderRadiusBottomRightChkBox do begin
-    Name:='BorderRadiusBottomRightChkBox';
-    Caption:='Bottom Right';
-    Checked:=true;
-    Parent:=BorderRadiusDiv;
-    OnChange:=@OnPropChange;
-  end;
+  BorderRadiusBottomRightChkBox:=AddCheckBox('BorderRadiusBottomRightChkBox','Bottom Right',BorderRadiusDiv);
 
   // slider for border radius
-  BorderRadiusSlider:=TDemoSlider.Create(Self);
+  BorderRadiusSlider:=AddSlider('BorderRadiusSlider','Border Radius:');
   with BorderRadiusSlider do begin
-    Name:='BorderRadiusSlider';
-    Caption:='Border Radius:';
-    Style:='width: 150px';
-    ValueFormat:='%.0fpx';
     MinPosition:=0;
     MaxPosition:=50;
     Position:=16;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
   end;
 
   // text-shadow checkbox
-  TextShadowChkBox:=TDemoCheckBox.Create(Self);
-  with TextShadowChkBox do begin
-    Name:='TextShadowChkBox';
-    Caption:='Text Shadow';
-    Checked:=true;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
-  end;
+  TextShadowChkBox:=AddCheckBox('TextShadowChkBox','Text Shadow');
 
   // slider for text-shadow vertical position
-  TextShadowVertPosSlider:=TDemoSlider.Create(Self);
+  TextShadowVertPosSlider:=AddSlider('TextShadowVertPosSlider','Vertical Position:');
   with TextShadowVertPosSlider do begin
-    Name:='TextShadowVertPosSlider';
-    Caption:='Vertical Position:';
-    Style:='width: 150px';
-    ValueFormat:='%.0fpx';
     MinPosition:=-30;
     MaxPosition:=30;
     Position:=1;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
   end;
 
   // slider for text-shadow horizontal position
-  TextShadowHorzPosSlider:=TDemoSlider.Create(Self);
+  TextShadowHorzPosSlider:=AddSlider('TextShadowHorzPosSlider','Horizontal Position:');
   with TextShadowHorzPosSlider do begin
-    Name:='TextShadowHorzPosSlider';
-    Caption:='Horizontal Position:';
-    Style:='width: 150px';
-    ValueFormat:='%.0fpx';
     MinPosition:=-30;
     MaxPosition:=30;
     Position:=1;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
   end;
 
   // slider for text-shadow horizontal position
-  TextShadowBlurRadiusSlider:=TDemoSlider.Create(Self);
+  TextShadowBlurRadiusSlider:=AddSlider('TextShadowBlurRadiusSlider','Blur Radius:');
   with TextShadowBlurRadiusSlider do begin
-    Name:='TextShadowBlurRadiusSlider';
-    Caption:='Blur Radius:';
-    Style:='width: 150px';
-    ValueFormat:='%.0fpx';
+    ValueFormat:='%.1fpx';
     MinPosition:=0;
-    MaxPosition:=30;
+    MaxPosition:=5;
     Position:=0;
-    Parent:=Self;
-    OnChange:=@OnPropChange;
   end;
 
   // the Button

+ 1 - 1
src/skia/fresnel.skiarenderer.pas

@@ -774,7 +774,7 @@ var
   X, Y: TFresnelLength;
 begin
   if not TFresnelSkiaFontEngine.GetFont(aFont,FreSkiaFont) then exit;
-  writeln('TFresnelSkiaRenderer.TextShadow Origin=',Origin.ToString,' Left=',FloatToStr(aLeft),' Top=',FloatToStr(aTop),' FontSize=',FloatToStr(FreSkiaFont.SKFont.Size),' Color=',dbgs(aColor),' Radius=',FloatToStr(aRadius),' "',aText,'" FontTop=',FloatToStr(FreSkiaFont.SKMetrics.Top),' Ascent=',FloatToStr(FreSkiaFont.SKMetrics.Ascent),' Descent=',FloatToStr(FreSkiaFont.SKMetrics.Descent),' FontBottom=',FloatToStr(FreSkiaFont.SKMetrics.Bottom),' CapHeight=',FloatToStr(FreSkiaFont.SKMetrics.CapHeight));
+  //writeln('TFresnelSkiaRenderer.TextShadow Origin=',Origin.ToString,' Left=',FloatToStr(aLeft),' Top=',FloatToStr(aTop),' FontSize=',FloatToStr(FreSkiaFont.SKFont.Size),' Color=',dbgs(aColor),' Radius=',FloatToStr(aRadius),' "',aText,'" FontTop=',FloatToStr(FreSkiaFont.SKMetrics.Top),' Ascent=',FloatToStr(FreSkiaFont.SKMetrics.Ascent),' Descent=',FloatToStr(FreSkiaFont.SKMetrics.Descent),' FontBottom=',FloatToStr(FreSkiaFont.SKMetrics.Bottom),' CapHeight=',FloatToStr(FreSkiaFont.SKMetrics.CapHeight));
   SkPaint:=TSkPaint.Create;
   SkPaint.setColor(FPColorToSkia(aColor));
   aTextBlob:=TSkTextBlob.MakeFromText(UnicodeString(aText),FreSkiaFont.SKFont);