Files
maui-linux/OpenMaui.Controls.Linux.csproj
Dave Friedel b18d5a11f3 RC1: Full XAML support with BindableProperty, VSM, and data binding
Phase 1 - BindableProperty Foundation:
- SkiaLayoutView: Convert Spacing, Padding, ClipToBounds to BindableProperty
- SkiaStackLayout: Convert Orientation to BindableProperty
- SkiaGrid: Convert RowSpacing, ColumnSpacing to BindableProperty
- SkiaCollectionView: Convert all 12 properties to BindableProperty
- SkiaShell: Convert all 12 properties to BindableProperty

Phase 2 - Visual State Manager:
- Add VSM integration to SkiaImageButton pointer handlers
- Support Normal, PointerOver, Pressed, Disabled states

Phase 3-4 - XAML/Data Binding:
- Type converters for SKColor, SKRect, SKSize, SKPoint
- BindingContext propagation through visual tree
- Full handler registration for all MAUI controls

Documentation:
- README: Add styling/binding examples, update roadmap
- Add RC1-ROADMAP.md with implementation details

Version: 1.0.0-rc.1

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 09:26:21 -05:00

73 lines
3.4 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>OpenMaui.Platform.Linux</RootNamespace>
<AssemblyName>OpenMaui.Controls.Linux</AssemblyName>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);CS0108;CS1591;CS0618</NoWarn>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
<!-- NuGet Package Properties -->
<PackageId>OpenMaui.Controls.Linux</PackageId>
<Version>1.0.0-rc.1</Version>
<Authors>MarketAlly LLC, David H. Friedel Jr.</Authors>
<Company>MarketAlly LLC</Company>
<Product>OpenMaui Linux Controls</Product>
<Description>Linux desktop support for .NET MAUI applications using SkiaSharp rendering. Supports X11 and Wayland display servers with 35+ controls, platform services, and accessibility support.</Description>
<Copyright>Copyright 2025 MarketAlly LLC</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://git.marketally.com/open-maui/maui-linux</PackageProjectUrl>
<RepositoryUrl>https://git.marketally.com/open-maui/maui-linux.git</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>maui;linux;desktop;skia;gui;cross-platform;dotnet;x11;wayland;openmaui</PackageTags>
<PackageReleaseNotes>RC1: Full XAML support with BindableProperty for all controls, Visual State Manager integration, data binding, and XAML styles.</PackageReleaseNotes>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>icon.png</PackageIcon>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<IsPackable>true</IsPackable>
</PropertyGroup>
<ItemGroup>
<!-- MAUI Core packages -->
<PackageReference Include="Microsoft.Maui.Controls" Version="9.0.40" />
<PackageReference Include="Microsoft.Maui.Graphics" Version="9.0.40" />
<PackageReference Include="Microsoft.Maui.Graphics.Skia" Version="9.0.40" />
<!-- SkiaSharp for rendering (2.88.x for FreeType compatibility) -->
<PackageReference Include="SkiaSharp" Version="2.88.9" />
<PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.9" />
<PackageReference Include="SkiaSharp.Views.Desktop.Common" Version="2.88.9" />
<!-- HarfBuzz for advanced text shaping -->
<PackageReference Include="HarfBuzzSharp" Version="7.3.0.3" />
<PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" Version="7.3.0.3" />
</ItemGroup>
<!-- Include README and icon in package -->
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="" />
<None Include="assets/icon.png" Pack="true" PackagePath="" />
</ItemGroup>
<!-- Exclude old handler files, samples, templates, and VSIX -->
<ItemGroup>
<Compile Remove="Handlers/*.Linux.cs" />
<Compile Remove="samples/**/*.cs" />
<Compile Remove="tests/**/*.cs" />
<Compile Remove="templates/**/*.cs" />
<Compile Remove="vsix/**/*.cs" />
<None Remove="vsix/**/*.xaml" />
<None Remove="templates/**/*.xaml" />
<None Remove="samples/**/*.xaml" />
<MauiXaml Remove="vsix/**/*.xaml" />
<MauiXaml Remove="templates/**/*.xaml" />
<MauiXaml Remove="samples/**/*.xaml" />
</ItemGroup>
</Project>