Class: Plushie::Widget::Pin
- Inherits:
-
Object
- Object
- Plushie::Widget::Pin
- Defined in:
- lib/plushie/widget/pin.rb
Overview
Pin layout -- positions child at absolute coordinates.
Props:
- x (number) -- x position in pixels.
- y (number) -- y position in pixels.
- width (length) -- pin container width.
- height (length) -- pin container height.
- a11y (hash) -- accessibility overrides.
Constant Summary collapse
- PROPS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Supported property keys for this widget.
%i[x y width height a11y].freeze
Instance Attribute Summary collapse
-
#a11y ⇒ Object
readonly
Returns the value of attribute a11y.
-
#children ⇒ Object
readonly
Returns the value of attribute children.
-
#height ⇒ Object
readonly
Returns the value of attribute height.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#width ⇒ Object
readonly
Returns the value of attribute width.
-
#x ⇒ Object
readonly
Returns the value of attribute x.
-
#y ⇒ Object
readonly
Returns the value of attribute y.
Instance Method Summary collapse
- #build ⇒ Plushie::Node
-
#initialize(id, **opts) ⇒ Pin
constructor
A new instance of Pin.
-
#push(child) ⇒ Pin
Append a child widget.
Constructor Details
Instance Attribute Details
#a11y ⇒ Object (readonly)
Returns the value of attribute a11y.
1 2 3 |
# File 'lib/plushie/widget/pin.rb', line 1 def a11y @a11y end |
#children ⇒ Object (readonly)
Returns the value of attribute children.
1 2 3 |
# File 'lib/plushie/widget/pin.rb', line 1 def children @children end |
#height ⇒ Object (readonly)
Returns the value of attribute height.
1 2 3 |
# File 'lib/plushie/widget/pin.rb', line 1 def height @height end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
1 2 3 |
# File 'lib/plushie/widget/pin.rb', line 1 def id @id end |
#width ⇒ Object (readonly)
Returns the value of attribute width.
1 2 3 |
# File 'lib/plushie/widget/pin.rb', line 1 def width @width end |
#x ⇒ Object (readonly)
Returns the value of attribute x.
1 2 3 |
# File 'lib/plushie/widget/pin.rb', line 1 def x @x end |
#y ⇒ Object (readonly)
Returns the value of attribute y.
1 2 3 |
# File 'lib/plushie/widget/pin.rb', line 1 def y @y end |
Instance Method Details
#build ⇒ Plushie::Node
49 50 51 52 53 54 55 56 57 |
# File 'lib/plushie/widget/pin.rb', line 49 def build props = {} PROPS.each do |key| val = instance_variable_get(:"@#{key}") Build.put_if(props, key, val) end Node.new(id: @id, type: "pin", props: props, children: Build.children_to_nodes(@children)) end |
#push(child) ⇒ Pin
Append a child widget.
44 45 46 |
# File 'lib/plushie/widget/pin.rb', line 44 def push(child) dup.tap { _1.instance_variable_set(:@children, @children + [child]) } end |