Option Strict On
Option Explicit On

Imports System.Collections.Generic
Imports Nexamas.UI.Architecture
Imports Nexamas.UI.Components.DropDownMenu
Imports Nexamas.UI.Components.ListPopup
Imports Nexamas.UI.Components.ListRendering
Imports Nexamas.UI.Controls
Imports Nexamas.UI.FloatRuntime
Imports Nexamas.UI.Rendering
Imports Nexamas.UI.Values

Namespace Nexamas.UI.Components

    Partial Friend NotInheritable Class MASComponentControlsArchitectureProvider

        Private Shared Sub RegisterButtons(list As List(Of MASComponentDescriptor))
            list.Add(
                                MASComponentDescriptor.Create(Of MASButton)(
                                    category:=MASComponentCategory.Control,
                                    controlKind:=CommonEnums.ControlKind.ButtonMas,
                                    surfaceFamily:=CommonEnums.SurfaceFamily.ButtonMas,
                                    materialRole:=MASMaterialRole.Action,
                                    interactionRole:=MASInteractionRole.Button,
                                    shadowRole:=MASShadowRole.Control,
                                    radiusRole:=MASRadiusRole.SurfaceFamily,
                                    typographyRole:=MASTypographyRole.Button,
                                    themeSurfaceRole:=NexamasUISurfaceRole.Button,
                                    themeColorRole:=NexamasUIColorRole.TextOnAccent,
                                    themeStateRole:=NexamasUIStateRole.Interactive,
                                    inputRole:=MASInputRole.PointerAndKeyboard,
                                    focusRole:=MASFocusRole.Focusable
                                )
                            )

                        list.Add(
                MASComponentDescriptor.Create(Of MASSplitButton)(
                    category:=MASComponentCategory.Control,
                    controlKind:=CommonEnums.ControlKind.SplitButton,
                    surfaceFamily:=CommonEnums.SurfaceFamily.ButtonMas,
                    materialRole:=MASMaterialRole.Action,
                    interactionRole:=MASInteractionRole.Button,
                    shadowRole:=MASShadowRole.Control,
                    radiusRole:=MASRadiusRole.SurfaceFamily,
                    typographyRole:=MASTypographyRole.Button,
                    themeSurfaceRole:=NexamasUISurfaceRole.Button,
                    themeColorRole:=NexamasUIColorRole.TextOnAccent,
                    themeStateRole:=NexamasUIStateRole.Interactive,
                    inputRole:=MASInputRole.PointerAndKeyboard,
                    focusRole:=MASFocusRole.Focusable
                )
            )

                        list.Add(
                MASComponentDescriptor.Create(Of GlyphButton)(
                    category:=MASComponentCategory.Control,
                  controlKind:=CommonEnums.ControlKind.GlyphButton,
                    surfaceFamily:=CommonEnums.SurfaceFamily.ButtonMas,
                    materialRole:=MASMaterialRole.Action,
                    interactionRole:=MASInteractionRole.Button,
                    shadowRole:=MASShadowRole.Control,
                    radiusRole:=MASRadiusRole.SurfaceFamily,
                    typographyRole:=MASTypographyRole.None,
                    themeSurfaceRole:=NexamasUISurfaceRole.Button,
                    themeColorRole:=NexamasUIColorRole.Icon,
                    themeStateRole:=NexamasUIStateRole.Interactive,
                    inputRole:=MASInputRole.PointerOnly,
                    focusRole:=MASFocusRole.NotFocusable
                )
            )

        End Sub

    End Class

End Namespace
