This commit is contained in:
Wouter Steenbergen 2021-05-07 14:36:35 -07:00
Родитель b4c6265d4a
Коммит 537ee7a8f8
16 изменённых файлов: 154 добавлений и 22 удалений

Просмотреть файл

@ -86,10 +86,6 @@
<Project>{7514a407-146a-44aa-93c9-d823502a93e1}</Project>
<Name>SkiaSharp.TextBlocks</Name>
</ProjectReference>
<ProjectReference Include="..\..\FluidSharp\FluidSharp.csproj">
<Project>{11afb8b9-3a37-4005-b897-ce2d363a574d}</Project>
<Name>FluidSharp</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

Просмотреть файл

@ -12,6 +12,10 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DefineConstants>TRACE;__WINDOWSFORMS__</DefineConstants>
</PropertyGroup>
<ItemGroup>
<None Remove="License.txt" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\FluidSharp.Views.Shared\FluidWidgetView.cs" Link="FluidWidgetView.cs" />
@ -20,11 +24,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SkiaSharp.Views.WindowsForms" Version="2.80.2" />
<Content Include="License.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\FluidSharp\FluidSharp.csproj" />
<PackageReference Include="SkiaSharp.Views.WindowsForms" Version="2.80.2" />
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>FluidSharp.Views.WindowsForms.Core</id>
<version>1.0.1-alpha</version>
<title>$title$</title>
<authors>Wouter Steenbergen</authors>
<owners>My Daily Bits LLC</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">License.txt</license>
<description>FluidSharp is a high performance mobile first multi-platform UI layout framework based on Skia.</description>
<releaseNotes>Initial release</releaseNotes>
<copyright>Copyright 2021 Wouter Steenbergen</copyright>
<dependencies>
<group targetFramework="netcoreapp3.1">
<dependency id="FluidSharp" version="1.0.1-alpha" />
</group>
</dependencies>
</metadata>
<files>
<!-- Cross-platform reference assemblies -->
<file src="License.txt"/>
<file src="bin\Release\netcoreapp3.1\FluidSharp.Views.WindowsForms.Core.dll" target="lib\netcoreapp3.1\FluidSharp.Views.WindowsForms.Core.dll" />
</files>
</package>

Просмотреть файл

@ -0,0 +1,10 @@
 Copyright 2021 - Wouter Steenbergen
Licensed for evaluation ("internal development") only.
Not licenced to be distributed as part of a commercially available product.
You may not use this file except in compliance with the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Просмотреть файл

@ -23,6 +23,16 @@ namespace FluidSharp.Views.WindowsForms
SKSize GetSize() => new SKSize(Width / PlatformScale.Width, Height / PlatformScale.Height);
private bool autoScale = true;
public bool AutoScale
{
get => autoScale; set
{
autoScale = value;
if (!autoScale) PlatformScale = new SizeF(1, 1);
}
}
#if !USEGL
public bool VSync;
#endif
@ -52,7 +62,8 @@ namespace FluidSharp.Views.WindowsForms
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
PlatformScale = new SizeF(factor.Width, factor.Width);
if (AutoScale)
PlatformScale = new SizeF(factor.Width, factor.Width);
base.ScaleControl(factor, specified);
}

Просмотреть файл

@ -66,10 +66,13 @@
<Project>{bb3a2d85-019d-42a1-9ddf-890d8da5a4ac}</Project>
<Name>SkiaSharp.TextBlocks</Name>
</ProjectReference>
<ProjectReference Include="..\..\FluidSharp\FluidSharp.csproj">
<Project>{11AFB8B9-3A37-4005-B897-CE2D363A574D}</Project>
<Name>FluidSharp</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="License.txt" />
<Content Include="nuget instructions.txt" />
</ItemGroup>
<ItemGroup>
<None Include="FluidSharp.Views.iOS.nuspec" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
</Project>

Просмотреть файл

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>FluidSharp.Views.iOS</id>
<version>1.0.1-alpha</version>
<title>$title$</title>
<authors>Wouter Steenbergen</authors>
<owners>My Daily Bits LLC</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">License.txt</license>
<description>FluidSharp is a high performance mobile first multi-platform UI layout framework based on Skia.</description>
<releaseNotes>Initial release</releaseNotes>
<copyright>Copyright 2021 Wouter Steenbergen</copyright>
<dependencies>
<group targetFramework="Xamarin.iOS10">
<!--Xamarin.iOS10 dependencies go here-->
<dependency id="FluidSharp" version="1.0.1-alpha" />
<dependency id="SkiaSharp" version="2.80.2" />
<dependency id="SkiaSharp.HarfBuzz" version="2.80.2" />
<dependency id="SkiaSharp.Views" version="2.80.2" />
</group>
</dependencies>
</metadata>
<files>
<!-- Cross-platform reference assemblies -->
<file src="License.txt"/>
<file src="bin\Release\FluidSharp.Views.iOS.dll" target="lib\Xamarin.iOS10\FluidSharp.Views.iOS.dll" />
</files>
</package>

Просмотреть файл

@ -0,0 +1,10 @@
 Copyright 2021 - Wouter Steenbergen
Licensed for evaluation ("internal development") only.
Not licenced to be distributed as part of a commercially available product.
You may not use this file except in compliance with the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Просмотреть файл

@ -0,0 +1 @@
C:\wouterst79\FluidSharp\source\FluidSharp.Views\FluidSharp.Views.iOS>c:\wouterst79\nuget.exe pack FluidSharp.Views.iOS.nuspec

Просмотреть файл

