key

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2024 License: MIT, Unlicense Imports: 5 Imported by: 211

Documentation

Overview

Package key implements key and text events and operations.

Index

Constants

View Source
const ModShortcut = ModCtrl

ModShortcut is the platform's shortcut modifier, usually the ctrl modifier. On Apple platforms it is the cmd key.

View Source
const ModShortcutAlt = ModCtrl

ModShortcutAlt is the platform's alternative shortcut modifier, usually the ctrl modifier. On Apple platforms it is the alt modifier.

Variables

This section is empty.

Functions

This section is empty.

Types

type Caret

type Caret struct {
	// Pos is the intersection point of the caret and its baseline.
	Pos f32.Point
	// Ascent is the length of the caret above its baseline.
	Ascent float32
	// Descent is the length of the caret below its baseline.
	Descent float32
}

Caret represents the position of a caret.

type EditEvent

type EditEvent struct {
	// Range specifies the range to replace with Text.
	Range Range
	Text  string
}

An EditEvent requests an edit by an input method.

func (EditEvent) ImplementsEvent

func (EditEvent) ImplementsEvent()

type Event

type Event struct {
	// Name of the key.
	Name Name
	// Modifiers is the set of active modifiers when the key was pressed.
	Modifiers Modifiers
	// State is the state of the key when the event was fired.
	State State
}

An Event is generated when a key is pressed. For text input use EditEvent.

func (Event) ImplementsEvent

func (Event) ImplementsEvent()

type Filter added in v0.5.0

type Filter struct {
	// Focus is the tag that must be focused for the filter to match. It has no effect
	// if it is nil.
	Focus event.Tag
	// Required is the set of modifiers that must be included in events matched.
	Required Modifiers
	// Optional is the set of modifiers that may be included in events matched.
	Optional Modifiers
	// Name of the key to be matched. As a special case, the empty
	// Name matches every key not matched by any other filter.
	Name Name
}

Filter matches any Event that matches the parameters.

func (Filter) ImplementsFilter added in v0.5.0

func (Filter) ImplementsFilter()

type FocusCmd added in v0.5.0

type FocusCmd struct {
	// Tag is the new focus. The focus is cleared if Tag is nil, or if Tag
	// has no [event.Op] references.
	Tag event.Tag
}

FocusCmd requests to set or clear the keyboard focus.

func (FocusCmd) ImplementsCommand added in v0.5.0

func (FocusCmd) ImplementsCommand()

type FocusDirection added in v0.5.0

type FocusDirection int
const (
	FocusRight FocusDirection = iota
	FocusLeft
	FocusUp
	FocusDown
	FocusForward
	FocusBackward
)

type FocusEvent

type FocusEvent struct {
	Focus bool
}

A FocusEvent is generated when a handler gains or loses focus.

func (FocusEvent) ImplementsEvent

func (FocusEvent) ImplementsEvent()

type FocusFilter added in v0.5.0

type FocusFilter struct {
	// Target is a tag specified in a previous event.Op.
	Target event.Tag
}

FocusFilter matches any FocusEvent, EditEvent, SnippetEvent, or SelectionEvent with the specified target.

func (FocusFilter) ImplementsFilter added in v0.5.0

func (FocusFilter) ImplementsFilter()

type InputHint

type InputHint uint8

InputHint changes the on-screen-keyboard type. That hints the type of data that might be entered by the user.

const (
	// HintAny hints that any input is expected.
	HintAny InputHint = iota
	// HintText hints that text input is expected. It may activate auto-correction and suggestions.
	HintText
	// HintNumeric hints that numeric input is expected. It may activate shortcuts for 0-9, "." and ",".
	HintNumeric
	// HintEmail hints that email input is expected. It may activate shortcuts for common email characters, such as "@" and ".com".
	HintEmail
	// HintURL hints that URL input is expected. It may activate shortcuts for common URL fragments such as "/" and ".com".
	HintURL
	// HintTelephone hints that telephone number input is expected. It may activate shortcuts for 0-9, "#" and "*".
	HintTelephone
	// HintPassword hints that password input is expected. It may disable autocorrection and enable password autofill.
	HintPassword
)

type InputHintOp added in v0.5.0

type InputHintOp struct {
	Tag  event.Tag
	Hint InputHint
}

InputHintOp describes the type of text expected by a tag.

func (InputHintOp) Add added in v0.5.0

