Option Strict On
Option Explicit On

Namespace Nexamas.UI.ThemeStudio

    ''' <summary>
    ''' Product-safe description of one generic surface material slot available to Surface Designer.
    ''' Slots are reusable regions such as Root, Header, Toolbar, Viewport, or Floating; they are
    ''' not element identities and must not become material ids.
    ''' </summary>
    Friend NotInheritable Class MASSurfaceDesignerSlotEntry

        Friend Sub New(name As String,
                       value As Integer,
                       roleName As String,
                       participatesInDesignerPreview As Boolean)
            Me.Name = Normalize(name)
            Me.Value = value
            Me.RoleName = Normalize(roleName)
            Me.ParticipatesInDesignerPreview = participatesInDesignerPreview
        End Sub

        Friend ReadOnly Property Name As String
        Friend ReadOnly Property Value As Integer
        Friend ReadOnly Property RoleName As String
        Friend ReadOnly Property ParticipatesInDesignerPreview As Boolean

        Private Shared Function Normalize(value As String) As String
            Return If(value, String.Empty).Trim()
        End Function

    End Class

End Namespace