@ -19,6 +19,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Textblocks", "Ski
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.TextBlocks", "..\..\SkiaSharp.TextBlocks\source\SkiaSharp.TextBlocks\SkiaSharp.TextBlocks.csproj", "{7514A407-146A-44AA-93C9-D823502A93E1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FluidSharp.Views.WindowsForms.Core", "FluidSharp.Views\FluidSharp.Views.WindowsForms.Core\FluidSharp.Views.WindowsForms.Core.csproj", "{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -153,6 +155,26 @@ Global
{7514A407-146A-44AA-93C9-D823502A93E1}.Release|x64.Build.0 = Release|Any CPU
{7514A407-146A-44AA-93C9-D823502A93E1}.Release|x86.ActiveCfg = Release|Any CPU
{7514A407-146A-44AA-93C9-D823502A93E1}.Release|x86.Build.0 = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|ARM.ActiveCfg = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|ARM.Build.0 = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|ARM64.Build.0 = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|x64.ActiveCfg = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|x64.Build.0 = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|x86.ActiveCfg = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Debug|x86.Build.0 = Debug|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|Any CPU.Build.0 = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|ARM.ActiveCfg = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|ARM.Build.0 = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|ARM64.ActiveCfg = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|ARM64.Build.0 = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|x64.ActiveCfg = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|x64.Build.0 = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|x86.ActiveCfg = Release|Any CPU
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -163,6 +185,7 @@ Global
{5F3F1A20-821B-41E7-A808-93B31A016F8B} = {D8CE4686-9330-4C38-83C2-BB10F2F01814}
{07C0BD24-776E-493C-B7A9-AB85F36F21D6} = {D8CE4686-9330-4C38-83C2-BB10F2F01814}
{7514A407-146A-44AA-93C9-D823502A93E1} = {F97335FF-EE9A-4227-82D2-82CB8FFAD356}
{5BD84BF0-C4C8-4CC4-BF1E-F7751BB510A4} = {D8CE4686-9330-4C38-83C2-BB10F2F01814}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8D1D8DA7-CD11-414F-B03D-0A124AAFDCE8}

Просмотреть файл

@ -1,4 +1,4 @@
#if DEBUG
//#if DEBUG
using FluidSharp.Widgets;
using SkiaSharp;
using SkiaSharp.TextBlocks;
@ -81,4 +81,3 @@ namespace FluidSharp.Animations
}
}
#endif

Просмотреть файл

@ -7,9 +7,11 @@
<Company>My Daily Bits LLC</Company>
<Description>FluidSharp is a high performance mobile first multi-platform UI layout framework based on Skia.</Description>
<Copyright>2020 Wouter Steenbergen</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<Version>1.0.1-alpha</Version>
<PackageLicenseExpression></PackageLicenseExpression>
<Version>1.0.2-alpha</Version>
<Nullable>enable</Nullable>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageLicenseFile>License.txt</PackageLicenseFile>
</PropertyGroup>
<ItemGroup>
@ -22,4 +24,11 @@
<ProjectReference Include="..\..\..\SkiaSharp.TextBlocks\source\SkiaSharp.TextBlocks\SkiaSharp.TextBlocks.csproj" />
</ItemGroup>
<ItemGroup>
<None Include="License.txt">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
</Project>

10
FluidSharp/License.txt Normal file
Просмотреть файл

@ -0,0 +1,10 @@
 Copyright 2021 - Wouter Steenbergen
Licensed for evaluation ("internal development") only.
Not licenced to be distributed as part of a commercially available product.
You may not use this file except in compliance with the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Просмотреть файл

@ -26,14 +26,14 @@ namespace FluidSharp.Paint.Images
}
#if DEBUG
//#if DEBUG
public void Remove(Predicate<string> keypredicate)
{
foreach (var key in imagecache.Keys)
if (keypredicate(key))
imagecache.Remove(key, out _);
}
#endif
//#endif
static bool inhere;
public SKImage? GetImage(ImageSource? source)

Просмотреть файл

@ -10,7 +10,7 @@ namespace FluidSharp.Widgets.CrossPlatform
public class SelectableButton
{
public static Widget Make(PlatformStyle platformStyle, VisualState visualState, object context, Widget contents, bool ischecked, SKColor selectedcolor, Func<Task> onTapped)
public static Widget Make(PlatformStyle platformStyle, VisualState visualState, object context, Widget contents, bool ischecked, SKColor selectedcolor, Func<Task> onTapped, ContainerLayout containerLayout = ContainerLayout.FillHorizontal)
{
var istouchtarget = visualState.TouchTarget.IsContext<TapContext>(context, false);
@ -19,7 +19,7 @@ namespace FluidSharp.Widgets.CrossPlatform
(istouchtarget ? platformStyle.FlatButtonSelectedBackgroundColor : selectedcolor)
: default;
var innerwidget = new Container(ContainerLayout.FillHorizontal)
var innerwidget = new Container(containerLayout)
{
MinimumSize = new SKSize(0, 10),
Children =

Просмотреть файл

@ -20,10 +20,10 @@ namespace FluidSharp.Widgets
public bool ExpandHorizontal = false;
public VerticalAlignment VerticalChildAlignment = VerticalAlignment.Top;
public List<Widget> Children = new List<Widget>();
public List<Widget?> Children = new List<Widget?>();
public Row(float spacing, VerticalAlignment verticalChildAlignment, params Widget[] widgets) { Spacing = spacing; VerticalChildAlignment = verticalChildAlignment; Children.AddRange(widgets); }
public Row(float spacing, params Widget[] widgets) { Spacing = spacing; Children.AddRange(widgets); }
public Row(float spacing, VerticalAlignment verticalChildAlignment, params Widget?[] widgets) { Spacing = spacing; VerticalChildAlignment = verticalChildAlignment; Children.AddRange(widgets); }
public Row(float spacing, params Widget?[] widgets) { Spacing = spacing; Children.AddRange(widgets); }
public override SKSize Measure(MeasureCache measureCache, SKSize boundaries)
{