tab

package
v0.89.1 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2026 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Overview

Package tab runs a widget tree in a plain browser tab, on a <canvas>, through go-widgets/webcanvas: no compositor, no SharedArrayBuffer, no cross-origin isolation. It is what window.Open returns on js/wasm when the page is not a wasmdesk/wasmbox client, so ONE application runs unchanged natively, inside wasmdesk, and in an ordinary tab served from anywhere.

Tree, the adapter between a widget tree and webcanvas's App, has no build tag: it is plain Go, tested off the browser. Only tab_js.go touches the DOM.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Tree

type Tree struct {
	// contains filtered or unexported fields
}

Tree is a widget tree as a webcanvas scene.

func NewTree

func NewTree(root toolkit.Widget, w, h int, theme *toolkit.Theme) *Tree

NewTree adapts root, laid out on a w×h surface painted with theme.

func (*Tree) Char

func (t *Tree) Char(s string) bool

Char is a printable character typed with no Ctrl, Meta or Alt.

func (*Tree) Click

func (t *Tree) Click(x, y int) bool

Click is a left-button press.

func (*Tree) Context

func (t *Tree) Context(x, y int) bool

Context is a right-button press.

func (*Tree) Draw

func (t *Tree) Draw(buf []byte)

Draw paints the tree into buf, the w×h RGBA framebuffer webcanvas keeps between frames -- which is what lets an incremental root repaint only what it reports damaged.

func (*Tree) KeyDown

func (t *Tree) KeyDown(s string) bool

KeyDown is a named key, or a modified one -- whose modifiers Modifiers has just recorded, so Ctrl+A arrives as "a" with Ctrl set.

func (*Tree) Modifiers

func (t *Tree) Modifiers(m webcanvas.Modifiers)

Modifiers records the modifier keys of the event about to be delivered.

func (*Tree) Move

func (t *Tree) Move(x, y int) bool

Move is a pointer move: a drag while the button is held.

func (*Tree) Release

func (t *Tree) Release(x, y int) bool

Release ends a press.

func (*Tree) Repaint added in v0.88.0

func (t *Tree) Repaint()

Repaint asks for a frame, from any goroutine. Before Run hands over the request it does nothing: the first frame is drawn anyway.

func (*Tree) RepaintWith added in v0.88.0

func (t *Tree) RepaintWith(request func())

RepaintWith keeps webcanvas's way to ask for a frame.

func (*Tree) Resize

func (t *Tree) Resize(w, h int) (int, int)

Resize follows the canvas to the size the page lays it out at.

func (*Tree) Scroll

func (t *Tree) Scroll(x, y, dx, dy int) bool

Scroll is the wheel, in toolkit rows, at the pointer.

func (*Tree) Size

func (t *Tree) Size() (int, int)

Size is the surface in pixels.

Jump to

Keyboard shortcuts

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