class
Opal::UI::GridContainer
- Opal::UI::GridContainer
- Opal::UI::Control
- Opal::UI::Element
- Reference
- Object
Overview
Modern 2D CSS-style Grid container inspired by Python Textual's Grid layout. Distributes cells across rows and columns using fractional (fr) units, fixed widths, spans, and gutters.
Defined in:
opal/ui/layouts/grid.crConstructors
Instance Method Summary
-
#add(element : Element, col : Int32, row : Int32, col_span : Int32 = 1, row_span : Int32 = 1) : self
Adds child element to specific grid coordinate with optional spans
-
#add(element : Element) : self
Adds child placing it automatically in the next open cell
-
#children : Array(Element)
Returns child elements for hierarchical tree traversal and DOM querying
- #columns : Array(GridTrack)
- #columns=(columns : Array(GridTrack))
-
#compute_col_widths(available_w : Int32) : Array(Int32)
Computes pixel column widths given available width
-
#compute_row_heights(available_h : Int32) : Array(Int32)
Computes pixel row heights given available height
- #gutter_x : Int32
- #gutter_x=(gutter_x : Int32)
- #gutter_y : Int32
- #gutter_y=(gutter_y : Int32)
-
#handle_key(event : Terminal::KeyEvent) : Bool
Default key event handler.
-
#handle_mouse(event : Terminal::MouseEvent) : Bool
Default mouse event handler.
- #items : Array(GridItem)
- #preferred_size(available_w : Int32, available_h : Int32) : Tuple(Int32, Int32)
- #render(buffer : Buffer, x : Int32, y : Int32, width : Int32, height : Int32) : Nil
- #rows : Array(GridTrack)
- #rows=(rows : Array(GridTrack))
Constructor methods inherited from class Opal::UI::Control
new
new
Instance methods inherited from module Opal::UI::InputHookable
custom_inputs=(custom_inputs : Bool)
custom_inputs=,
custom_inputs? : Bool
custom_inputs?,
default_input_proc : Proc(InputEvent, Bool) | Nil
default_input_proc,
default_input_proc=(default_input_proc : Proc(InputEvent, Bool) | Nil)
default_input_proc=,
fallback_to_defaults!(enabled : Bool = true) : self
fallback_to_defaults!,
fallback_to_defaults=(fallback_to_defaults : Bool)
fallback_to_defaults=,
fallback_to_defaults? : Bool
fallback_to_defaults?,
focus : self
focus,
focused=(focused : Bool)
focused=,
focused? : Bool
focused?,
handle_default_input(event : InputEvent) : Bool
handle_default_input,
handle_input(event : InputEvent) : Bool
handle_input,
handle_key(key : Terminal::KeyEvent) : Bool
handle_key,
handle_mouse(event : Terminal::MouseEvent) : Bool
handle_mouse,
input_hook : Proc(InputEvent, Bool) | Nil
input_hook,
input_hook=(input_hook : Proc(InputEvent, Bool) | Nil)
input_hook=,
on_input(&block : self, InputEvent -> Bool) : self
on_input,
puppet(&block : self, InputEvent -> Bool) : self
puppet,
reset_inputs : self
reset_inputs,
setup_default_inputs : Nil
setup_default_inputs,
unfocus : self
unfocus,
use_custom_inputs!(enabled : Bool = true) : self
use_custom_inputs!
Instance methods inherited from class Opal::UI::Element
add_class(name : String) : self
add_class,
children : Array(Element)
children,
classes : Set(String)
classes,
classes=(classes : Set(String))
classes=,
has_class?(name : String) : Bool
has_class?,
id : String | Nil
id,
id=(id : String | Nil)
id=,
preferred_print_size(available_w : Int32) : Tuple(Int32, Int32)
preferred_print_size,
preferred_size(available_w : Int32, available_h : Int32) : Tuple(Int32, Int32)
preferred_size,
print(io : IO = STDOUT, width : Int32 | Nil = nil, color : Bool | Nil = nil, theme : Theme | Nil = nil) : Nil
print,
query(selector : String) : Array(Element)query(klass : T.class) : Array(T) forall T query, query_one(selector : String) : Element
query_one(klass : T.class) : T forall T query_one, query_one?(selector : String) : Element | Nil
query_one?(klass : T.class) : T | Nil forall T query_one?, remove_class(name : String) : self remove_class, render(buffer : Buffer, x : Int32, y : Int32, width : Int32, height : Int32) : Nil render, render_print(buffer : Buffer, width : Int32, height : Int32) : Nil render_print, to_print_s(width : Int32 | Nil = nil, color : Bool | Nil = nil, theme : Theme | Nil = nil) : String to_print_s, to_string(width : Int32 | Nil = nil, color : Bool | Nil = nil, theme : Theme | Nil = nil) : String to_string
Instance methods inherited from module Opal::UI::Themable
current_theme : Theme
current_theme,
style(&block : self -> Nil) : self
style,
theme : Theme | Nil
theme,
theme=(theme : Theme | Nil)
theme=,
with_theme(new_theme : Theme | Symbol | String) : self
with_theme
Constructor Detail
Instance Method Detail
Adds child element to specific grid coordinate with optional spans
Adds child placing it automatically in the next open cell
Returns child elements for hierarchical tree traversal and DOM querying
Computes pixel column widths given available width
Computes pixel row heights given available height
Default key event handler. Override in subclasses if not using @default_input_proc.
Default mouse event handler. Override in subclasses if not using @default_input_proc.