' SSOT-V2 Signature: This class/file follows the SSOT-V2 architecture.
Option Strict On
Option Explicit On

Imports System
Imports Nexamas.UI.Architecture
Imports Nexamas.UI.General
Imports Nexamas.UI.Theming
Imports Nexamas.UI.Values
Imports SkiaSharp

Namespace Nexamas.UI.Rendering

    Partial Friend NotInheritable Class MASVisualPrimitivesPainter

#Region "Input Primitives"

        Friend Sub DrawInputBaseFlat(canvas As SKCanvas,
                             ctx As MASThemeContext,
                             r As SKRect,
                             dpi As Single,
                             isDisabled As Boolean,
                             contract As MASResolvedComponentContract)

            If _disposed Then Return

            If contract Is Nothing Then
                Throw New ArgumentNullException(NameOf(contract))
            End If

            contract.AssertConsumable()

            _visualResources.InputField.DrawInputFieldChromeFlat(
        canvas:=canvas,
        ctx:=ctx,
        r:=r,
        dpi:=dpi,
        isDisabled:=isDisabled,
        contract:=contract)

        End Sub

        Friend Sub DrawInputSurface_SSOT(canvas As SKCanvas,
                                         ctx As MASThemeContext,
                                         r As SKRect,
                                         dpi As Single,
                                         isHover As Boolean,
                                         isPressed As Boolean,
                                         hasFocus As Boolean,
                                         isDisabled As Boolean,
                                         contract As MASResolvedComponentContract,
                                         Optional isReadOnly As Boolean = False)

            If _disposed Then Return

            If contract Is Nothing Then
                Throw New ArgumentNullException(NameOf(contract))
            End If

            contract.AssertConsumable()

            _visualResources.InputField.DrawInputFieldChrome(
    canvas:=canvas,
    ctx:=ctx,
    r:=r,
    dpi:=dpi,
    isHover:=isHover,
    isPressed:=isPressed,
    hasFocus:=hasFocus,
    isDisabled:=isDisabled,
    contract:=contract,
    isReadOnly:=isReadOnly)

        End Sub

#End Region



    End Class

End Namespace