func (h InputHintOp) Add(o *op.Ops)

type Modifiers

type Modifiers uint32

Modifiers

const (
	// ModCtrl is the ctrl modifier key.
	ModCtrl Modifiers = 1 << iota
	// ModCommand is the command modifier key
	// found on Apple keyboards.
	ModCommand
	// ModShift is the shift modifier key.
	ModShift
	// ModAlt is the alt modifier key, or the option
	// key on Apple keyboards.
	ModAlt
	// ModSuper is the "logo" modifier key, often
	// represented by a Windows logo.
	ModSuper
)

func (Modifiers) Contain

func (m Modifiers) Contain(m2 Modifiers) bool

Contain reports whether m contains all modifiers in m2.

func (Modifiers) String

func (m Modifiers) String() string

type Name added in v0.5.0

type Name string

Name is the identifier for a keyboard key.

For letters, the upper case form is used, via unicode.ToUpper. The shift modifier is taken into account, all other modifiers are ignored. For example, the "shift-1" and "ctrl-shift-1" combinations both give the Name "!" with the US keyboard layout.

const (
	// Names for special keys.
	NameLeftArrow      Name = "←"
	NameRightArrow     Name = "→"
	NameUpArrow        Name = "↑"
	NameDownArrow      Name = "↓"
	NameReturn         Name = "⏎"
	NameEnter          Name = "⌤"
	NameEscape         Name = "⎋"
	NameHome           Name = "⇱"
	NameEnd            Name = "⇲"
	NameDeleteBackward Name = "⌫"
	NameDeleteForward  Name = "⌦"
	NamePageUp         Name = "⇞"
	NamePageDown       Name = "⇟"
	NameTab            Name = "Tab"
	NameSpace          Name = "Space"
	NameCtrl           Name = "Ctrl"
	NameShift          Name = "Shift"
	NameAlt            Name = "Alt"
	NameSuper          Name = "Super"
	NameCommand        Name = "⌘"
	NameF1             Name = "F1"
	NameF2             Name = "F2"
	NameF3             Name = "F3"
	NameF4             Name = "F4"
	NameF5             Name = "F5"
	NameF6             Name = "F6"
	NameF7             Name = "F7"
	NameF8             Name = "F8"
	NameF9             Name = "F9"
	NameF10            Name = "F10"
	NameF11            Name = "F11"
	NameF12            Name = "F12"
	NameBack           Name = "Back"
)

type Range

type Range struct {
	Start int
	End   int
}

Range represents a range of text, such as an editor's selection. Start and End are in runes.

type SelectionCmd added in v0.5.0

type SelectionCmd struct {
	Tag event.Tag
	Range
	Caret
}

SelectionCmd updates the selection for an input handler.

func (SelectionCmd) ImplementsCommand added in v0.5.0

func (SelectionCmd) ImplementsCommand()

type SelectionEvent

type SelectionEvent Range

SelectionEvent is generated when an input method changes the selection.

func (SelectionEvent) ImplementsEvent

func (SelectionEvent) ImplementsEvent()

type Snippet

type Snippet struct {
	Range
	Text string
}

Snippet represents a snippet of text content used for communicating between an editor and an input method.

type SnippetCmd added in v0.5.0

type SnippetCmd struct {
	Tag event.Tag
	Snippet
}

SnippetCmd updates the content snippet for an input handler.

func (SnippetCmd) ImplementsCommand added in v0.5.0

func (SnippetCmd) ImplementsCommand()

type SnippetEvent

type SnippetEvent Range

SnippetEvent is generated when the snippet range is updated by an input method.

func (SnippetEvent) ImplementsEvent

func (SnippetEvent) ImplementsEvent()

type SoftKeyboardCmd added in v0.5.0

type SoftKeyboardCmd struct {
	Show bool
}

SoftKeyboardCmd shows or hides the on-screen keyboard, if available.

func (SoftKeyboardCmd) ImplementsCommand added in v0.5.0

func (SoftKeyboardCmd) ImplementsCommand()

type State

type State uint8

State is the state of a key during an event.

const (
	// Press is the state of a pressed key.
	Press State = iota
	// Release is the state of a key that has been released.
	//
	// Note: release events are only implemented on the following platforms:
	// macOS, Linux, Windows, WebAssembly.
	Release
)

func (State) String

func (s State) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL