Option Strict On
Option Explicit On

Imports System
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Windows.Forms
Imports Nexamas.UI.Architecture
Imports Nexamas.UI.Composition
Imports Nexamas.UI.General
Imports Nexamas.UI.Layout
Imports Nexamas.UI.Rendering
Imports Nexamas.UI.TextRendering
Imports Nexamas.UI.Theming
Imports Nexamas.UI.Values
Imports SkiaSharp

Namespace Nexamas.UI.Components

    Partial Public NotInheritable Class MASPagination

#Region "Geometry"

        Private Enum PageNodeAction
            None = 0
            FirstPage = 1
            PreviousPage = 2
            PageNumber = 3
            NextPage = 4
            LastPage = 5
        End Enum

        Private Structure PageNode
            Friend Text As String
            Friend Action As PageNodeAction
            Friend Page As Integer
            Friend Enabled As Boolean
            Friend WidthPx As Single
            Friend Rect As SKRect
        End Structure

        Private Function HitNodeIndex(ptPx As SKPoint) As Integer
            If _lastNodes Is Nothing Then Return -1

            For i As Integer = 0 To _lastNodes.Length - 1
                If Not _lastNodes(i).Enabled Then Continue For
                If _lastNodes(i).Rect.Contains(ptPx.X, ptPx.Y) Then Return i
            Next

            Return -1
        End Function

#End Region

    End Class

End Namespace
