Option Strict On
Option Explicit On

Imports System
Imports SkiaSharp

Namespace Nexamas.UI.Components

    ''' <summary>
    ''' Generic reusable media command button model. Media elements own their action semantics;
    ''' the reusable media button layer only carries an opaque action id, text, bounds,
    ''' layout mode, grouping metadata, and a shared glyph kind.
    ''' </summary>
    Friend Structure MASMediaButtonModel
        Friend Sub New(actionId As Integer,
                       text As String,
                       rect As SKRect,
                       compact As Boolean,
                       groupIndex As Integer,
                       glyphKind As MASMediaButtonGlyphKind)
            Me.ActionId = actionId
            Me.Text = If(text, String.Empty)
            Me.Rect = rect
            Me.Compact = compact
            Me.GroupIndex = groupIndex
            Me.GlyphKind = glyphKind
        End Sub

        Friend ActionId As Integer
        Friend Text As String
        Friend Rect As SKRect
        Friend Compact As Boolean
        Friend GroupIndex As Integer
        Friend GlyphKind As MASMediaButtonGlyphKind
    End Structure

End Namespace
