Browse Source

started demo package

mattias 9 tháng trước cách đây
mục cha
commit
47b677bf29
32 tập tin đã thay đổi với 167 bổ sung63 xóa
  1. 5 3
      demo/ButtonGenerator/ButtonGenerator.lpi
  2. 1 1
      demo/ButtonGenerator/ButtonGenerator.lpr
  3. 10 5
      demo/ButtonGenerator/DemoButtonGenerator.pas
  4. 0 2
      demo/ButtonGenerator/MainUnit.pas
  5. 0 8
      demo/CheckBox/CustomCheckBox.lpi
  6. 1 1
      demo/CheckBox/CustomCheckBox.lpr
  7. BIN
      demo/CheckBox/DemoCheckBox.res
  8. 1 3
      demo/CheckBox/MainUnit.pas
  9. 1 1
      demo/CheckBox/fresnel.democheckbox.inc
  10. 10 12
      demo/CheckBox/fresnel.democheckbox.pas
  11. 0 4
      demo/Combobox/ComboboxNative.lpi
  12. 1 1
      demo/Combobox/ComboboxNative.lpr
  13. 1 1
      demo/Combobox/MainUnit.pas
  14. 1 0
      demo/Combobox/fresnel.democombobox.inc
  15. 3 3
      demo/Combobox/fresnel.democombobox.pas
  16. 9 0
      demo/Image/MainUnit.pas
  17. 0 4
      demo/Slider/CustomSlider.lpi
  18. 1 2
      demo/Slider/CustomSlider.lpr
  19. 1 3
      demo/Slider/MainUnit.pas
  20. 8 2
      demo/Slider/fresnel.demoslider.pas
  21. 22 0
      demo/democomps/DemoCompsReg.pas
  22. BIN
      demo/democomps/DemoCompsReg.res
  23. 61 0
      demo/democomps/fresneldemocomps.lpk
  24. 22 0
      demo/democomps/fresneldemocomps.pas
  25. 3 0
      demo/democomps/images/README.txt
  26. BIN
      demo/democomps/images/democheckbox.tdemocheckbox.png
  27. BIN
      demo/democomps/images/democombobox.tdemocombobox.png
  28. BIN
      demo/democomps/images/demoslider.tdemoslider.png
  29. 4 3
      demo/lcl/ButtonGenerator/ButtonGeneratorLCLDemo.lpi
  30. 1 1
      demo/lcl/ButtonGenerator/ButtonGeneratorLCLDemo.lpr
  31. 0 2
      demo/lcl/ButtonGenerator/FresForm1.pas
  32. 0 1
      src/base/fresnel.dom.pas

+ 5 - 3
demo/ButtonGenerator/ButtonGenerator.lpi

@@ -43,16 +43,18 @@
         <ResourceBaseClassname Value="TFresnelForm"/>
       </Unit>
       <Unit>
-        <Filename Value="../Slider/DemoSlider.pas"/>
+        <Filename Value="DemoButtonGenerator.pas"/>
         <IsPartOfProject Value="True"/>
       </Unit>
       <Unit>
-        <Filename Value="../CheckBox/DemoCheckBox.pas"/>
+        <Filename Value="../Slider/fresnel.demoslider.pas"/>
         <IsPartOfProject Value="True"/>
+        <UnitName Value="Fresnel.DemoSlider"/>
       </Unit>
       <Unit>
-        <Filename Value="DemoButtonGenerator.pas"/>
+        <Filename Value="../CheckBox/fresnel.democheckbox.pas"/>
         <IsPartOfProject Value="True"/>
+        <UnitName Value="Fresnel.DemoCheckbox"/>
       </Unit>
     </Units>
   </ProjectOptions>

+ 1 - 1
demo/ButtonGenerator/ButtonGenerator.lpr

@@ -10,7 +10,7 @@ uses
   athreads,
   {$ENDIF}
   Fresnel, // this includes the Fresnel widgetset
