avyos.dev/pkg/graphics/input

package input

Package Overview

No package-level documentation is provided.

Export GroupCount
Constants0
Variables0
Functions0
Types7

Types

Backend

type Backend interface {
	Open() error
	Close() error
	Size() (width, height int)
	Buffer() *core.Buffer
	Flush() error
	FlushRect(core.Rect) error
	Info() string
	HasSystemCursor() bool
}

Backend is the display backend interface. Implementations include framebuffer (Linux /dev/fb0) and Wayland.

Event

type Event struct {
	Type EventType

	// Mouse events
	X, Y        int
	MouseButton MouseButton

	// Keyboard events
	Key       Key
	Rune      rune
	Modifiers Modifiers

	// Shortcut events
	ShortcutID uint32
	WindowID   uint32
	Scope      uint32
}

Event represents an input event.

Methods

func (e Event) HasMod(mod Modifiers) bool

HasMod returns true if the modifier is set.

func (e Event) IsAlt() bool

IsAlt returns true if alt is held.

func (e Event) IsCtrl() bool

IsCtrl returns true if ctrl is held.

func (e Event) IsShift() bool

IsShift returns true if shift is held.

EventType

type EventType int

EventType represents the type of an event.

Constants

const (
	EventNone EventType = iota
	EventMouseMove
	EventMouseButtonPress
	EventMouseButtonRelease
	EventKeyPress
	EventKeyRelease
	EventFocusIn
	EventFocusOut
	EventQuit
	EventResize
	EventShortcut
)

InputHandler

type InputHandler interface {
	Open() error
	Start()
	Close() error
	Poll() *Event
	MousePosition() (x, y int)
	SetScreenSize(width, height int)
}

InputHandler is the input handler interface. Implementations include evdev (Linux raw input) and Wayland seat.

Key

type Key int

Key represents a keyboard key.

Constants

const (
	KeyNone Key = iota
	KeyEscape
	KeyBackspace
	KeyTab
	KeyEnter
	KeySpace
	KeyLeft
	KeyRight
	KeyUp
	KeyDown
	KeyHome
	KeyEnd
	KeyPageUp
	KeyPageDown
	KeyInsert
	KeyDelete
	KeyF1
	KeyF2
	KeyF3
	KeyF4
	KeyF5
	KeyF6
	KeyF7
	KeyF8
	KeyF9
	KeyF10
	KeyF11
	KeyF12
	KeyLeftShift
	KeyRightShift
	KeyLeftCtrl
	KeyRightCtrl
	KeyLeftAlt
	KeyRightAlt
	KeyCapsLock
	KeyNumLock
	KeyScrollLock
)

Modifiers

type Modifiers uint8

Modifiers represents keyboard modifiers.

Constants

const (
	ModShift Modifiers = 1 << iota
	ModCtrl
	ModAlt
	ModCapsLock
)

MouseButton

type MouseButton int

MouseButton represents a mouse button.

Constants

const (
	MouseButtonNone MouseButton = iota
	MouseButtonLeft
	MouseButtonMiddle
	MouseButtonRight
	MouseButtonWheelUp
	MouseButtonWheelDown
	MouseButtonWheelLeft
	MouseButtonWheelRight
)