...

Package etk

Overview ▾

Package etk provides an Ebitengine tool kit for creating graphical user interfaces.

Widgets

Custom widgets may be created entirely from scratch or may be based on official widgets.

The following official widgets are available:

Box - Building block for creating other widgets.
Button - Clickable button.
Flex - Flexible stack-based layout. Each Flex widget may be oriented horizontally or vertically.
Frame - Widget container. All child widgets are displayed at once. Child widgets are not repositioned by default.
Grid - Highly customizable cell-based layout. Widgets added to the Grid may span multiple cells.
Input - Text input widget. The Input widget is simply a Text widget that also accepts user input.
Keyboard - On-screen keyboard.
List - List of widgets as selectable items.
Select - Dropdown selection widget.
Sprite - Resizable image.
Text - Text display widget.
Window - Widget paging mechanism. Only one widget added to a window is displayed at a time.

Input Propagation

Mouse events are passed to the topmost widget under the mouse. If a widget returns a handled value of false, the event continues to propagate down the stack of widgets under the mouse.

Clicking or tapping on a widget focuses the widget. This is handled by etk automatically when a widget returns a handled value of true.

Keyboard events are passed to the focused widget.

Focus Propagation

When attempting to change which widget is focused, etk checks whether the widget to be focused accepts this focus. If it does, the previously focused widget is un-focused. If the widget does not accept the focus, the previously focused widget remains focused.

Cursor Unification

Input events generated by desktop mice and touch screens are unified in etk. These input events are simplified into an image.Point specifying the location of the event and two parameters: clicked and pressed.

Clicked is true the first frame the mouse event or touch screen event is received. When the mouse click or touch screen tap is released, the widget that was originally clicked or tapped always receives a final event where clicked and pressed are both false.

Draw Order

Each time etk draws a widget it subsequently draws all of the widget's children in the order they are returned.

Subpackages

There are two subpackages in etk: messeji and kibodo. These are available for use without requiring etk. Usually you will not need to reference any subpackages, as etk wraps them to provide widgets with additional features.

Index ▾

Variables
func BoundString(f *text.GoTextFace, s string) image.Rectangle
func Draw(screen *ebiten.Image) error
func FontFace(source *text.GoTextFaceSource, size int) *text.GoTextFace
func Layout(outsideWidth int, outsideHeight int)
func Open(target string) error
func Scale(v int) int
func ScaleFactor() float64
func ScreenSize() (width int, height int)
func SetDebug(debug bool)
func SetFocus(w Widget)
func SetRoot(w Widget)
func Update() error
type Alignment
type Attributes
type Box
    func NewBox() *Box
    func (b *Box) AddChild(w ...Widget)
    func (b *Box) Background() color.RGBA
    func (b *Box) Children() []Widget
    func (b *Box) Clear()
    func (b *Box) Clip() bool
    func (b *Box) Cursor() ebiten.CursorShapeType
    func (b *Box) Draw(screen *ebiten.Image) error
    func (b *Box) Focus() bool
    func (b *Box) HandleKeyboard(key ebiten.Key, r rune) (handled bool, err error)
    func (b *Box) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (b *Box) Rect() image.Rectangle
    func (b *Box) SetBackground(background color.RGBA)
    func (b *Box) SetFocus(focus bool) bool
    func (b *Box) SetRect(r image.Rectangle)
    func (b *Box) SetVisible(visible bool)
    func (b *Box) Visible() bool
type Button
    func NewButton(label string, onSelected func() error) *Button
    func (b *Button) Cursor() ebiten.CursorShapeType
    func (b *Button) Draw(screen *ebiten.Image) error
    func (b *Button) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)
    func (b *Button) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (b *Button) SetBackground(background color.RGBA)
    func (b *Button) SetBorderColors(top color.RGBA, right color.RGBA, bottom color.RGBA, left color.RGBA)
    func (b *Button) SetBorderSize(size int)
    func (b *Button) SetFont(fnt *text.GoTextFaceSource, size int)
    func (b *Button) SetForeground(c color.RGBA)
    func (b *Button) SetHorizontal(h Alignment)
    func (b *Button) SetRect(r image.Rectangle)
    func (b *Button) SetText(text string)
    func (b *Button) SetVertical(v Alignment)
    func (b *Button) Text() string
type Checkbox
    func NewCheckbox(onSelect func() error) *Checkbox
    func (c *Checkbox) Cursor() ebiten.CursorShapeType
    func (c *Checkbox) Draw(screen *ebiten.Image) error
    func (c *Checkbox) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)
    func (c *Checkbox) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (c *Checkbox) Selected() bool
    func (c *Checkbox) SetBorderColor(borderColor color.RGBA)
    func (c *Checkbox) SetCheckColor(checkColor color.RGBA)
    func (c *Checkbox) SetRect(r image.Rectangle)
    func (c *Checkbox) SetSelected(selected bool)
type Flex
    func NewFlex() *Flex
    func (f *Flex) AddChild(w ...Widget)
    func (f *Flex) Draw(screen *ebiten.Image) error
    func (f *Flex) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)
    func (f *Flex) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (f *Flex) SetChildSize(width int, height int)
    func (f *Flex) SetGaps(columnGap int, rowGap int)
    func (f *Flex) SetRect(r image.Rectangle)
    func (f *Flex) SetVertical(v bool)
type Frame
    func NewFrame(w ...Widget) *Frame
    func (f *Frame) AddChild(w ...Widget)
    func (f *Frame) SetHorizontal(h Alignment)
    func (f *Frame) SetMaxHeight(h int)
    func (f *Frame) SetMaxWidth(w int)
    func (f *Frame) SetPadding(padding int)
    func (f *Frame) SetPositionChildren(position bool)
    func (f *Frame) SetRect(r image.Rectangle)
    func (f *Frame) SetVertical(v Alignment)
type Grid
    func NewGrid() *Grid
    func (g *Grid) AddChild(wgt ...Widget)
    func (g *Grid) AddChildAt(wgt Widget, x int, y int, columns int, rows int)
    func (g *Grid) Clear()
    func (g *Grid) Draw(screen *ebiten.Image) error
    func (g *Grid) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)
    func (g *Grid) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (g *Grid) SetColumnPadding(padding int)
    func (g *Grid) SetColumnSizes(size ...int)
    func (g *Grid) SetRect(r image.Rectangle)
    func (g *Grid) SetRowPadding(padding int)
    func (g *Grid) SetRowSizes(size ...int)
