text

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2022 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Overview

Package text provides types and functions to parse, format and render text.

Index

Constants

View Source
const (
	PosLeft   = -1
	PosBottom = -1
	PosCenter = 0
	PosTop    = +1
	PosRight  = +1
)

Position specifies the text position.

Variables

This section is empty.

Functions

This section is empty.

Types

type Handler

type Handler interface {
	// Cache returns the cache of fonts used by the text handler.
	Cache() *font.Cache

	// Extents returns the Extents of a font.
	Extents(fnt font.Font) font.Extents

	// Lines splits a given block of text into separate lines.
	Lines(txt string) []string

	// Box returns the bounding box of the given non-multiline text where:
	//  - width is the horizontal space from the origin.
	//  - height is the vertical space above the baseline.
	//  - depth is the vertical space below the baseline, a positive number.
	Box(txt string, fnt font.Font) (width, height, depth vg.Length)

	// Draw renders the given text with the provided style and position
	// on the canvas.
	Draw(c vg.Canvas, txt string, sty Style, pt vg.Point)
}

Handler parses, formats and renders text.

type Plain

type Plain struct {
	Fonts *font.Cache
}

Plain is a text/plain handler.

func (Plain) Box

func (hdlr Plain) Box(txt string, fnt font.Font) (width, height, depth vg.Length)

Box returns the bounding box of the given non-multiline text where:

  • width is the horizontal space from the origin.
  • height is the vertical space above the baseline.
  • depth is the vertical space below the baseline, a positive number.

func (Plain) Cache

func (hdlr Plain) Cache() *font.Cache

Cache returns the cache of fonts used by the text handler.

func (Plain) Draw

func (hdlr Plain) Draw(c vg.Canvas, txt string, sty Style, pt vg.Point)

Draw renders the given text with the provided style and position on the canvas.

func (Plain) Extents

func (hdlr Plain) Extents(fnt font.Font) font.Extents

Extents returns the Extents of a font.

func (Plain) Lines

func (hdlr Plain) Lines(txt string) []string

Lines splits a given block of text into separate lines.

type Style

type Style struct {
	// Color is the text color.
	Color color.Color

	// Font is the font description.
	Font font.Font

	// Rotation is the text rotation in radians, performed around the axis
	// defined by XAlign and YAlign.
	Rotation float64

	// XAlign and YAlign specify the alignment of the text.
	XAlign XAlignment
	YAlign YAlignment

	// Handler parses and formats text according to a given
	// dialect (Markdown, LaTeX, plain, ...)
	// The default is a plain text handler.
	Handler Handler
}

Style describes what text will look like.

func (Style) FontExtents

func (s Style) FontExtents() font.Extents

FontExtents returns the extents of this Style's font.

func (Style) Height

func (s Style) Height(txt string) vg.Length

Height returns the height of the text when using the given font before any text rotation is applied.

func (Style) Rectangle

func (s Style) Rectangle(txt string) vg.Rectangle

Rectangle returns a rectangle giving the bounds of this text assuming that it is drawn at (0, 0).

func (Style) Width

func (s Style) Width(txt string) (max vg.Length)

Width returns the width of lines of text when using the given font before any text rotation is applied.

type XAlignment

type XAlignment float64

XAlignment specifies text alignment in the X direction. Three preset options are available, but an arbitrary alignment can also be specified using XAlignment(desired number).

const (
	// XLeft aligns the left edge of the text with the specified location.
	XLeft XAlignment = 0
	// XCenter aligns the horizontal center of the text with the specified location.
	XCenter XAlignment = -0.5
	// XRight aligns the right edge of the text with the specified location.
	XRight XAlignment = -1
)

type YAlignment

type YAlignment float64

YAlignment specifies text alignment in the Y direction. Three preset options are available, but an arbitrary alignment can also be specified using YAlignment(desired number).

const (
	// YTop aligns the top of of the text with the specified location.
	YTop YAlignment = -1
	// YCenter aligns the vertical center of the text with the specified location.
	YCenter YAlignment = -0.5
	// YBottom aligns the bottom of the text with the specified location.
	YBottom YAlignment = 0
)

Jump to

Keyboard shortcuts

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