Help us shape the future of Go! Take the 2026 Go Developer Survey

widget

package
v0.7.0 Latest Latest
Warning

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

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

Documentation

Overview

Package widget wraps the go-widgets/toolkit `Widget` interface with two write-to-io.Writer conveniences:

widget.Snapshot(w, wg, width, height, theme, label)  // SVG envelope + base64 PNG
widget.PNG(w, wg, width, height, theme)              // raw PNG bytes

Both allocate a fresh width×height RGBA buffer, invoke wg.Draw against it, then serialise. Rendering + serialisation are one function call for the caller — no manual `make([]byte, 4*w*h)` + `wg.Draw()` dance for the common "I want a snapshot" case.

Splitting the toolkit-aware convenience into a subpackage keeps the root svg package dep-free — a consumer that only needs `svg.Snapshot([]byte)` for a home-grown pixel producer does not pull go-widgets/toolkit into its module graph.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PNG

func PNG(w io.Writer, wg toolkit.Widget, width, height int, theme *toolkit.Theme) (int, error)

PNG renders wg into a fresh width×height RGBA surface, then writes the surface as a raw PNG (no SVG envelope). Useful when the caller wants the bit-exact pixels + none of the vector wrapper — typical use is a docs-site preprocessor that saves one PNG per widget or a CI regression harness that hashes the byte stream.

func Snapshot

func Snapshot(w io.Writer, wg toolkit.Widget, width, height int, theme *toolkit.Theme, label string) (int, error)

Snapshot renders wg into a fresh width×height RGBA surface via a painter.PixelPainter that wg.Draw writes through, then wraps the result in an SVG envelope via svg.Snapshot. The label lands in the SVG's <title> (pass "" to omit).

Returns the number of bytes written + the first error, mirroring the io.Writer convention.

Types

This section is empty.

Jump to

Keyboard shortcuts

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