layout/stack.go

Functions Structs

Functions

func Compute

Compute performs stack layout on the tree starting at root.

func (s *StackLayout) Compute(tree LayoutTree, root NodeID, available geometry.Size) Result {
	switch s.Direction {
	case StackVertical:
		return s.computeVStack(tree, root, available)
	case StackHorizontal:
		return s.computeHStack(tree, root, available)
	case StackZ:
		return s.computeZStack(tree, root, available)
	default:
		return Result{}
	}
}

func Compute

Compute performs ZStack layout.

func (z *ZStackLayout) Compute(tree LayoutTree, root NodeID, available geometry.Size) Result {
	return computeZStackCommon(tree, root, available, z.alignChild)
}

func Name

Name returns the algorithm name based on direction.

func (s *StackLayout) Name() string {
	switch s.Direction {
	case StackVertical:
		return stackVStackStr
	case StackHorizontal:
		return stackHStackStr
	case StackZ:
		return stackZStackStr
	default:
		return "stack"
	}
}

func Name

Name returns "zstack".

func (z *ZStackLayout) Name() string {
	return stackZStackStr
}

func String

String returns a string representation of stack alignment.

func (a StackAlignment) String() string {
	switch a {
	case StackAlignStart:
		return alignStrStart
	case StackAlignCenter:
		return alignStrCenter
	case StackAlignEnd:
		return alignStrEnd
	case StackAlignStretch:
		return alignStrStretch
	default:
		return alignStrUnknown
	}
}

Structs

type StackLayout struct

StackLayout implements VStack, HStack, and ZStack layouts.

 

StackLayout arranges children in a single direction with spacing,

or overlays them on top of each other for ZStack.

type StackLayout struct {
	// Direction specifies the stack direction.
	Direction	StackDirection

	// Alignment specifies cross-axis alignment (or position for ZStack).
	Alignment	StackAlignment

	// Spacing is the gap between children (not used for ZStack).
	Spacing	float32
}

type ZStackLayout struct

ZStackLayout implements overlay stack with 9-position alignment.

type ZStackLayout struct {
	Alignment ZStackAlignment
}