Class: Tuile::Component::Layout::Horizontal

Inherits:
Box
  • Object
show all
Defined in:
lib/tuile/component/layout/horizontal.rb,
sig/tuile.rbs

Overview

Lays children out left to right. The main axis is horizontal, so a child's positional constraint is its width and cross: is its height; align: :start is the top edge, :end the bottom.

split = Component::Layout::Horizontal.new
split.add(sidebar, Component::Layout::Fixed[30])
split.add(main, Component::Layout::Expand[1])   # takes the rest of the row

Inside a subclass the constraints need no prefix at all — see Box.

See Box for the constraint vocabulary and how the space is divided.

Constant Summary collapse

DEFAULT_PLACEMENT =

Returns:

  • (::Hash[Symbol, Object])
ALIGNMENTS =

Returns:

  • (::Array[Symbol])

Instance Attribute Summary

Attributes inherited from Box

#padding, #spacing

Instance Method Summary collapse

Methods inherited from Box

#add, #align_offset, #cross_placement, #distribute_expand, #initialize, #inner_rect, #main_sizes, #percent_of, #place_children, #placement, #rect=, #relayout, #remove, #validate_align, #validate_cross, #validate_main, #validate_spacing

Constructor Details

This class inherits a constructor from Tuile::Component::Layout::Box

Instance Method Details

#build_rect(inner, main_offset, main_size, cross_offset, cross_size) ⇒ Object

@param inner

@param main_offset — columns right of inner's left.

@param main_size — width.

@param cross_offset — rows down from inner's top.

@param cross_size — height.



34
35
36
# File 'lib/tuile/component/layout/horizontal.rb', line 34

def build_rect(inner, main_offset, main_size, cross_offset, cross_size)
  Rect.new(inner.left + main_offset, inner.top + cross_offset, main_size, cross_size)
end

#cross_extent(rect) ⇒ Integer

@param rect

Parameters:

Returns:

  • (Integer)


26
# File 'lib/tuile/component/layout/horizontal.rb', line 26

def cross_extent(rect) = rect.height

#main_extent(rect) ⇒ Integer

@param rect

Parameters:

Returns:

  • (Integer)


22
# File 'lib/tuile/component/layout/horizontal.rb', line 22

def main_extent(rect) = rect.width