type Input
    func NewInput(text string, onSelected func(text string) (handled bool)) *Input
    func (i *Input) Cursor() ebiten.CursorShapeType
    func (i *Input) Draw(screen *ebiten.Image) error
    func (i *Input) Focus() bool
    func (i *Input) Foreground() color.RGBA
    func (i *Input) HandleKeyboard(key ebiten.Key, r rune) (handled bool, err error)
    func (i *Input) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (i *Input) Padding() int
    func (i *Input) SetAutoHideScrollBar(autoHide bool)
    func (t *Input) SetAutoResize(resize bool)
    func (i *Input) SetBorderColors(focused color.RGBA, unfocused color.RGBA)
    func (i *Input) SetBorderSize(size int)
    func (i *Input) SetCursor(cursor string)
    func (i *Input) SetFocus(focus bool) bool
    func (t *Input) SetFont(fnt *text.GoTextFaceSource, size int)
    func (i *Input) SetForeground(c color.RGBA)
    func (i *Input) SetHorizontal(h Alignment)
    func (i *Input) SetMask(r rune)
    func (i *Input) SetPadding(padding int)
    func (i *Input) SetPrefix(prefix string)
    func (i *Input) SetRect(r image.Rectangle)
    func (i *Input) SetScrollBarColors(area color.RGBA, handle color.RGBA)
    func (i *Input) SetScrollBarVisible(scrollVisible bool)
    func (i *Input) SetScrollBarWidth(width int)
    func (i *Input) SetSuffix(suffix string)
    func (i *Input) SetText(text string)
    func (i *Input) SetVertical(v Alignment)
    func (i *Input) SetWordWrap(wrap bool)
    func (i *Input) Text() string
    func (i *Input) Write(p []byte) (n int, err error)
type Keyboard
    func NewKeyboard() *Keyboard
    func (k *Keyboard) Cursor() ebiten.CursorShapeType
    func (k *Keyboard) Draw(screen *ebiten.Image) error
    func (k *Keyboard) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (k *Keyboard) Keys() [][]*kibodo.Key
    func (k *Keyboard) SetExtendedKeys(keys [][]*kibodo.Key)
    func (k *Keyboard) SetKeys(keys [][]*kibodo.Key)
    func (k *Keyboard) SetRect(r image.Rectangle)
    func (k *Keyboard) SetScheduleFrameFunc(f func())
    func (k *Keyboard) SetShowExtended(show bool)
    func (k *Keyboard) SetVisible(visible bool)
    func (k *Keyboard) Visible() bool
type List
    func NewList(itemHeight int, onSelected func(index int) (accept bool)) *List
    func (l *List) AddChildAt(w Widget, x int, y int)
    func (l *List) Background() color.RGBA
    func (l *List) Children() []Widget
    func (l *List) Clear()
    func (l *List) Clip() bool
    func (l *List) Cursor() ebiten.CursorShapeType
    func (l *List) Draw(screen *ebiten.Image) error
    func (l *List) Focus() bool
    func (l *List) HandleKeyboard(key ebiten.Key, r rune) (handled bool, err error)
    func (l *List) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (l *List) Rect() image.Rectangle
    func (l *List) Rows() int
    func (l *List) SelectedItem() (x int, y int)
    func (l *List) SetBackground(background color.RGBA)
    func (l *List) SetColumnSizes(size ...int)
    func (l *List) SetConfirmedFunc(f func(index int))
    func (l *List) SetDrawBorder(drawBorder bool)
    func (l *List) SetFocus(focus bool) (accept bool)
    func (l *List) SetHighlightColor(c color.RGBA)
    func (l *List) SetItemHeight(itemHeight int)
    func (l *List) SetRect(r image.Rectangle)
    func (l *List) SetScrollBarColors(area color.RGBA, handle color.RGBA)
    func (l *List) SetScrollBarWidth(width int)
    func (l *List) SetScrollBorderColors(top color.RGBA, right color.RGBA, bottom color.RGBA, left color.RGBA)
    func (l *List) SetScrollBorderSize(size int)
    func (l *List) SetSelectedFunc(f func(index int) (accept bool))
    func (l *List) SetSelectedItem(x int, y int)
    func (l *List) SetSelectionMode(selectionMode SelectionMode)
    func (l *List) SetVisible(visible bool)
    func (l *List) Visible() bool
type Select
    func NewSelect(itemHeight int, onSelect func(index int) (accept bool)) *Select
    func (s *Select) AddChild(w ...Widget)
    func (s *Select) AddOption(label string)
    func (s *Select) Children() []Widget
    func (s *Select) Clear()
    func (s *Select) Clip() bool
    func (s *Select) Cursor() ebiten.CursorShapeType
    func (s *Select) Draw(screen *ebiten.Image) error
    func (s *Select) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)
    func (s *Select) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (s *Select) SetHighlightColor(c color.RGBA)
    func (s *Select) SetMenuVisible(visible bool)
    func (s *Select) SetRect(r image.Rectangle)
    func (s *Select) SetSelectedItem(index int)
type SelectionMode
type Shortcuts
type Sprite
    func NewSprite(img *ebiten.Image) *Sprite
    func (s *Sprite) Draw(screen *ebiten.Image) error
    func (s *Sprite) SetHorizontal(h Alignment)
    func (s *Sprite) SetImage(img *ebiten.Image)
    func (s *Sprite) SetVertical(v Alignment)
type Text
    func NewText(text string) *Text
    func (t *Text) AddChild(w ...Widget)
    func (t *Text) Children() []Widget
    func (t *Text) Cursor() ebiten.CursorShapeType
    func (t *Text) Draw(screen *ebiten.Image) error
    func (t *Text) Focus() bool
    func (t *Text) FontSize() int
    func (t *Text) Foreground() color.RGBA
    func (t *Text) HandleKeyboard(key ebiten.Key, r rune) (handled bool, err error)
    func (t *Text) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (t *Text) Padding() int
    func (t *Text) SetAutoHideScrollBar(autoHide bool)
    func (t *Text) SetAutoResize(resize bool)
    func (t *Text) SetFocus(focus bool) bool
    func (t *Text) SetFollow(follow bool)
    func (t *Text) SetFont(fnt *text.GoTextFaceSource, size int)
    func (t *Text) SetForeground(c color.RGBA)
    func (t *Text) SetHorizontal(h Alignment)
    func (t *Text) SetLast(text string)
    func (t *Text) SetMask(r rune)
    func (t *Text) SetPadding(padding int)
    func (t *Text) SetRect(r image.Rectangle)
    func (t *Text) SetScrollBarColors(area color.RGBA, handle color.RGBA)
    func (t *Text) SetScrollBarVisible(scrollVisible bool)
    func (t *Text) SetScrollBarWidth(width int)
    func (t *Text) SetScrollBorderColors(top color.RGBA, right color.RGBA, bottom color.RGBA, left color.RGBA)
    func (t *Text) SetSingleLine(single bool)
    func (t *Text) SetText(text string)
    func (t *Text) SetVertical(v Alignment)
    func (t *Text) SetWordWrap(wrap bool)
    func (t *Text) Text() string
    func (t *Text) Write(p []byte) (n int, err error)
type Widget
    func At(p image.Point) Widget
    func Focused() Widget
type Window
    func NewWindow() *Window
    func (w *Window) AddChild(wgt ...Widget)
    func (w *Window) AddChildWithLabel(wgt Widget, defaultFocus Widget, label string) int
    func (w *Window) Children() []Widget
    func (w *Window) Clear()
    func (w *Window) Clip() bool
    func (w *Window) Draw(screen *ebiten.Image) error
    func (w *Window) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)
    func (w *Window) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
    func (w *Window) Hide()
    func (w *Window) SetFont(fnt *text.GoTextFaceSource, size int)
    func (w *Window) SetFrameSize(size int)
    func (w *Window) SetListHorizontal(h Alignment)
    func (w *Window) SetListSize(size int)
    func (w *Window) SetListVertical(v Alignment)
    func (w *Window) SetRect(r image.Rectangle)
    func (w *Window) Show(index int)