-  Fresnel.Forms, MainUnit, DemoSlider, DemoCheckBox, DemoButtonGenerator
+  Fresnel.Forms, MainUnit, DemoButtonGenerator
   { you can add units after this };
 
 {$R *.res}

+ 10 - 5
demo/ButtonGenerator/DemoButtonGenerator.pas

@@ -5,8 +5,8 @@ unit DemoButtonGenerator;
 interface
 
 uses
-  Classes, SysUtils, Fresnel.DOM, Fresnel.Controls, Fresnel.Classes, DemoSlider,
-  DemoCheckBox;
+  Classes, SysUtils, Fresnel.DOM, Fresnel.Controls, Fresnel.Classes, fpCSSTree, Fresnel.DemoSlider,
+  Fresnel.DemoCheckBox;
 
 type
 
@@ -20,9 +20,8 @@ type
       BackgroundColor1 ='#79bbff';
       BackgroundColor2 ='#378de5';
       BorderColor ='#337bc4';
-      cStyle = TDemoSlider.cStyle
-        +TDemoCheckBox.cStyle
-        +'#ButtonDiv {'+LineEnding
+      cStyle =
+        '#ButtonDiv {'+LineEnding
         +'background:'+BackgroundColor1+';'+LineEnding
         +'border:1px solid '+BorderColor+';'+LineEnding
         +'padding:16px 31px;'+LineEnding
@@ -55,6 +54,7 @@ type
     TextShadowHorzPosSlider: TDemoSlider;
     TextShadowBlurRadiusSlider: TDemoSlider;
     constructor Create(AOwner: TComponent); override;
+    class function GetCSSTypeStyle: TCSSString; override;
     procedure UpdateButton;
   end;
 
@@ -200,6 +200,11 @@ begin
   UpdateButton;
 end;
 
+class function TDemoButtonGenerator.GetCSSTypeStyle: TCSSString;
+begin
+  Result:=cStyle;
+end;
+
 procedure TDemoButtonGenerator.UpdateButton;
 var
   s, NewStyle, Radius: String;

+ 0 - 2
demo/ButtonGenerator/MainUnit.pas

@@ -31,8 +31,6 @@ procedure TFresnelForm1.FresnelForm1Create(Sender: TObject);
 var
   ButtonGenerator: TDemoButtonGenerator;
 begin
-  Stylesheet.Add(TDemoButtonGenerator.cStyle);
-
   ButtonGenerator:=TDemoButtonGenerator.Create(Self);
   with ButtonGenerator do begin
     Name:='ButtonGenerator';

+ 0 - 8
demo/CheckBox/CustomCheckBox.lpi

@@ -47,14 +47,6 @@
         <ResourceBaseClass Value="Other"/>
         <ResourceBaseClassname Value="TFresnelForm"/>
       </Unit>
-      <Unit>
-        <Filename Value="DemoSlider.pas"/>
-        <IsPartOfProject Value="True"/>
-      </Unit>
-      <Unit>
-        <Filename Value="DemoCheckBox.pas"/>
-        <IsPartOfProject Value="True"/>
-      </Unit>
     </Units>
   </ProjectOptions>
   <CompilerOptions>

+ 1 - 1
demo/CheckBox/CustomCheckBox.lpr

@@ -10,7 +10,7 @@ uses
   athreads,
   {$ENDIF}
   Fresnel, // this includes the Fresnel widgetset
-  Fresnel.Forms, MainUnit, DemoCheckBox
+  Fresnel.Forms, MainUnit
   { you can add units after this };
 
 {$R *.res}

BIN
demo/CheckBox/DemoCheckBox.res


+ 1 - 3
demo/CheckBox/MainUnit.pas

@@ -5,7 +5,7 @@ unit MainUnit;
 interface
 
 uses
-  Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, DemoCheckBox;
+  Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, Fresnel.DemoCheckBox;
 
 type
 
