class
Opal::UI::RadioSet
- Opal::UI::RadioSet
- Opal::UI::Control
- Opal::UI::Element
- Reference
- Object
Overview
Group container for mutually exclusive radio choices inspired by Python Textual's RadioSet. Features arrow key navigation, space/enter activation, mouse clicks, and custom glyph swaps.
Defined in:
opal/ui/components/radio_set.crConstructors
- .new(items : Array(String | RadioButton), selected_index : Int32 | Nil = 0, horizontal : Bool = false, disabled : Bool = false, on_change : Proc(Int32, String, Nil) | Nil = nil)
- .new(items : Array(String | RadioButton), selected_index : Int32 | Nil = 0, horizontal : Bool = false, disabled : Bool = false, &block : Int32, String -> Nil) : RadioSet
Instance Method Summary
-
#active_border_fg : Color | Nil
Manipulable theme properties
-
#active_border_fg=(active_border_fg : Color | Nil)
Manipulable theme properties
- #buttons : Array(RadioButton)
- #buttons=(buttons : Array(RadioButton))
-
#cursor : Int32
Focused index within the radio set
-
#cursor=(cursor : Int32)
Focused index within the radio set
- #disabled=(disabled : Bool)
- #disabled? : Bool
-
#handle_key(event : Terminal::KeyEvent) : Bool
Default key event handler.
-
#handle_mouse(event : Terminal::MouseEvent) : Bool
Default mouse event handler.
- #horizontal=(horizontal : Bool)
- #horizontal? : Bool
- #item_spacing : Int32
- #item_spacing=(item_spacing : Int32)
- #on_change : Proc(Int32, String, Nil) | Nil
- #on_change(&block : Int32, String -> Nil) : self
- #on_change=(on_change : Proc(Int32, String, Nil) | Nil)
- #preferred_size(available_w : Int32, available_h : Int32) : Tuple(Int32, Int32)
- #render(buffer : Buffer, x : Int32, y : Int32, width : Int32, height : Int32) : Nil
- #select_by_label(label : String) : self
-
#select_index(idx : Int32, fire_callback : Bool = true) : self
Selects radio button at given index, deselecting others
-
#selected_index : Int32 | Nil
Returns the index of the currently selected button, or nil if none
-
#selected_label : String | Nil
Returns the label of the currently selected button, or nil if none
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
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.
Selects radio button at given index, deselecting others
Returns the index of the currently selected button, or nil if none
Returns the label of the currently selected button, or nil if none