type WithoutFocus
    func (w *WithoutFocus) Focus() bool
    func (w *WithoutFocus) SetFocus(focus bool) (accept bool)
type WithoutMouse
    func (w *WithoutMouse) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)
type WithoutMouseExceptScroll
    func (w *WithoutMouseExceptScroll) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

Package files

box.go button.go checkbox.go doc.go flex.go frame.go game.go grid.go input.go keybind.go keyboard.go list.go platform_linux.go platform_wla.go select.go sprite.go style.go text.go widget.go window.go

Variables

Bindings is the current keyboard, mouse and gamepad input configurations.

var Bindings = &Shortcuts{
    DoubleClickThreshold: 200 * time.Millisecond,

    MoveLeftKeyboard:  []ebiten.Key{ebiten.KeyLeft},
    MoveRightKeyboard: []ebiten.Key{ebiten.KeyRight},
    MoveDownKeyboard:  []ebiten.Key{ebiten.KeyDown},
    MoveUpKeyboard:    []ebiten.Key{ebiten.KeyUp},

    MoveLeftGamepad:  []ebiten.StandardGamepadButton{ebiten.StandardGamepadButtonLeftLeft},
    MoveRightGamepad: []ebiten.StandardGamepadButton{ebiten.StandardGamepadButtonLeftRight},
    MoveDownGamepad:  []ebiten.StandardGamepadButton{ebiten.StandardGamepadButtonLeftBottom},
    MoveUpGamepad:    []ebiten.StandardGamepadButton{ebiten.StandardGamepadButtonLeftTop},

    ConfirmKeyboard: []ebiten.Key{ebiten.KeyEnter, ebiten.KeyKPEnter},
    ConfirmMouse:    []ebiten.MouseButton{ebiten.MouseButtonLeft, ebiten.MouseButtonRight},
    ConfirmGamepad:  []ebiten.StandardGamepadButton{ebiten.StandardGamepadButtonRightBottom},
}

ResizeDebounce is the minimum duration between screen layout changes. This setting can greatly improve performance when resizing the window.

var ResizeDebounce = 250 * time.Millisecond

Style is the current default attribute configuration. Integer values will be scaled.

var Style = &Attributes{
    TextSize: 32,

    TextColorLight: color.RGBA{255, 255, 255, 255},
    TextColorDark:  color.RGBA{0, 0, 0, 255},

    TextBgColor: transparent,

    InputBorderSize:      2,
    InputBorderFocused:   color.RGBA{220, 220, 220, 255},
    InputBorderUnfocused: color.RGBA{0, 0, 0, 255},

    ScrollAreaColor:   color.RGBA{200, 200, 200, 255},
    ScrollHandleColor: color.RGBA{108, 108, 108, 255},

    ScrollBorderSize:   2,
    ScrollBorderTop:    color.RGBA{240, 240, 240, 255},
    ScrollBorderRight:  color.RGBA{0, 0, 0, 255},
    ScrollBorderBottom: color.RGBA{0, 0, 0, 255},
    ScrollBorderLeft:   color.RGBA{240, 240, 240, 255},

    InputBgColor: color.RGBA{0, 64, 0, 255},

    ButtonBgColor:         color.RGBA{255, 255, 255, 255},
    ButtonBgColorDisabled: color.RGBA{110, 110, 110, 255},

    ButtonBorderSize:   4,
    ButtonBorderTop:    color.RGBA{220, 220, 220, 255},
    ButtonBorderRight:  color.RGBA{0, 0, 0, 255},
    ButtonBorderBottom: color.RGBA{0, 0, 0, 255},
    ButtonBorderLeft:   color.RGBA{220, 220, 220, 255},

    CheckboxBgColor: color.RGBA{255, 255, 255, 255},
}

func BoundString

func BoundString(f *text.GoTextFace, s string) image.Rectangle

BoundString returns the bounds of the provided string.

func Draw

func Draw(screen *ebiten.Image) error

Draw draws the root widget and its children to the screen.

func FontFace

func FontFace(source *text.GoTextFaceSource, size int) *text.GoTextFace

FontFace returns a face for the provided font and size. Scaling is not applied.

func Layout

func Layout(outsideWidth int, outsideHeight int)

Layout sets the current screen size and resizes the root widget.

func Open

func Open(target string) error

Open opens a file, directory or URI using the default application registered in the OS to handle it. Only URIs are supported on WebAssembly.

func Scale

func Scale(v int) int

Scale applies the device scale factor to the provided value and returns the result. When running on Android, this function may only be called during or after the first Layout call made by Ebitengine.

func ScaleFactor

func ScaleFactor() float64

ScaleFactor returns the device scale factor. When running on Android, this function may only be called during or after the first Layout call made by Ebitengine.

func ScreenSize

func ScreenSize() (width int, height int)

ScreenSize returns the current screen size.

func SetDebug

func SetDebug(debug bool)

SetDebug sets whether debug information is drawn on screen. When enabled, all visible widgets are outlined.

func SetFocus

func SetFocus(w Widget)

SetFocus focuses a widget.

func SetRoot

func SetRoot(w Widget)

SetRoot sets the root widget. The root widget and all of its children will be drawn on the screen and receive user input. The root widget will also be focused. To temporarily disable etk, set a nil root widget.

func Update

func Update() error

Update handles user input and passes it to the focused or clicked widget.

type Alignment

Alignment specifies how text is aligned within the field.

type Alignment int
const (
    // AlignStart aligns text at the start of the field.
    AlignStart Alignment = 0

    // AlignCenter aligns text at the center of the field.
    AlignCenter Alignment = 1

    // AlignEnd aligns text at the end of the field.
    AlignEnd Alignment = 2
)

type Attributes

Attributes represents a default attribute configuration. Integer values will be scaled.

type Attributes struct {
    TextFont *text.GoTextFaceSource
    TextSize int

    TextColorLight color.RGBA
    TextColorDark  color.RGBA

    TextBgColor color.RGBA

    InputBorderSize      int
    InputBorderFocused   color.RGBA
    InputBorderUnfocused color.RGBA

    ScrollAreaColor   color.RGBA
    ScrollHandleColor color.RGBA

    ScrollBorderSize   int
    ScrollBorderTop    color.RGBA
    ScrollBorderRight  color.RGBA
    ScrollBorderBottom color.RGBA
    ScrollBorderLeft   color.RGBA

    InputBgColor color.RGBA

    ButtonTextColor       color.RGBA
    ButtonBgColor         color.RGBA
    ButtonBgColorDisabled color.RGBA

    ButtonBorderSize   int
    ButtonBorderTop    color.RGBA
    ButtonBorderRight  color.RGBA
    ButtonBorderBottom color.RGBA
    ButtonBorderLeft   color.RGBA

    CheckboxBgColor color.RGBA
}

