diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml index 1d87d91f..ac2636a0 100644 --- a/.github/workflows/build-deploy.yml +++ b/.github/workflows/build-deploy.yml @@ -15,7 +15,7 @@ jobs: env: Solution_Name: ./src/MauiReactor.Build.sln TemplatePack_Name: ./src/MauiReactor.TemplatePack/MauiReactor.TemplatePack.csproj - Version: 2.0.33 + Version: 2.0.34 steps: - name: Checkout diff --git a/samples/ChartApp/Pages/MainPage.cs b/samples/ChartApp/Pages/MainPage.cs index 0d1e2943..cef23d39 100644 --- a/samples/ChartApp/Pages/MainPage.cs +++ b/samples/ChartApp/Pages/MainPage.cs @@ -22,7 +22,7 @@ partial class PolarChart { } class ChartPageState { - public double[] Values { get; set; } = new double[] { 2, 1, 2, 3, 2, 3, 3 }; + public double[] Values { get; set; } = [2, 1, 2, 3, 2, 3, 3]; } diff --git a/samples/MauiReactor.TestApp/MauiProgram.cs b/samples/MauiReactor.TestApp/MauiProgram.cs index 9d7a37dc..2ed75602 100644 --- a/samples/MauiReactor.TestApp/MauiProgram.cs +++ b/samples/MauiReactor.TestApp/MauiProgram.cs @@ -15,13 +15,15 @@ public static MauiApp CreateMauiApp() app.AddResource("Resources/Styles/DefaultTheme.xaml"); app.SetWindowsSpecificAssetsDirectory("Assets"); + + app.UseTheme(); }) #if DEBUG .EnableMauiReactorHotReload() //This will enable the FrameRateIndicator widget //Disable before publishing the app .EnableFrameRateIndicator() -#endif +#endif .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); @@ -30,6 +32,17 @@ public static MauiApp CreateMauiApp() builder.Services.AddSingleton(); + return builder.Build(); } +} + +class AppTheme : Theme +{ + protected override void OnApply() + { + LabelStyles.Default = _ => _ + .FontAttributes(MauiControls.FontAttributes.Italic) + .FontSize(32); + } } \ No newline at end of file diff --git a/samples/MauiReactor.TestApp/Pages/CounterPage.cs b/samples/MauiReactor.TestApp/Pages/CounterPage.cs index 9d48e29f..085b3a97 100644 --- a/samples/MauiReactor.TestApp/Pages/CounterPage.cs +++ b/samples/MauiReactor.TestApp/Pages/CounterPage.cs @@ -18,7 +18,7 @@ class CounterPage : Component public override VisualNode Render() => ContentPage("Counter Sample", VStack( - Label($"Counter: {State.Counter}"), + Label($"Counter: {State.Counter}").ThemeKey("H1"), Button("Click To Increment", () => SetState(s => s.Counter++)) diff --git a/src/MauiReactor.Scaffold/TypeGenerator.cs b/src/MauiReactor.Scaffold/TypeGenerator.cs index 887a9bb5..221afb25 100644 --- a/src/MauiReactor.Scaffold/TypeGenerator.cs +++ b/src/MauiReactor.Scaffold/TypeGenerator.cs @@ -199,14 +199,29 @@ public virtual string TransformText() #line default #line hidden - this.Write("()\n { \n \n }\n\n public "); + this.Write("()\n { \n "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("Styles.Default?.Invoke(this);\n }\n\n public "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("(Action componentRefAction)\n : base(componentRefAction)\n {\n " + + ""); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); #line default #line hidden - this.Write("(Action componentRefAction)\n : base(componentRefAction)\n {\n\n }\n"); + this.Write("Styles.Default?.Invoke(this);\n }\n"); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" } else if (IsGenericType()) { @@ -255,14 +270,14 @@ public virtual string TransformText() #line default #line hidden - this.Write("()\n { \n \n }\n\n public "); + this.Write("()\n { \n }\n\n public "); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); #line default #line hidden - this.Write("(Action componentRefAction)\n : base(componentRefAction)\n {\n\n }\n"); + this.Write("(Action componentRefAction)\n : base(componentRefAction)\n {\n }\n"); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" } else if (IsTypeSealed()) { @@ -304,7 +319,14 @@ public virtual string TransformText() #line default #line hidden - this.Write("()\n { \n \n }\n\n public "); + this.Write("()\n { \n "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("Styles.Default?.Invoke(this);\n }\n\n public "); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); @@ -318,7 +340,14 @@ public virtual string TransformText() #line default #line hidden - this.Write("?> componentRefAction)\n : base(componentRefAction)\n {\n\n }\n"); + this.Write("?> componentRefAction)\n : base(componentRefAction)\n {\n "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("Styles.Default?.Invoke(this);\n }\n"); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" } else if (IsTypeNotAbstractWithEmptyConstructor()) { @@ -360,14 +389,29 @@ public virtual string TransformText() #line default #line hidden - this.Write("()\n { \n \n }\n\n public "); + this.Write("()\n { \n "); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); #line default #line hidden - this.Write("(Action componentRefAction)\n : base(componentRefAction)\n {\n\n }\n"); + this.Write("Styles.Default?.Invoke(this);\n }\n\n public "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("(Action componentRefAction)\n : base(componentRefAction)\n {\n " + + ""); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("Styles.Default?.Invoke(this);\n }\n"); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" } else { @@ -409,15 +453,29 @@ public virtual string TransformText() #line default #line hidden - this.Write("()\n { \n \n }\n\n protected "); + this.Write("()\n { \n "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("Styles.Default?.Invoke(this);\n }\n\n protected "); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); #line default #line hidden - this.Write("(Action componentRefAction)\n : base(componentRefAction)\n {\n\n } " + - " \n"); + this.Write("(Action componentRefAction)\n : base(componentRefAction)\n {\n " + + ""); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("Styles.Default?.Invoke(this);\n } \n"); #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" } @@ -845,6 +903,29 @@ public virtual string TransformText() this.Write("\n\n partial void OnBeginUpdate();\n partial void OnEndUpdate();\n\n partial " + "void OnBeginAnimate();\n partial void OnEndAnimate();\n\n "); + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + if (!IsGenericType()) { + + #line default + #line hidden + this.Write("\n protected override void OnThemeChanged()\n {\n if (ThemeKey != null " + + "&& "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("Styles.Themes.TryGetValue(ThemeKey, out var styleAction))\n {\n s" + + "tyleAction(this);\n }\n\n base.OnThemeChanged();\n }\n "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + } + + #line default + #line hidden + this.Write("\n\n "); + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" if (Events.Any()) { @@ -2911,6 +2992,40 @@ public virtual string TransformText() #line default #line hidden this.Write("\n}\n\n"); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + if (!IsGenericType()) { + + #line default + #line hidden + this.Write("\npublic static partial class "); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(TypeName())); + + #line default + #line hidden + this.Write("Styles\n{\n\n public static Action<"); + + #line 1 "C:\Source\github\reactorui-maui\src\MauiReactor.Scaffold\TypeGenerator.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(InterfaceName())); + + #line default + #line hidden + this.Write(">? Default { get; set; }\n\n public static Dictionary