Option Strict On
Option Explicit On

Namespace Nexamas.UI.Controls

    ''' <summary>
    ''' Friend-only readiness evidence for MASOperationProgressBox Round 16 refinement.
    ''' The composite owns child construction/layout and percent text synchronization
    ''' only; cancellation, action slots, async progress lifetime, task ownership, and
    ''' services remain outside the visual composition.
    ''' </summary>
    Friend NotInheritable Class MASOperationProgressBoxReadinessManifest
        Friend Sub New(status As MASOperationProgressBoxReadinessStatus,
                       hasCompositionPolicy As Boolean,
                       hasPercentSyncPolicy As Boolean,
                       hasChildLayoutPolicy As Boolean,
                       hasSurfaceBoundary As Boolean,
                       progressLifetimeOwnerAbsent As Boolean,
                       actionOrCancelRouteAbsent As Boolean,
                       parallelOperationProgressRouteAbsent As Boolean)
            Me.Status = status
            Me.HasCompositionPolicy = hasCompositionPolicy
            Me.HasPercentSyncPolicy = hasPercentSyncPolicy
            Me.HasChildLayoutPolicy = hasChildLayoutPolicy
            Me.HasSurfaceBoundary = hasSurfaceBoundary
            Me.ProgressLifetimeOwnerAbsent = progressLifetimeOwnerAbsent
            Me.ActionOrCancelRouteAbsent = actionOrCancelRouteAbsent
            Me.ParallelOperationProgressRouteAbsent = parallelOperationProgressRouteAbsent
        End Sub

        Friend ReadOnly Property Status As MASOperationProgressBoxReadinessStatus
        Friend ReadOnly Property HasCompositionPolicy As Boolean
        Friend ReadOnly Property HasPercentSyncPolicy As Boolean
        Friend ReadOnly Property HasChildLayoutPolicy As Boolean
        Friend ReadOnly Property HasSurfaceBoundary As Boolean
        Friend ReadOnly Property ProgressLifetimeOwnerAbsent As Boolean
        Friend ReadOnly Property ActionOrCancelRouteAbsent As Boolean
        Friend ReadOnly Property ParallelOperationProgressRouteAbsent As Boolean

        Friend Shared Function CreateCurrent() As MASOperationProgressBoxReadinessManifest
            Return New MASOperationProgressBoxReadinessManifest(MASOperationProgressBoxReadinessStatus.Ready, True, True, True, True, True, True, True)
        End Function
    End Class

End Namespace