type Box

Box is a building block for other widgets. It may also be used as a spacer in layout widgets.

type Box struct {
    sync.Mutex
    // contains filtered or unexported fields
}

func NewBox

func NewBox() *Box

NewBox returns a new Box widget.

func (*Box) AddChild

func (b *Box) AddChild(w ...Widget)

AddChild adds a child to the widget.

func (*Box) Background

func (b *Box) Background() color.RGBA

Background returns the background color of the widget.

func (*Box) Children

func (b *Box) Children() []Widget

Children returns the children of the widget. Children are drawn in the order they are returned. Keyboard and mouse events are passed to children in reverse order.

func (*Box) Clear

func (b *Box) Clear()

Clear removes all children from the widget.

func (*Box) Clip

func (b *Box) Clip() bool

Clip returns whether the widget and its children are restricted to drawing within the widget's rect area of the screen. For best performance, Clip should return false unless clipping is actually needed.

func (*Box) Cursor

func (b *Box) Cursor() ebiten.CursorShapeType

Cursor returns the cursor shape shown when a mouse cursor hovers over the widget, or -1 to let widgets beneath determine the cursor shape.

func (*Box) Draw

func (b *Box) Draw(screen *ebiten.Image) error

Draw draws the widget on the screen.

func (*Box) Focus

func (b *Box) Focus() bool

Focus returns the focus state of the widget.

func (*Box) HandleKeyboard

func (b *Box) HandleKeyboard(key ebiten.Key, r rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Box) HandleMouse

func (b *Box) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs. Only mouse events that are on top of the widget are passed to the widget.

func (*Box) Rect

func (b *Box) Rect() image.Rectangle

Rect returns the position and size of the widget.

func (*Box) SetBackground

func (b *Box) SetBackground(background color.RGBA)

SetBackground sets the background color of the widget.

func (*Box) SetFocus

func (b *Box) SetFocus(focus bool) bool

SetFocus sets the focus state of the widget.

func (*Box) SetRect

func (b *Box) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*Box) SetVisible

func (b *Box) SetVisible(visible bool)

SetVisible sets the visibility of the widget.

func (*Box) Visible

func (b *Box) Visible() bool

Visible returns the visibility of the widget.

type Button

Button is a clickable button.

type Button struct {
    *Box
    // contains filtered or unexported fields
}

func NewButton

func NewButton(label string, onSelected func() error) *Button

NewButton returns a new Button widget.

func (*Button) Cursor

func (b *Button) Cursor() ebiten.CursorShapeType

Cursor returns the cursor shape shown when a mouse cursor hovers over the widget, or -1 to let widgets beneath determine the cursor shape.

func (*Button) Draw

func (b *Button) Draw(screen *ebiten.Image) error

Draw draws the button on the screen.

func (*Button) HandleKeyboard

func (b *Button) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Button) HandleMouse

func (b *Button) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Button) SetBackground

func (b *Button) SetBackground(background color.RGBA)

SetBackground sets the background color of the button label.

func (*Button) SetBorderColors

func (b *Button) SetBorderColors(top color.RGBA, right color.RGBA, bottom color.RGBA, left color.RGBA)

SetBorderColors sets the color of the top, right, bottom and left border.

func (*Button) SetBorderSize

func (b *Button) SetBorderSize(size int)

SetBorderSize sets the size of the border around the button.

func (*Button) SetFont

func (b *Button) SetFont(fnt *text.GoTextFaceSource, size int)

SetFont sets the font and text size of button label. Scaling is not applied.

func (*Button) SetForeground

func (b *Button) SetForeground(c color.RGBA)

SetForeground sets the color of the button label.

func (*Button) SetHorizontal

func (b *Button) SetHorizontal(h Alignment)

SetHorizontal sets the horizontal alignment of the button label.

func (*Button) SetRect

func (b *Button) SetRect(r image.Rectangle)

SetRect sets the position and size of the Button.

func (*Button) SetText

func (b *Button) SetText(text string)

SetText sets the text in the field.

func (*Button) SetVertical

func (b *Button) SetVertical(v Alignment)

SetVertical sets the vertical alignment of the button label.

func (*Button) Text

func (b *Button) Text() string

Text returns the content of the text buffer.

type Checkbox

Checkbox is a toggleable Checkbox.

type Checkbox struct {
    *Box
    // contains filtered or unexported fields
}

func NewCheckbox

func NewCheckbox(onSelect func() error) *Checkbox

NewCheckbox returns a new Checkbox widget.

func (*Checkbox) Cursor

func (c *Checkbox) Cursor() ebiten.CursorShapeType

Cursor returns the cursor shape shown when a mouse cursor hovers over the widget, or -1 to let widgets beneath determine the cursor shape.

func (*Checkbox) Draw

func (c *Checkbox) Draw(screen *ebiten.Image) error

Draw draws the Checkbox on the screen.

func (*Checkbox) HandleKeyboard

func (c *Checkbox) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Checkbox) HandleMouse

func (c *Checkbox) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Checkbox) Selected

func (c *Checkbox) Selected() bool

Selected returns the selection state of the Checkbox.

func (*Checkbox) SetBorderColor

func (c *Checkbox) SetBorderColor(borderColor color.RGBA)

SetBorderColor sets the border color of the Checkbox.

func (*Checkbox) SetCheckColor

func (c *Checkbox) SetCheckColor(checkColor color.RGBA)

SetCheckColor sets the check mark color of the Checkbox.

func (*Checkbox) SetRect

func (c *Checkbox) SetRect(r image.Rectangle)

SetRect sets the position and size of the Checkbox. The checkbox is always a square shape.

func (*Checkbox) SetSelected

func (c *Checkbox) SetSelected(selected bool)

SetSelected sets the Checkbox selection state. The onSelect function is not called when the value is set manually via SetSelected.

type Flex

Flex is a flexible stack-based layout which may be oriented horizontally or vertically. Children are positioned with equal spacing by default. A minimum size may instead be specified via SetChildSize, causing children to be positioned similar to a flexbox, where each child either has the minimum size or the child stretches to fill the remaining row or column.

type Flex struct {
    *Box
    // contains filtered or unexported fields
}

func NewFlex

func NewFlex() *Flex

NewFlex returns a new Flex widget.

func (*Flex) AddChild

func (f *Flex) AddChild(w ...Widget)

AddChild adds a child to the widget.

func (*Flex) Draw

func (f *Flex) Draw(screen *ebiten.Image) error

Draw draws the widget on the screen.

func (*Flex) HandleKeyboard

func (f *Flex) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Flex) HandleMouse

func (f *Flex) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Flex) SetChildSize

func (f *Flex) SetChildSize(width int, height int)

SetChildSize sets the minimum size of each child in the Flex.

func (*Flex) SetGaps

func (f *Flex) SetGaps(columnGap int, rowGap int)

SetGaps sets the gaps between each child in the Flex.

func (*Flex) SetRect

func (f *Flex) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*Flex) SetVertical

