@@ -43,16 +43,18 @@
<ResourceBaseClassname Value="TFresnelForm"/>
</Unit>
<Unit>
- <Filename Value="../Slider/DemoSlider.pas"/>
+ <Filename Value="DemoButtonGenerator.pas"/>
<IsPartOfProject Value="True"/>
- <Filename Value="../CheckBox/DemoCheckBox.pas"/>
+ <Filename Value="../Slider/fresnel.demoslider.pas"/>
+ <UnitName Value="Fresnel.DemoSlider"/>
- <Filename Value="DemoButtonGenerator.pas"/>
+ <Filename Value="../CheckBox/fresnel.democheckbox.pas"/>
+ <UnitName Value="Fresnel.DemoCheckbox"/>
</Units>
</ProjectOptions>
@@ -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}
@@ -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;
+class function TDemoButtonGenerator.GetCSSTypeStyle: TCSSString;
+begin
+ Result:=cStyle;
+end;
+
procedure TDemoButtonGenerator.UpdateButton;
var
s, NewStyle, Radius: String;
@@ -31,8 +31,6 @@ procedure TFresnelForm1.FresnelForm1Create(Sender: TObject);
ButtonGenerator: TDemoButtonGenerator;
begin
- Stylesheet.Add(TDemoButtonGenerator.cStyle);
-
ButtonGenerator:=TDemoButtonGenerator.Create(Self);
with ButtonGenerator do begin
Name:='ButtonGenerator';
@@ -47,14 +47,6 @@
<ResourceBaseClass Value="Other"/>
- <Unit>
- <Filename Value="DemoSlider.pas"/>
- <IsPartOfProject Value="True"/>
- </Unit>
- <Filename Value="DemoCheckBox.pas"/>
<CompilerOptions>
- Fresnel.Forms, MainUnit, DemoCheckBox
+ Fresnel.Forms, MainUnit
@@ -5,7 +5,7 @@ unit MainUnit;
- Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, DemoCheckBox;
+ Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, Fresnel.DemoCheckBox;
@@ -30,8 +30,6 @@ procedure TFresnelCheckBoxForm.FresnelCheckBoxFormCreate(Sender: TObject);
CheckBox: TDemoCheckBox;
- Stylesheet.Text:=TDemoCheckBox.cStyle;
CheckBox:=TDemoCheckBox.Create(Self);
with CheckBox do begin
Name:='CheckBox';
@@ -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,
-unit DemoCheckBox;
+unit Fresnel.DemoCheckbox;
{$mode ObjFPC}{$H+}
Windows,
FPReadPNG, Fresnel.DOM, Fresnel.Controls, Fresnel.Classes,
- FCL.Events, Fresnel.Events;
+ FCL.Events, Fresnel.Events, fpCSSTree;
@@ -71,6 +71,7 @@ type
Box: TDemoCheckBoxButton;
CaptionLabel: TLabel;
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;
- aStream := TResourceStream.Create(HINSTANCE, 'Check', RT_RCDATA);
aStream:=TMemoryStream.Create;
- aStream.WriteBuffer(CheckBoxImage,SizeOf(CheckBoxImage));
+ aStream.WriteBuffer(CheckBoxImage[0],length(CheckBoxImage));
aStream.Position:=0;
try
Image.LoadFromStream(aStream);
finally
@@ -180,5 +173,10 @@ begin
+class function TDemoCheckBox.GetCSSTypeStyle: TCSSString;
end.
@@ -42,10 +42,6 @@
- <Filename Value="DemoCombobox.pas"/>
@@ -4,7 +4,7 @@ uses
UTF8Utils,
dl,
Fresnel, // initializes the widgetset
- Fresnel.App, MainUnit, DemoCombobox;
+ Fresnel.App, MainUnit;
writeln();
@@ -6,7 +6,7 @@ interface
Classes, SysUtils, Fresnel.Forms, Fresnel.Controls, Fresnel.Events,
- FCL.Events, DemoCombobox;
+ FCL.Events, Fresnel.DemoCombobox;
@@ -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'
-unit DemoCombobox;
+unit Fresnel.DemoCombobox;
@@ -89,7 +89,7 @@ type
-{$I DemoCombobox.inc}
+{$I fresnel.democombobox.inc}
{ TDemoCombobox }
@@ -178,7 +178,7 @@ var
inherited Create(AOwner);
FItemIndex:=-1;
- FItems:=TStringList.Create(false);
+ FItems:=TStringList.Create;
FItems.FPOAttachObserver(Self);
CSSClasses.Add('Combobox');
@@ -16,6 +16,7 @@ type
private
public
Image1: TImage;
+ Image2: TImage;
@@ -38,7 +39,15 @@ begin
Parent:=Self;
+ 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');
@@ -47,10 +47,6 @@
@@ -10,8 +10,7 @@ uses
- Fresnel.Forms, MainUnit, DemoSlider
- { you can add units after this };
+ Fresnel.Forms, MainUnit;
- Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, DemoSlider;
+ Classes, SysUtils, Fresnel.Forms, Fresnel.DOM, Fresnel.Controls, Fresnel.DemoSlider;
@@ -30,8 +30,6 @@ procedure TFresnelSliderForm.FresnelSliderFormCreate(Sender: TObject);
Slider: TDemoSlider;
- Stylesheet.Text:=TDemoSlider.cStyle;
Slider:=TDemoSlider.Create(Self);
with Slider do begin
Name:='Slider';
-unit DemoSlider;
+unit Fresnel.DemoSlider;
Classes, SysUtils, math, System.UITypes, Fresnel.DOM, Fresnel.Controls,
- Fresnel.Classes, FCL.Events, Fresnel.Events;
+ Fresnel.Classes, FCL.Events, Fresnel.Events, fpCSSTree;
@@ -84,6 +84,7 @@ type
SliderRange: TDiv; // inside SliderDiv
SliderPoint: TDiv; // inside SliderDiv
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
+class function TDemoSlider.GetCSSTypeStyle: TCSSString;
@@ -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}
+ RegisterComponents('Fresnel',[TDemoCheckBox,TDemoSlider,TDemoCombobox]);
+end.
@@ -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>
+ <Filename Value="../Combobox/fresnel.democombobox.pas"/>
+ <UnitName Value="fresnel.democombobox"/>
+ <Filename Value="../CheckBox/fresnel.democheckbox.inc"/>
+ <UnitName Value="fresnel.democheckbox"/>
+ <UnitName Value="fresnel.demoslider"/>
+ <Filename Value="DemoCompsReg.pas"/>
+ <HasRegisterProc Value="True"/>
+ <UnitName Value="DemoCompsReg"/>
+ </Files>
+ <RequiredPkgs>
+ <PackageName Value="FresnelLCL"/>
+ <PackageName Value="FCL"/>
+ </RequiredPkgs>
+ <UsageOptions>
+ <UnitPath Value="$(PkgOutDir)"/>
+ </UsageOptions>
+ <PublishOptions>
+ <Version Value="2"/>
+ <UseFileFilters Value="True"/>
+ </PublishOptions>
+ </Package>
+</CONFIG>
+{ 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}
+ DemoCombobox, DemoCheckBox, DemoSlider, DemoCompsReg, LazarusPackageIntf;
+ RegisterUnit('DemoCompsReg', @DemoCompsReg.Register);
+initialization
+ RegisterPackage('FresnelDemoComps', @Register);
@@ -0,0 +1,3 @@
+Updating image resources:
+lazres ../DemoCompsReg.res demo*.png
@@ -57,11 +57,12 @@
- <Filename Value="../../CheckBox/DemoCheckBox.pas"/>
+ <Filename Value="../../Slider/fresnel.demoslider.pas"/>
- <Filename Value="../../Slider/DemoSlider.pas"/>
+ <Filename Value="../../CheckBox/fresnel.democheckbox.inc"/>
@@ -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>
Interfaces, // this includes the LCL widgetset
- Forms, UnitLCLForm1, FresForm1, DemoButtonGenerator, DemoCheckBox, DemoSlider,
+ Forms, UnitLCLForm1, FresForm1, DemoButtonGenerator, Fresnel.DemoSlider,
Fresnel
@@ -30,8 +30,6 @@ implementation
procedure TFresnelForm1.FresnelForm1Create(Sender: TObject);
@@ -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