Option Strict On
Option Explicit On

Imports System
Imports System.Collections.Generic
Imports Nexamas.UI.Controls
Imports Nexamas.UI.Layout

Namespace Nexamas.UI.Composition

    ' <summary>
    ' Selection-dialog page recipe family for the MASPage public facade.
    ' </summary>
    Partial Friend NotInheritable Class MASPage

        ''' <summary>
        ''' Creates the standard selection-dialog content page recipe.
        ''' The result is layout-only and does not draw a form, Windows chrome, top bar, shell border, or overlay.
        ''' Use this facade route for selection-dialog pages; the concrete selection-dialog recipe remains internal.
        ''' </summary>
        Public Shared Function SelectionDialogPage(Optional title As MASControlBase = Nothing,
                                                   Optional description As MASControlBase = Nothing,
                                                   Optional toolbar As IMASLayoutNode = Nothing,
                                                   Optional content As IMASLayoutNode = Nothing,
                                                   Optional actions As IMASLayoutNode = Nothing,
                                                   Optional spacing As Single = MASCompositionPageSizeTokens.SelectionDialogSpacing,
                                                   Optional padding As MASLayoutThickness = Nothing,
                                                   Optional titleHeight As MASSizePolicy = Nothing,
                                                   Optional descriptionHeight As MASSizePolicy = Nothing,
                                                   Optional toolbarHeight As MASSizePolicy = Nothing,
                                                   Optional contentHeight As MASSizePolicy = Nothing,
                                                   Optional actionsWidth As MASSizePolicy = Nothing,
                                                   Optional actionsHeight As MASSizePolicy = Nothing,
                                                   Optional maxContentWidth As Single = MASCompositionPageSizeTokens.SelectionDialogMaxContentWidth,
                                                   Optional scrollEnabled As Boolean = False,
                                                   Optional scrollKey As String = "",
                                                   Optional useDefaultVisualPolish As Boolean = True) As IMASLayoutNode

            Return MASSelectionDialogPage.Create(
                title:=title,
                description:=description,
                toolbar:=toolbar,
                content:=content,
                actions:=actions,
                spacing:=spacing,
                padding:=padding,
                titleHeight:=titleHeight,
                descriptionHeight:=descriptionHeight,
                toolbarHeight:=toolbarHeight,
                contentHeight:=contentHeight,
                actionsWidth:=actionsWidth,
                actionsHeight:=actionsHeight,
                maxContentWidth:=maxContentWidth,
                scrollEnabled:=scrollEnabled,
                scrollKey:=scrollKey,
                useDefaultVisualPolish:=useDefaultVisualPolish)
        End Function

    End Class

End Namespace