func (f *Flex) SetVertical(v bool)

SetVertical sets the orientation of the child widget stacking.

type Frame

Frame is a widget container. All children are displayed at once. Children are not repositioned by default. Repositioning may be enabled via SetPositionChildren.

type Frame struct {
    *Box
    // contains filtered or unexported fields
}

func NewFrame

func NewFrame(w ...Widget) *Frame

NewFrame returns a new Frame widget.

func (*Frame) AddChild

func (f *Frame) AddChild(w ...Widget)

AddChild adds a child to the widget.

func (*Frame) SetHorizontal

func (f *Frame) SetHorizontal(h Alignment)

SetHorizontal sets the horizontal alignment of widgets within the Frame. This will only have an effect when a max width is set and there is extra space.

func (*Frame) SetMaxHeight

func (f *Frame) SetMaxHeight(h int)

SetMaxHeight sets the maximum height of widgets within the frame. This will only have an effect after SetPositionChildren(true) is called. 0 to disable.

func (*Frame) SetMaxWidth

func (f *Frame) SetMaxWidth(w int)

SetMaxWidth sets the maximum width of widgets within the frame. This will only have an effect after SetPositionChildren(true) is called. 0 to disable.

func (*Frame) SetPadding

func (f *Frame) SetPadding(padding int)

SetPadding sets the amount of padding around widgets in the frame.

func (*Frame) SetPositionChildren

func (f *Frame) SetPositionChildren(position bool)

SetPositionChildren sets a flag that determines whether child widgets are repositioned when the Frame is repositioned.

func (*Frame) SetRect

func (f *Frame) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*Frame) SetVertical

func (f *Frame) SetVertical(v Alignment)

SetVertical sets the vertical alignment ofwidgets within the Frame. This will only have an effect when a max height is set and there is extra space.

type Grid

Grid is a highly customizable cell-based layout. Widgets added to the Grid may span multiple cells.

type Grid struct {
    *Box
    // contains filtered or unexported fields
}

func NewGrid

func NewGrid() *Grid

NewGrid returns a new Grid widget.

func (*Grid) AddChild

func (g *Grid) AddChild(wgt ...Widget)

AddChild adds a widget to the Grid at 0,0. To add widgets to a Grid, you should use AddChildAt instead.

func (*Grid) AddChildAt

func (g *Grid) AddChildAt(wgt Widget, x int, y int, columns int, rows int)

AddChildAt adds a widget to the Grid at the specified position. Each widget added to the grid may span multiple cells.

func (*Grid) Clear

func (g *Grid) Clear()

Clear removes all children from the Grid.

func (*Grid) Draw

func (g *Grid) Draw(screen *ebiten.Image) error

Draw draws the widget on the screen.

func (*Grid) HandleKeyboard

func (g *Grid) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Grid) HandleMouse

func (g *Grid) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Grid) SetColumnPadding

func (g *Grid) SetColumnPadding(padding int)

SetColumnPadding sets the amount of padding between each column.

func (*Grid) SetColumnSizes

func (g *Grid) SetColumnSizes(size ...int)

SetColumnSizes sets the size of each column. A size of -1 represents an equal proportion of the available space.

func (*Grid) SetRect

func (g *Grid) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*Grid) SetRowPadding

func (g *Grid) SetRowPadding(padding int)

SetRowPadding sets the amount of padding between each row.

func (*Grid) SetRowSizes

func (g *Grid) SetRowSizes(size ...int)

SetRowSizes sets the size of each row. A size of -1 represents an equal proportion of the available space.

type Input

Input is a text input widget. The Input widget is simply a Text widget that also accepts user input.

type Input struct {
    *Box
    // contains filtered or unexported fields
}

func NewInput

func NewInput(text string, onSelected func(text string) (handled bool)) *Input

NewInput returns a new Input widget.

func (*Input) Cursor

func (i *Input) Cursor() ebiten.CursorShapeType

Cursor returns the cursor shape shown when a mouse cursor hovers over the widget, or -1 to let widgets beneath determine the cursor shape.

func (*Input) Draw

func (i *Input) Draw(screen *ebiten.Image) error

Draw draws the widget on the screen.

func (*Input) Focus

func (i *Input) Focus() bool

Focus returns the focus state of the widget.

func (*Input) Foreground

func (i *Input) Foreground() color.RGBA

Foreground return the color of the text within the field.

func (*Input) HandleKeyboard

func (i *Input) HandleKeyboard(key ebiten.Key, r rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Input) HandleMouse

func (i *Input) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Input) Padding

func (i *Input) Padding() int

Padding returns the amount of padding around the text within the field.

func (*Input) SetAutoHideScrollBar

func (i *Input) SetAutoHideScrollBar(autoHide bool)

SetAutoHideScrollBar sets whether the scroll bar is automatically hidden when the entire text buffer is visible.

func (*Input) SetAutoResize

func (t *Input) SetAutoResize(resize bool)

SetAutoResize sets whether the font is automatically scaled down when it is too large to fit the entire text buffer on one line.

func (*Input) SetBorderColors

func (i *Input) SetBorderColors(focused color.RGBA, unfocused color.RGBA)

SetBorderColors sets the border colors of the field when focused and unfocused.

func (*Input) SetBorderSize

func (i *Input) SetBorderSize(size int)

SetBorderSize sets the size of the border around the field.

func (*Input) SetCursor

func (i *Input) SetCursor(cursor string)

SetCursor sets the cursor appended to the text buffer when focused.

func (*Input) SetFocus

func (i *Input) SetFocus(focus bool) bool

SetFocus sets the focus state of the widget.

func (*Input) SetFont

func (t *Input) SetFont(fnt *text.GoTextFaceSource, size int)

SetFont sets the font and text size of the field. Scaling is not applied.

func (*Input) SetForeground

func (i *Input) SetForeground(c color.RGBA)

SetForegroundColor sets the color of the text within the field.

func (*Input) SetHorizontal

func (i *Input) SetHorizontal(h Alignment)

SetHorizontal sets the horizontal alignment of the text within the field.

func (*Input) SetMask

func (i *Input) SetMask(r rune)

SetMask sets the rune used to mask the text buffer contents. Set to 0 to disable.

func (*Input) SetPadding

func (i *Input) SetPadding(padding int)

SetPadding sets the amount of padding around the text within the field.

func (*Input) SetPrefix

func (i *Input) SetPrefix(prefix string)

SetPrefix sets the text shown before the input text.

func (*Input) SetRect

func (i *Input) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*Input) SetScrollBarColors

func (i *Input) SetScrollBarColors(area color.RGBA, handle color.RGBA)

SetScrollBarColors sets the color of the scroll bar area and handle.

func (*Input) SetScrollBarVisible

func (i *Input) SetScrollBarVisible(scrollVisible bool)

SetScrollBarVisible sets whether the scroll bar is visible on the screen.

func (*Input) SetScrollBarWidth

func (i *Input) SetScrollBarWidth(width int)

SetScrollBarWidth sets the width of the scroll bar.

func (*Input) SetSuffix

func (i *Input) SetSuffix(suffix string)

