Option Strict On
Option Explicit On

Imports System.Windows.Forms

Namespace Nexamas.UI.TextInput

    ''' <summary>
    ''' Owns keyboard, text, and IME composition command dispatch for MAS text-input controls.
    ''' </summary>
    ''' <remarks>
    ''' This collaborator wraps MASTextInputPipeline so MASInputBoxSkiaBase no longer
    ''' owns the editing pipeline directly. The control still supplies the short-lived
    ''' MASTextInputContext because that context is made of UI callbacks.
    ''' </remarks>
    Friend NotInheritable Class MASTextInputEditingController

#Region "Fields"

        Private ReadOnly _pipeline As New MASTextInputPipeline()

#End Region

#Region "Processing"

        Friend Function ProcessKey(ctx As MASTextInputContext,
                                   keyCode As Keys,
                                   modifiers As Keys) As MASTextInputPipelineResult
            Return _pipeline.ProcessKey(ctx, keyCode, modifiers)
        End Function

        Friend Function ProcessTextInput(ctx As MASTextInputContext,
                                         text As String) As MASTextInputPipelineResult
            Return _pipeline.ProcessTextInput(ctx, text)
        End Function

        Friend Function ProcessComposition(ctx As MASTextInputContext,
                                           command As MASTextCompositionCommand) As MASTextInputPipelineResult
            Return _pipeline.ProcessComposition(ctx, command)
        End Function

#End Region

    End Class

End Namespace
