Option Strict On
Option Explicit On

Namespace Nexamas.UI.Controls

    ''' <summary>
    ''' Friend-only readiness evidence for MASProgressBar Round 16 refinement. The
    ''' control remains a determinate visual progress element; progress ownership,
    ''' timers, async work, local/parallel indeterminate animation clocks, and service lifetimes stay
    ''' outside the element.
    ''' </summary>
    Friend NotInheritable Class MASProgressBarReadinessManifest
        Friend Sub New(status As MASProgressBarReadinessStatus,
                       hasValuePolicy As Boolean,
                       hasStateTonePolicy As Boolean,
                       hasLabelPlacementPolicy As Boolean,
                       hasSurfaceMaterialBoundary As Boolean,
                       hasAccessibleValueTextPolicy As Boolean,
                       animationClockRouteAbsent As Boolean,
                       parallelProgressRouteAbsent As Boolean)
            Me.Status = status
            Me.HasValuePolicy = hasValuePolicy
            Me.HasStateTonePolicy = hasStateTonePolicy
            Me.HasLabelPlacementPolicy = hasLabelPlacementPolicy
            Me.HasSurfaceMaterialBoundary = hasSurfaceMaterialBoundary
            Me.HasAccessibleValueTextPolicy = hasAccessibleValueTextPolicy
            Me.AnimationClockRouteAbsent = animationClockRouteAbsent
            Me.ParallelProgressRouteAbsent = parallelProgressRouteAbsent
        End Sub

        Friend ReadOnly Property Status As MASProgressBarReadinessStatus
        Friend ReadOnly Property HasValuePolicy As Boolean
        Friend ReadOnly Property HasStateTonePolicy As Boolean
        Friend ReadOnly Property HasLabelPlacementPolicy As Boolean
        Friend ReadOnly Property HasSurfaceMaterialBoundary As Boolean
        Friend ReadOnly Property HasAccessibleValueTextPolicy As Boolean
        Friend ReadOnly Property AnimationClockRouteAbsent As Boolean
        Friend ReadOnly Property ParallelProgressRouteAbsent As Boolean

        Friend Shared Function CreateCurrent() As MASProgressBarReadinessManifest
            Return New MASProgressBarReadinessManifest(MASProgressBarReadinessStatus.Ready, True, True, True, True, True, True, True)
        End Function
    End Class

End Namespace