SetSuffix sets the text shown after the input text.

func (*Input) SetText

func (i *Input) SetText(text string)

SetText sets the text in the field.

func (*Input) SetVertical

func (i *Input) SetVertical(v Alignment)

SetVertical sets the vertical alignment of the text within the field.

func (*Input) SetWordWrap

func (i *Input) SetWordWrap(wrap bool)

SetWordWrap sets a flag which, when enabled, causes text to wrap without breaking words.

func (*Input) Text

func (i *Input) Text() string

Text returns the content of the text buffer.

func (*Input) Write

func (i *Input) Write(p []byte) (n int, err error)

Write writes to the text buffer.

type Keyboard

Keyboard is an on-screen keyboard widget. User input is automatically passed to the focused widget.

type Keyboard struct {
    *Box
    // contains filtered or unexported fields
}

func NewKeyboard

func NewKeyboard() *Keyboard

NewKeyboard returns a new Keyboard widget.

func (*Keyboard) Cursor

func (k *Keyboard) Cursor() ebiten.CursorShapeType

Cursor returns the cursor shape shown when a mouse cursor hovers over the widget, or -1 to let widgets beneath determine the cursor shape.

func (*Keyboard) Draw

func (k *Keyboard) Draw(screen *ebiten.Image) error

Draw draws the keyboard on the screen.

func (*Keyboard) HandleMouse

func (k *Keyboard) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Keyboard) Keys

func (k *Keyboard) Keys() [][]*kibodo.Key

Keys returns the keys of the keyboard.

func (*Keyboard) SetExtendedKeys

func (k *Keyboard) SetExtendedKeys(keys [][]*kibodo.Key)

SetExtendedKeys sets the keys of the keyboard when the .

func (*Keyboard) SetKeys

func (k *Keyboard) SetKeys(keys [][]*kibodo.Key)

SetKeys sets the keys of the keyboard.

func (*Keyboard) SetRect

func (k *Keyboard) SetRect(r image.Rectangle)

SetRect sets the position and size of the keyboard.

func (*Keyboard) SetScheduleFrameFunc

func (k *Keyboard) SetScheduleFrameFunc(f func())

SetScheduleFrameFunc sets the function called whenever the screen should be redrawn.

func (*Keyboard) SetShowExtended

func (k *Keyboard) SetShowExtended(show bool)

SetShowExtended sets whether the normal or extended keyboard is shown.

func (*Keyboard) SetVisible

func (k *Keyboard) SetVisible(visible bool)

SetVisible sets the visibility of the keyboard.

func (*Keyboard) Visible

func (k *Keyboard) Visible() bool

Visible returns the visibility of the keyboard.

type List

List is a list of widgets.

type List struct {
    sync.Mutex
    // contains filtered or unexported fields
}

func NewList

func NewList(itemHeight int, onSelected func(index int) (accept bool)) *List

NewList returns a new List widget.

func (*List) AddChildAt

func (l *List) AddChildAt(w Widget, x int, y int)

AddChildAt adds a widget to the list at the specified position.

func (*List) Background

func (l *List) Background() color.RGBA

Background returns the background color of the widget.

func (*List) Children

func (l *List) Children() []Widget

Children returns the children of the widget. Children are drawn in the order they are returned. Keyboard and mouse events are passed to children in reverse order.

func (*List) Clear

func (l *List) Clear()

Clear clears all items from the list.

func (*List) Clip

func (l *List) Clip() bool

Clip returns whether the widget and its children are restricted to drawing within the widget's rect area of the screen. For best performance, Clip should return false unless clipping is actually needed.

func (*List) Cursor

func (l *List) Cursor() ebiten.CursorShapeType

Cursor returns the cursor shape shown when a mouse cursor hovers over the widget, or -1 to let widgets beneath determine the cursor shape.

func (*List) Draw

func (l *List) Draw(screen *ebiten.Image) error

Draw draws the widget on the screen.

func (*List) Focus

func (l *List) Focus() bool

Focus returns the focus state of the widget.

func (*List) HandleKeyboard

func (l *List) HandleKeyboard(key ebiten.Key, r rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*List) HandleMouse

func (l *List) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs. Only mouse events that are on top of the widget are passed to the widget.

func (*List) Rect

func (l *List) Rect() image.Rectangle

Rect returns the position and size of the widget.

func (*List) Rows

func (l *List) Rows() int

Rows returns the number of rows in the list.

func (*List) SelectedItem

func (l *List) SelectedItem() (x int, y int)

SelectedItem returns the selected list item.

func (*List) SetBackground

func (l *List) SetBackground(background color.RGBA)

SetBackground sets the background color of the widget.

func (*List) SetColumnSizes

func (l *List) SetColumnSizes(size ...int)

SetColumnSizes sets the size of each column. A size of -1 represents an equal proportion of the available space.

func (*List) SetConfirmedFunc

func (l *List) SetConfirmedFunc(f func(index int))

SetConfirmedFunc sets a handler which is called when the list selection is confirmed. Providing a nil function value will remove the existing handler (if set).

func (*List) SetDrawBorder

func (l *List) SetDrawBorder(drawBorder bool)

SetDrawBorder enables or disables borders being drawn around the list.

func (*List) SetFocus

func (l *List) SetFocus(focus bool) (accept bool)

SetFocus sets the focus state of the widget.

func (*List) SetHighlightColor

func (l *List) SetHighlightColor(c color.RGBA)

SetHighlightColor sets the color used to highlight the currently selected item.

func (*List) SetItemHeight

func (l *List) SetItemHeight(itemHeight int)

SetItemHeight sets the height of the list items.

func (*List) SetRect

func (l *List) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*List) SetScrollBarColors

func (l *List) SetScrollBarColors(area color.RGBA, handle color.RGBA)

SetScrollBarColors sets the color of the scroll bar area and handle.

func (*List) SetScrollBarWidth

func (l *List) SetScrollBarWidth(width int)

SetScrollBarWidth sets the width of the scroll bar.

func (*List) SetScrollBorderColors

func (l *List) SetScrollBorderColors(top color.RGBA, right color.RGBA, bottom color.RGBA, left color.RGBA)

SetScrollBorderColor sets the color of the top, right, bottom and left border of the scroll bar handle.

func (*List) SetScrollBorderSize

func (l *List) SetScrollBorderSize(size int)

SetScrollBorderSize sets the size of the border around the scroll bar handle.

func (*List) SetSelectedFunc

func (l *List) SetSelectedFunc(f func(index int) (accept bool))

SetSelectedFunc sets a handler which is called when a list item is selected. Providing a nil function value will remove the existing handler (if set). The handler may return false to return the selection to its original state.

func (*List) SetSelectedItem

func (l *List) SetSelectedItem(x int, y int)

SetSelectedItem sets the selected list item.

func (*List) SetSelectionMode

func (l *List) SetSelectionMode(selectionMode SelectionMode)

SetSelectionMode sets the selection mode of the list.

func (*List) SetVisible

func (l *List) SetVisible(visible bool)

SetVisible sets the visibility of the widget.

