Option Strict On
Option Explicit On

Imports System
Imports System.Collections.Generic
Imports Nexamas.UI.Controls
Imports Nexamas.UI.Host
Imports Nexamas.UI.Layout
Imports Nexamas.UI.Rendering
Imports Nexamas.UI.Theming
Imports Nexamas.UI.Components
Imports SkiaSharp

Namespace Nexamas.UI.Application


    Friend NotInheritable Class MASApplicationSurfaceLayoutModel
        Private ReadOnly _regionEntries As IReadOnlyList(Of MASApplicationLayoutRegionEntry)
        Private ReadOnly _backgroundEntries As IReadOnlyList(Of MASApplicationSurfaceBackgroundEntry)

        Friend Sub New(regionEntries As IReadOnlyList(Of MASApplicationLayoutRegionEntry),
                       backgroundEntries As IReadOnlyList(Of MASApplicationSurfaceBackgroundEntry))
            _regionEntries = If(regionEntries, Array.Empty(Of MASApplicationLayoutRegionEntry)())
            _backgroundEntries = If(backgroundEntries, Array.Empty(Of MASApplicationSurfaceBackgroundEntry)())
        End Sub

        Friend ReadOnly Property RegionEntries As IReadOnlyList(Of MASApplicationLayoutRegionEntry)
            Get
                Return _regionEntries
            End Get
        End Property

        Friend ReadOnly Property BackgroundEntries As IReadOnlyList(Of MASApplicationSurfaceBackgroundEntry)
            Get
                Return _backgroundEntries
            End Get
        End Property

        Friend Sub CollectControls(target As IList(Of MASControlBase))
            If target Is Nothing Then Return

            For Each entry As MASApplicationLayoutRegionEntry In _regionEntries
                If entry IsNot Nothing Then entry.CollectControls(target)
            Next
        End Sub
    End Class

End Namespace
