Stepper completed
This commit is contained in:
@@ -5,12 +5,12 @@ using Microsoft.Maui.Handlers;
|
||||
using Microsoft.Maui.Graphics;
|
||||
using Microsoft.Maui.Controls;
|
||||
using Microsoft.Maui.Platform;
|
||||
using SkiaSharp;
|
||||
|
||||
namespace Microsoft.Maui.Platform.Linux.Handlers;
|
||||
|
||||
/// <summary>
|
||||
/// Handler for Stepper on Linux using Skia rendering.
|
||||
/// Maps IStepper interface to SkiaStepper platform view.
|
||||
/// </summary>
|
||||
public partial class StepperHandler : ViewHandler<IStepper, SkiaStepper>
|
||||
{
|
||||
@@ -52,12 +52,21 @@ public partial class StepperHandler : ViewHandler<IStepper, SkiaStepper>
|
||||
// Apply dark theme colors if needed
|
||||
if (Application.Current?.UserAppTheme == AppTheme.Dark)
|
||||
{
|
||||
platformView.ButtonBackgroundColor = new SKColor(66, 66, 66);
|
||||
platformView.ButtonPressedColor = new SKColor(97, 97, 97);
|
||||
platformView.ButtonDisabledColor = new SKColor(48, 48, 48);
|
||||
platformView.SymbolColor = new SKColor(224, 224, 224);
|
||||
platformView.SymbolDisabledColor = new SKColor(97, 97, 97);
|
||||
platformView.BorderColor = new SKColor(97, 97, 97);
|
||||
platformView.ButtonBackgroundColor = Color.FromRgb(66, 66, 66);
|
||||
platformView.ButtonPressedColor = Color.FromRgb(97, 97, 97);
|
||||
platformView.ButtonDisabledColor = Color.FromRgb(48, 48, 48);
|
||||
platformView.SymbolColor = Color.FromRgb(224, 224, 224);
|
||||
platformView.SymbolDisabledColor = Color.FromRgb(97, 97, 97);
|
||||
platformView.BorderColor = Color.FromRgb(97, 97, 97);
|
||||
}
|
||||
|
||||
// Sync properties
|
||||
if (VirtualView != null)
|
||||
{
|
||||
MapValue(this, VirtualView);
|
||||
MapMinimum(this, VirtualView);
|
||||
MapMaximum(this, VirtualView);
|
||||
MapIsEnabled(this, VirtualView);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,16 +76,22 @@ public partial class StepperHandler : ViewHandler<IStepper, SkiaStepper>
|
||||
base.DisconnectHandler(platformView);
|
||||
}
|
||||
|
||||
private void OnValueChanged(object? sender, EventArgs e)
|
||||
private void OnValueChanged(object? sender, ValueChangedEventArgs e)
|
||||
{
|
||||
if (VirtualView is null || PlatformView is null) return;
|
||||
VirtualView.Value = PlatformView.Value;
|
||||
|
||||
if (Math.Abs(VirtualView.Value - e.NewValue) > 0.0001)
|
||||
{
|
||||
VirtualView.Value = e.NewValue;
|
||||
}
|
||||
}
|
||||
|
||||
public static void MapValue(StepperHandler handler, IStepper stepper)
|
||||
{
|
||||
if (handler.PlatformView is null) return;
|
||||
handler.PlatformView.Value = stepper.Value;
|
||||
|
||||
if (Math.Abs(handler.PlatformView.Value - stepper.Value) > 0.0001)
|
||||
handler.PlatformView.Value = stepper.Value;
|
||||
}
|
||||
|
||||
public static void MapMinimum(StepperHandler handler, IStepper stepper)
|
||||
@@ -115,5 +130,6 @@ public partial class StepperHandler : ViewHandler<IStepper, SkiaStepper>
|
||||
{
|
||||
if (handler.PlatformView is null) return;
|
||||
handler.PlatformView.IsEnabled = stepper.IsEnabled;
|
||||
handler.PlatformView.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user