func (*List) Visible

func (l *List) Visible() bool

Visible returns the visibility of the widget.

type Select

Select is a dropdown selection widget.

type Select struct {
    *Box
    // contains filtered or unexported fields
}

func NewSelect

func NewSelect(itemHeight int, onSelect func(index int) (accept bool)) *Select

NewSelect returns a new Select widget.

func (*Select) AddChild

func (s *Select) AddChild(w ...Widget)

AddChild adds a child to the widget. Selection options are added via AddOption.

func (*Select) AddOption

func (s *Select) AddOption(label string)

AddOption adds an option to the widget.

func (*Select) Children

func (s *Select) Children() []Widget

Children returns the children of the widget.

func (*Select) Clear

func (s *Select) Clear()

Clear removes all children from the widget.

func (*Select) Clip

func (s *Select) Clip() bool

Clip returns whether the widget and its children are restricted to drawing within the widget's rect area of the screen. For best performance, Clip should return false unless clipping is actually needed.

func (*Select) Cursor

func (s *Select) Cursor() ebiten.CursorShapeType

Cursor returns the cursor shape shown when a mouse cursor hovers over the widget, or -1 to let widgets beneath determine the cursor shape.

func (*Select) Draw

func (s *Select) Draw(screen *ebiten.Image) error

Draw draws the widget on the screen.

func (*Select) HandleKeyboard

func (s *Select) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Select) HandleMouse

func (s *Select) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Select) SetHighlightColor

func (s *Select) SetHighlightColor(c color.RGBA)

SetHighlightColor sets the color used to highlight the currently selected item.

func (*Select) SetMenuVisible

func (s *Select) SetMenuVisible(visible bool)

SetMenuVisible sets the visibility of the dropdown menu.

func (*Select) SetRect

func (s *Select) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*Select) SetSelectedItem

func (s *Select) SetSelectedItem(index int)

SetSelectedItem sets the currently selected item.

type SelectionMode

SelectionMode represents a mode of selection.

type SelectionMode int

Selection modes.

const (
    // SelectNone disables selection.
    SelectNone SelectionMode = iota

    // SelectRow enables selection by row.
    SelectRow

    // SelectColumn enables selection by column.
    SelectColumn
)

type Shortcuts

Shortcuts represents the keyboard, mouse and gamepad input configurations.

type Shortcuts struct {
    DoubleClickThreshold time.Duration

    MoveLeftKeyboard  []ebiten.Key
    MoveRightKeyboard []ebiten.Key
    MoveDownKeyboard  []ebiten.Key
    MoveUpKeyboard    []ebiten.Key

    MoveLeftGamepad  []ebiten.StandardGamepadButton
    MoveRightGamepad []ebiten.StandardGamepadButton
    MoveDownGamepad  []ebiten.StandardGamepadButton
    MoveUpGamepad    []ebiten.StandardGamepadButton

    ConfirmKeyboard []ebiten.Key
    ConfirmMouse    []ebiten.MouseButton
    ConfirmGamepad  []ebiten.StandardGamepadButton

    // A sentinel rune value may be set for the confirm and back actions.
    // This allows working around on-screen keyboard issues on Android.
    ConfirmRune rune
    BackRune    rune
}

type Sprite

Sprite is a resizable image.

type Sprite struct {
    *Box
    // contains filtered or unexported fields
}

func NewSprite

func NewSprite(img *ebiten.Image) *Sprite

NewSprite returns a new Sprite widget.

func (*Sprite) Draw

func (s *Sprite) Draw(screen *ebiten.Image) error

Draw draws the Sprite on the screen.

func (*Sprite) SetHorizontal

func (s *Sprite) SetHorizontal(h Alignment)

SetHorizontal sets the horizontal alignment of the Sprite.

func (*Sprite) SetImage

func (s *Sprite) SetImage(img *ebiten.Image)

SetImage sets the image of the Sprite.

func (*Sprite) SetVertical

func (s *Sprite) SetVertical(v Alignment)

SetVertical sets the vertical alignment of the Sprite.

type Text

Text is a text display widget.

type Text struct {
    *Box
    // contains filtered or unexported fields
}

func NewText

func NewText(text string) *Text

NewText returns a new Text widget.

func (*Text) AddChild

func (t *Text) AddChild(w ...Widget)

AddChild adds a child to the widget.

func (*Text) Children

func (t *Text) Children() []Widget

Children returns the children of the widget.

func (*Text) Cursor

func (t *Text) Cursor() ebiten.CursorShapeType

Cursor returns the cursor shape shown when a mouse cursor hovers over the widget, or -1 to let widgets beneath determine the cursor shape.

func (*Text) Draw

func (t *Text) Draw(screen *ebiten.Image) error

Draw draws the widget on the screen.

func (*Text) Focus

func (t *Text) Focus() bool

Focus returns the focus state of the widget.

func (*Text) FontSize

func (t *Text) FontSize() int

FontSize returns the font size of the field.

func (*Text) Foreground

func (t *Text) Foreground() color.RGBA

Foreground return the color of the text within the field.

func (*Text) HandleKeyboard

func (t *Text) HandleKeyboard(key ebiten.Key, r rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Text) HandleMouse

func (t *Text) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Text) Padding

func (t *Text) Padding() int

Padding returns the amount of padding around the text within the field.

func (*Text) SetAutoHideScrollBar

func (t *Text) SetAutoHideScrollBar(autoHide bool)

SetAutoHideScrollBar sets whether the scroll bar is automatically hidden when the entire text buffer is visible.

func (*Text) SetAutoResize

func (t *Text) SetAutoResize(resize bool)

SetAutoResize sets whether the font is automatically scaled down when it is too large to fit the entire text buffer on one line.

func (*Text) SetFocus

func (t *Text) SetFocus(focus bool) bool

SetFocus sets the focus state of the widget.

func (*Text) SetFollow

func (t *Text) SetFollow(follow bool)

SetFollow sets whether the field should automatically scroll to the end when content is added to the buffer.

func (*Text) SetFont

func (t *Text) SetFont(fnt *text.GoTextFaceSource, size int)

SetFont sets the font and text size of the field. Scaling is not applied.

func (*Text) SetForeground

func (t *Text) SetForeground(c color.RGBA)

SetForeground sets the color of the text within the field.

func (*Text) SetHorizontal

func (t *Text) SetHorizontal(h Alignment)

SetHorizontal sets the horizontal alignment of the text within the field.

func (*Text) SetLast

func (t *Text) SetLast(text string)

SetLast sets the text of the last line of the field.

func (*Text) SetMask

func (t *Text) SetMask(r rune)

SetMask sets the rune used to mask the text buffer contents. Set to 0 to disable.

func (*Text) SetPadding

func (t *Text) SetPadding(padding int)

SetPadding sets the amount of padding around the text within the field.

func (*Text) SetRect

func (t *Text) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*Text) SetScrollBarColors

func (t *Text) SetScrollBarColors(area color.RGBA, handle color.RGBA)

SetScrollBarColors sets the color of the scroll bar area and handle.

func (*Text) SetScrollBarVisible

