columns

package
v0.0.0-...-1ab0d2a Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package columns provides a widget for organizing other widgets in columns.

Index

Constants

This section is empty.

Variables

View Source
var AllChildrenMaxDimension = fmt.Errorf("All columns widgets were rendered Max, so there is no max height to use.")

Functions

func Render

func Render(w IWidget, size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) gowid.ICanvas

func RenderSize

func RenderSize(w IWidget, size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) gowid.IRenderBox

func RenderSubWidgets

func RenderSubWidgets(w IWidget, size gowid.IRenderSize, focus gowid.Selector, rfocus [][]string, app gowid.IApp) []gowid.ICanvas

RenderSubWidgets returns an array of canvases for each of the subwidgets, rendering them with in the context of a column with the provided size and focus.

func RenderedSubWidgetsSizes

func RenderedSubWidgetsSizes(w IWidget, size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) []gowid.IRenderBox

RenderedSubWidgetsSizes returns an array of boxes that bound each of the subwidgets as they would be rendered with the given size and focus.

func SubWidgetSize

func SubWidgetSize(size gowid.IRenderSize, newX int, dim gowid.IWidgetDimension) gowid.IRenderSize

Types

type IWidget

type IWidget interface {
	gowid.IWidget
	gowid.ICompositeMultipleDimensions
	gowid.ISettableDimensions
	gowid.ISettableSubWidgets
	gowid.IIdentity
	wid.IFocus
	SubWidgetSize(size gowid.IRenderSize, val int, sub gowid.IWidget, dim gowid.IWidgetDimension) gowid.IRenderSize
	RenderSubWidgets(size gowid.IRenderSize, focus gowid.Selector, rfocus [][]string, app gowid.IApp) []gowid.ICanvas
	RenderedSubWidgetsSizes(size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) []gowid.IRenderBox
	WidgetWidths(size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) []int
}

type IWidthHelper

type IWidthHelper interface {
	WidthHelpers() ([]bool, []bool)
}

type Widget

type Widget struct {
	gowid.AddressProvidesID
	// contains filtered or unexported fields
}

func New

func New(defaultID string, widgets []gowid.IContainerWidget) *Widget

func (*Widget) Dimensions

func (w *Widget) Dimensions() []gowid.IWidgetDimension

func (*Widget) Focus

func (w *Widget) Focus(id string) int

func (*Widget) Render

func (w *Widget) Render(size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) gowid.ICanvas

func (*Widget) RenderSize

func (w *Widget) RenderSize(size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) gowid.IRenderBox

RenderSize computes the size of this widget when it renders. This is done by computing the sizes of each subwidget, then arranging them the same way that Render() does.

func (*Widget) RenderSubWidgets

func (w *Widget) RenderSubWidgets(size gowid.IRenderSize, focus gowid.Selector, rfocus [][]string, app gowid.IApp) []gowid.ICanvas

func (*Widget) RenderedSubWidgetsSizes

func (w *Widget) RenderedSubWidgetsSizes(size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) []gowid.IRenderBox

func (*Widget) ReverseFocus

func (w *Widget) ReverseFocus() [][]string

func (*Widget) Selectable

func (w *Widget) Selectable() bool

func (*Widget) SetDimensions

func (w *Widget) SetDimensions(dimensions []gowid.IWidgetDimension, app gowid.IApp)

func (*Widget) SetFocus

func (w *Widget) SetFocus(id string, i int)

func (*Widget) SetSubWidgets

func (w *Widget) SetSubWidgets(widgets []gowid.IWidget, app gowid.IApp)

func (*Widget) String

func (w *Widget) String() string

func (*Widget) SubWidgetSize

func (w *Widget) SubWidgetSize(size gowid.IRenderSize, newX int, sub gowid.IWidget, dim gowid.IWidgetDimension) gowid.IRenderSize

Construct the context in which each subwidget will be rendered. It's important to preserve the type of context e.g. a subwidget may only support being rendered in a fixed context. The newX parameter is the width the subwidget will have within the context of the Columns widget.

func (*Widget) SubWidgets

func (w *Widget) SubWidgets() []gowid.IWidget

func (*Widget) UserInput

func (w *Widget) UserInput(ev interface{}, size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) bool

func (*Widget) WidgetWidths

func (w *Widget) WidgetWidths(size gowid.IRenderSize, focus gowid.Selector, app gowid.IApp) []int

Return a slice of ints representing the width in columns for each of the subwidgets to be rendered in this context given the size argument.

func (*Widget) WidthHelpers

func (w *Widget) WidthHelpers() ([]bool, []bool)

Jump to

Keyboard shortcuts

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