@@ -30,8 +30,6 @@ procedure TFresnelCheckBoxForm.FresnelCheckBoxFormCreate(Sender: TObject);
 var
   CheckBox: TDemoCheckBox;
 begin
-  Stylesheet.Text:=TDemoCheckBox.cStyle;
-
   CheckBox:=TDemoCheckBox.Create(Self);
   with CheckBox do begin
     Name:='CheckBox';

+ 1 - 1
demo/CheckBox/checkboximage.inc → demo/CheckBox/fresnel.democheckbox.inc

@@ -1,4 +1,4 @@
-
+{%MainUnit fresnel.democheckbox.pas}
 Const
   CheckboxImage : Array[0..8320] of byte = (
      $89,$50,$4E,$47,$0D,$0A,$1A,$0A,$00,$00,$00,$0D,$49,$48,$44,$52,$00,

+ 10 - 12
demo/CheckBox/DemoCheckBox.pas → demo/CheckBox/fresnel.democheckbox.pas

@@ -1,4 +1,4 @@
-unit DemoCheckBox;
+unit Fresnel.DemoCheckbox;
 
 {$mode ObjFPC}{$H+}
 
@@ -10,7 +10,7 @@ uses
   Windows,
   {$ENDIF}
   FPReadPNG, Fresnel.DOM, Fresnel.Controls, Fresnel.Classes,
-  FCL.Events, Fresnel.Events;
+  FCL.Events, Fresnel.Events, fpCSSTree;
 
 type
 
@@ -71,6 +71,7 @@ type
     Box: TDemoCheckBoxButton;
     CaptionLabel: TLabel;
     constructor Create(AOwner: TComponent); override;
+    class function GetCSSTypeStyle: TCSSString; override;
     property Caption: TFresnelCaption read GetCaption write SetCaption;
     property Checked: boolean read GetChecked write SetChecked;
     property OnChange: TNotifyEvent read FOnChange write FOnChange;
@@ -78,11 +79,7 @@ type
 
 implementation
 
-{$IFNDEF CPUWASM32}
-{$R *.res}
-{$ELSE}
-{$I checkboximage.inc}
-{$ENDIF}
+{$I fresnel.democheckbox.inc}
 
 { TDemoCheckBoxButton }
 
@@ -114,13 +111,9 @@ begin
   UncheckedStyle:=cUncheckedStyle;
 
   Style:=UncheckedStyle;
-{$IFNDEF CPUWASM32}
-  aStream := TResourceStream.Create(HINSTANCE, 'Check', RT_RCDATA);
-{$ELSE}
   aStream:=TMemoryStream.Create;
-  aStream.WriteBuffer(CheckBoxImage,SizeOf(CheckBoxImage));
+  aStream.WriteBuffer(CheckBoxImage[0],length(CheckBoxImage));
   aStream.Position:=0;
-{$ENDIF}
   try
     Image.LoadFromStream(aStream);
   finally
@@ -180,5 +173,10 @@ begin
   end;
 end;
 
+class function TDemoCheckBox.GetCSSTypeStyle: TCSSString;
+begin
+  Result:=cStyle;
+end;
+
 end.
 

+ 0 - 4
demo/Combobox/ComboboxNative.lpi

@@ -42,10 +42,6 @@
         <ResourceBaseClass Value="Other"/>
         <ResourceBaseClassname Value="TFresnelForm"/>
       </Unit>
-      <Unit>
-        <Filename Value="DemoCombobox.pas"/>
-        <IsPartOfProject Value="True"/>
-      </Unit>
     </Units>
   </ProjectOptions>
   <CompilerOptions>

+ 1 - 1
demo/Combobox/ComboboxNative.lpr

@@ -4,7 +4,7 @@ uses
   UTF8Utils,
   dl,
   Fresnel, // initializes the widgetset
-  Fresnel.App, MainUnit, DemoCombobox;
+  Fresnel.App, MainUnit;
 
 begin
   writeln();

+ 1 - 1
demo/Combobox/MainUnit.pas

@@ -6,7 +6,7 @@ interface
 
 uses
   Classes, SysUtils, Fresnel.Forms, Fresnel.Controls, Fresnel.Events,
-  FCL.Events, DemoCombobox;
+  FCL.Events, Fresnel.DemoCombobox;
 
 type
 

+ 1 - 0
demo/Combobox/DemoCombobox.inc → demo/Combobox/fresnel.democombobox.inc

@@ -1,3 +1,4 @@
+{%MainUnit fresnel.democombobox.pas}
 const ArrowDownImage =
   #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0'@'#0#0#0'@'#8#6#0#0#0#170'iq'#222#0
   +#0#1#132'iCCPICC profile'#0#0'('#145'}'#145'=H'#195'P'#20#133'OSE)'#149#14'v'

+ 3 - 3
demo/Combobox/DemoCombobox.pas → demo/Combobox/fresnel.democombobox.pas

@@ -1,4 +1,4 @@
-unit DemoCombobox;
+unit Fresnel.DemoCombobox;
 
 {$mode ObjFPC}{$H+}
 
@@ -89,7 +89,7 @@ type
 
 implementation
 
-{$I DemoCombobox.inc}
+{$I fresnel.democombobox.inc}
 
 { TDemoCombobox }
 
@@ -178,7 +178,7 @@ var
 begin
   inherited Create(AOwner);
   FItemIndex:=-1;
-  FItems:=TStringList.Create(false);
+  FItems:=TStringList.Create;
   FItems.FPOAttachObserver(Self);
 
   CSSClasses.Add('Combobox');

+ 9 - 0
demo/Image/MainUnit.pas

@@ -16,6 +16,7 @@ type
   private
   public
     Image1: TImage;
+    Image2: TImage;
   end;
 
 var
@@ -38,7 +39,15 @@ begin
     Parent:=Self;
   end;
 
+  Image2:=TImage.Create(Self);
+  with Image2 do begin
+    Name:='Image2';
+    Style:='border: 1px solid black;';
+    Parent:=Self;
+  end;
+
   Image1.Image.LoadFromFile('powered_by.png');
+  Image2.Image.LoadFromFile('powered_by.png');
 end;
 
 end.

+ 0 - 4
demo/Slider/CustomSlider.lpi

@@ -47,10 +47,6 @@
         <ResourceBaseClass Value="Other"/>
         <ResourceBaseClassname Value="TFresnelForm"/>
       </Unit>
-      <Unit>
-        <Filename Value="DemoSlider.pas"/>
-        <IsPartOfProject Value="True"/>
-      </Unit>
     </Units>
   </ProjectOptions>
   <CompilerOptions>

+ 1 - 2
demo/Slider/CustomSlider.lpr

@@ -10,8 +10,7 @@ uses
   athreads,
   {$ENDIF}
   Fresnel, // this includes the Fresnel widgetset
-  Fresnel.Forms, MainUnit, DemoSlider
-  { you can add units after this };
+  Fresnel.Forms, MainUnit;
 
 {$R *.res}
 

+ 1 - 3
demo/Slider/MainUnit.pas

@@ -5,7 +5,7 @@ unit MainUnit;
 interface
 
 uses
-  Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, DemoSlider;
+  Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, Fresnel.DemoSlider;
 
 type
 
@@ -30,8 +30,6 @@ procedure TFresnelSliderForm.FresnelSliderFormCreate(Sender: TObject);
 var
   Slider: TDemoSlider;
 begin
-  Stylesheet.Text:=TDemoSlider.cStyle;
-
   Slider:=TDemoSlider.Create(Self);
   with Slider do begin
     Name:='Slider';

+ 8 - 2
demo/Slider/DemoSlider.pas → demo/Slider/fresnel.demoslider.pas

@@ -1,4 +1,4 @@
-unit DemoSlider;
+unit Fresnel.DemoSlider;
 
 {$mode ObjFPC}{$H+}
 
@@ -6,7 +6,7 @@ interface
 
 uses
   Classes, SysUtils, math, System.UITypes, Fresnel.DOM, Fresnel.Controls,
-  Fresnel.Classes, FCL.Events, Fresnel.Events;
+  Fresnel.Classes, FCL.Events, Fresnel.Events, fpCSSTree;
 
 type
 
@@ -84,6 +84,7 @@ type
     SliderRange: TDiv; // inside SliderDiv
     SliderPoint: TDiv; // inside SliderDiv
     constructor Create(AOwner: TComponent); override;
+    class function GetCSSTypeStyle: TCSSString; override;
     property MinPosition: TFresnelLength read FMinPosition write SetMinPosition;
     property MaxPosition: TFresnelLength read FMaxPosition write SetMaxPosition;
     property SliderPosition: TFresnelLength read FSliderPosition write SetSliderPosition;
@@ -251,5 +252,10 @@ begin
   end;
 end;
 
+class function TDemoSlider.GetCSSTypeStyle: TCSSString;
+begin
+  Result:=cStyle;
+end;
+
 end.
 

+ 22 - 0
demo/democomps/DemoCompsReg.pas

@@ -0,0 +1,22 @@
+unit DemoCompsReg;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+  Classes, SysUtils, fresnel.democheckbox, fresnel.demoslider, fresnel.democombobox;
+
+procedure Register;
+
+implementation
+
+{ $R DemoCompsReg.res}
+
+procedure Register;
+begin
+  RegisterComponents('Fresnel',[TDemoCheckBox,TDemoSlider,TDemoCombobox]);
+end;
+
+end.
+

BIN
demo/democomps/DemoCompsReg.res


+ 61 - 0
demo/democomps/fresneldemocomps.lpk

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+  <Package Version="5">
+    <Name Value="FresnelDemoComps"/>
+    <Type Value="RunAndDesignTime"/>
+    <Author Value="Mattias Gaertner"/>
+    <CompilerOptions>
+      <Version Value="11"/>
+      <SearchPaths>
+        <IncludeFiles Value="../Combobox;../CheckBox"/>
+        <OtherUnitFiles Value="../Combobox;../CheckBox;../Slider"/>
+        <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
+      </SearchPaths>
+    </CompilerOptions>
+    <Description Value="Some demo components for Fresnel."/>
+    <License Value="Modified LGPL2"/>
+    <Version Major="1"/>
+    <Files>
+      <Item>
+        <Filename Value="../Combobox/fresnel.democombobox.inc"/>
+        <Type Value="Include"/>
+      </Item>
+      <Item>
+        <Filename Value="../Combobox/fresnel.democombobox.pas"/>
+        <UnitName Value="fresnel.democombobox"/>
+      </Item>
+      <Item>
+        <Filename Value="../CheckBox/fresnel.democheckbox.inc"/>
+        <Type Value="Include"/>
+      </Item>
+      <Item>
+        <Filename Value="../CheckBox/fresnel.democheckbox.pas"/>
+        <UnitName Value="fresnel.democheckbox"/>
+      </Item>
+      <Item>
+        <Filename Value="../Slider/fresnel.demoslider.pas"/>
+        <UnitName Value="fresnel.demoslider"/>
+      </Item>
+      <Item>
+        <Filename Value="DemoCompsReg.pas"/>
+        <HasRegisterProc Value="True"/>
+        <UnitName Value="DemoCompsReg"/>
+      </Item>
+    </Files>
+    <RequiredPkgs>
+      <Item>
+        <PackageName Value="FresnelLCL"/>
+      </Item>
+      <Item>
+        <PackageName Value="FCL"/>
+      </Item>
+    </RequiredPkgs>
+    <UsageOptions>
+      <UnitPath Value="$(PkgOutDir)"/>
+    </UsageOptions>
+    <PublishOptions>
+      <Version Value="2"/>
+      <UseFileFilters Value="True"/>
+    </PublishOptions>
+  </Package>
+</CONFIG>

+ 22 - 0
demo/democomps/fresneldemocomps.pas

@@ -0,0 +1,22 @@
+{ This file was automatically created by Lazarus. Do not edit!
+  This source is only used to compile and install the package.
+ }
+
+unit FresnelDemoComps;
+
+{$warn 5023 off : no warning about unused units}
+interface
+
+uses
+  DemoCombobox, DemoCheckBox, DemoSlider, DemoCompsReg, LazarusPackageIntf;
+
+implementation
+
+procedure Register;
+begin
+  RegisterUnit('DemoCompsReg', @DemoCompsReg.Register);
+end;
+
+initialization
+  RegisterPackage('FresnelDemoComps', @Register);
+end.

+ 3 - 0
demo/democomps/images/README.txt

@@ -0,0 +1,3 @@
+Updating image resources:
+
+lazres ../DemoCompsReg.res demo*.png

BIN
demo/democomps/images/democheckbox.tdemocheckbox.png


BIN
demo/democomps/images/democombobox.tdemocombobox.png


BIN
demo/democomps/images/demoslider.tdemoslider.png


+ 4 - 3
demo/lcl/ButtonGenerator/ButtonGeneratorLCLDemo.lpi

@@ -57,11 +57,12 @@
         <IsPartOfProject Value="True"/>
       </Unit>
       <Unit>
-        <Filename Value="../../CheckBox/DemoCheckBox.pas"/>
+        <Filename Value="../../Slider/fresnel.demoslider.pas"/>
         <IsPartOfProject Value="True"/>
+        <UnitName Value="Fresnel.DemoSlider"/>
       </Unit>
       <Unit>
-        <Filename Value="../../Slider/DemoSlider.pas"/>
+        <Filename Value="../../CheckBox/fresnel.democheckbox.inc"/>
         <IsPartOfProject Value="True"/>
       </Unit>
     </Units>
@@ -72,7 +73,7 @@
       <Filename Value="ButtonGeneratorLCLDemo"/>
     </Target>
     <SearchPaths>
-      <IncludeFiles Value="$(ProjOutDir)"/>
+      <IncludeFiles Value="$(ProjOutDir);../../CheckBox"/>
       <OtherUnitFiles Value="../../ButtonGenerator;../../CheckBox;../../Slider"/>
       <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
     </SearchPaths>

+ 1 - 1
demo/lcl/ButtonGenerator/ButtonGeneratorLCLDemo.lpr

@@ -10,7 +10,7 @@ uses
   athreads,
   {$ENDIF}
   Interfaces, // this includes the LCL widgetset
-  Forms, UnitLCLForm1, FresForm1, DemoButtonGenerator, DemoCheckBox, DemoSlider,
+  Forms, UnitLCLForm1, FresForm1, DemoButtonGenerator, Fresnel.DemoSlider,
   Fresnel
   { you can add units after this };
 

+ 0 - 2
demo/lcl/ButtonGenerator/FresForm1.pas

@@ -30,8 +30,6 @@ implementation
 
 procedure TFresnelForm1.FresnelForm1Create(Sender: TObject);
 begin
-  Stylesheet.Add(TDemoButtonGenerator.cStyle);
-
   ButtonGenerator:=TDemoButtonGenerator.Create(Self);
   with ButtonGenerator do begin
     Name:='ButtonGenerator';

+ 0 - 1
src/base/fresnel.dom.pas

@@ -766,7 +766,6 @@ type
     FresnelPseudoClassIDBase: TCSSNumericalID;
     FresnelPseudoClasses: array[TFresnelCSSPseudoClass] of TFresnelCSSPseudoClassDesc;
 
-
     // check parameters
     // The keyword lists are used by shorthands too, so they must not include
     // base keywords like initial, inherit, unset, revert, revert-layer