func (t *Text) SetScrollBarVisible(scrollVisible bool)

SetScrollBarVisible sets whether the scroll bar is visible on the screen.

func (*Text) SetScrollBarWidth

func (t *Text) SetScrollBarWidth(width int)

SetScrollBarWidth sets the width of the scroll bar.

func (*Text) SetScrollBorderColors

func (t *Text) SetScrollBorderColors(top color.RGBA, right color.RGBA, bottom color.RGBA, left color.RGBA)

SetScrollBorderColor sets the color of the top, right, bottom and left border of the scroll bar handle.

func (*Text) SetSingleLine

func (t *Text) SetSingleLine(single bool)

SetSingleLine sets whether the field displays all text on a single line. When enabled, the field scrolls horizontally. Otherwise, it scrolls vertically.

func (*Text) SetText

func (t *Text) SetText(text string)

SetText sets the text in the field.

func (*Text) SetVertical

func (t *Text) SetVertical(v Alignment)

SetVertical sets the vertical alignment of the text within the field.

func (*Text) SetWordWrap

func (t *Text) SetWordWrap(wrap bool)

SetWordWrap sets a flag which, when enabled, causes text to wrap without breaking words.

func (*Text) Text

func (t *Text) Text() string

Text returns the content of the text buffer.

func (*Text) Write

func (t *Text) Write(p []byte) (n int, err error)

Write writes to the text buffer.

type Widget

Widget represents an interface element. Most widgets will embed Box and build on top of it.

type Widget interface {
    // Rect returns the position and size of the widget.
    Rect() image.Rectangle

    // SetRect sets the position and size of the widget.
    SetRect(r image.Rectangle)

    // Background returns the background color of the widget.
    Background() color.RGBA

    // SetBackground sets the background color of the widget.
    SetBackground(background color.RGBA)

    // Focus returns the focus state of the widget.
    Focus() bool

    // SetFocus sets the focus state of the widget.
    SetFocus(focus bool) (accept bool)

    // Visible returns the visibility of the widget.
    Visible() bool

    // SetVisible sets the visibility of the widget.
    SetVisible(visible bool)

    // Cursor returns the cursor shape shown when a mouse cursor hovers over
    // the widget, or -1 to let widgets beneath determine the cursor shape.
    Cursor() ebiten.CursorShapeType

    // HandleKeyboard is called when a keyboard event occurs.
    HandleKeyboard(ebiten.Key, rune) (handled bool, err error)

    // HandleMouse is called when a mouse event occurs. Only mouse events that
    // are on top of the widget are passed to the widget, except after clicking
    // within the widget and then dragging the cursor outside of the widget.
    HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

    // Clip returns whether the widget and its children are restricted to drawing
    // within the widget's rect area of the screen. For best performance, Clip
    // should return false unless clipping is actually needed.
    Clip() bool

    // Draw draws the widget on the screen.
    Draw(screen *ebiten.Image) error

    // Children returns the children of the widget. Children are drawn in the
    // order they are returned. Keyboard and mouse events are passed to children
    // in reverse order.
    Children() []Widget
}

func At

func At(p image.Point) Widget

At returns the widget at the provided screen location.

func Focused

func Focused() Widget

Focused returns the currently focused widget. If no widget is focused, nil is returned.

type Window

Window displays a single child widget at a time, and includes a list to view other child widgets. Window.Show must be called after adding a widget.

type Window struct {
    *Box
    // contains filtered or unexported fields
}

func NewWindow

func NewWindow() *Window

NewWindow returns a new Window widget.

func (*Window) AddChild

func (w *Window) AddChild(wgt ...Widget)

AddChild adds a child to the window.

func (*Window) AddChildWithLabel

func (w *Window) AddChildWithLabel(wgt Widget, defaultFocus Widget, label string) int

AddChildWithLabel adds a child to the window with the specified default focus and list entry label.

func (*Window) Children

func (w *Window) Children() []Widget

Children returns the children of the widget.

func (*Window) Clear

func (w *Window) Clear()

Clear removes all children from the widget.

func (*Window) Clip

func (w *Window) Clip() bool

Clip returns whether the widget and its children are restricted to drawing within the widget's rect area of the screen. For best performance, Clip should return false unless clipping is actually needed.

func (*Window) Draw

func (w *Window) Draw(screen *ebiten.Image) error

Draw draws the widget on the screen.

func (*Window) HandleKeyboard

func (w *Window) HandleKeyboard(ebiten.Key, rune) (handled bool, err error)

HandleKeyboard is called when a keyboard event occurs.

func (*Window) HandleMouse

func (w *Window) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs.

func (*Window) Hide

func (w *Window) Hide()

Hide hides the currently visible child widget.

func (*Window) SetFont

func (w *Window) SetFont(fnt *text.GoTextFaceSource, size int)

SetFont sets the font and text size of the window titles. Scaling is not applied.

func (*Window) SetFrameSize

func (w *Window) SetFrameSize(size int)

SetFrameSize sets the size of the frame around each window.

func (*Window) SetListHorizontal

func (w *Window) SetListHorizontal(h Alignment)

SetListHorizontal sets the horizontal alignment of the window tab list.

func (*Window) SetListSize

func (w *Window) SetListSize(size int)

SetListSize sets the width or height of the window tab list.

func (*Window) SetListVertical

func (w *Window) SetListVertical(v Alignment)

SetListVertical sets the vertical alignment of the window tab list.

func (*Window) SetRect

func (w *Window) SetRect(r image.Rectangle)

SetRect sets the position and size of the widget.

func (*Window) Show

func (w *Window) Show(index int)

Show displays the specified child widget within the Window.

type WithoutFocus

WithoutFocus wraps a widget to ignore focus.

type WithoutFocus struct {
    Widget
}

func (*WithoutFocus) Focus

func (w *WithoutFocus) Focus() bool

Focus returns the focus state of the widget.

func (*WithoutFocus) SetFocus

func (w *WithoutFocus) SetFocus(focus bool) (accept bool)

SetFocus sets the focus state of the widget.

type WithoutMouse

WithoutMouse wraps a widget to ignore all mouse events.

type WithoutMouse struct {
    Widget
}

func (*WithoutMouse) HandleMouse

func (w *WithoutMouse) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs. Only mouse events that are on top of the widget are passed to the widget.

type WithoutMouseExceptScroll

WithoutMouseExceptScroll wraps a widget to ignore all mouse events except scroll events.

type WithoutMouseExceptScroll struct {
    Widget
    // contains filtered or unexported fields
}

func (*WithoutMouseExceptScroll) HandleMouse

func (w *WithoutMouseExceptScroll) HandleMouse(cursor image.Point, pressed bool, clicked bool) (handled bool, err error)

HandleMouse is called when a mouse event occurs. Only mouse events that are on top of the widget are passed to the widget.

Subdirectories

Name Synopsis
..
examples
showcase
kibodo Package kibodo provides an on-screen keyboard widget for Ebitengine.
examples
kibodo
game
mobile
messeji Package messeji provides text widgets for Ebitengine.
examples
messeji
game
mobile