class
Opal::UI::Palette
- Opal::UI::Palette
- Opal::UI::Control
- Opal::UI::Element
- Reference
- Object
Overview
Interactive Palette UI control supporting Named and Indexed modes,
color reordering via [ and ], min/max constraints, inline renaming,
and seamless embedded ColorPicker integration.
Defined in:
opal/ui/components/palette.crConstructors
-
.indexed(colors : Array(Color), min_colors : Int32 | Nil = nil, max_colors : Int32 | Nil = nil, allow_add : Bool = true, allow_remove : Bool = true, allow_reorder : Bool = true, picker_mode : ColorMode = ColorMode::RGB, picker_layout : ColorPickerLayout = ColorPickerLayout::Sliders, show_picker_alpha : Bool = false, show_picker_harmonies : Bool = true, title : String = "Indexed Palette", width : Int32 | Nil = 54, height : Int32 | Nil = 16) : Palette
Convenience constructor for indexed mode from Array(Color)
-
.named(entries : Hash(String, Color), allow_add : Bool = true, allow_rename : Bool = true, allow_remove : Bool = true, picker_mode : ColorMode = ColorMode::RGB, picker_layout : ColorPickerLayout = ColorPickerLayout::Sliders, show_picker_alpha : Bool = false, show_picker_harmonies : Bool = true, title : String = "Named Palette", width : Int32 | Nil = 54, height : Int32 | Nil = 16) : Palette
Convenience constructor for named mode from Hash(String, Color)
- .new(model : PaletteModel = PaletteModel.new, picker_mode : ColorMode = ColorMode::RGB, picker_layout : ColorPickerLayout = ColorPickerLayout::Sliders, show_picker_alpha : Bool = false, show_picker_harmonies : Bool = true, title : String = "Color Palette", width : Int32 | Nil = 54, height : Int32 | Nil = 16)
Instance Method Summary
- #active_border_color : Color
- #active_border_color=(active_border_color : Color)
-
#add_entry : Nil
Adds a new color or entry
- #border_color : Color
- #border_color=(border_color : Color)
-
#cancel_color_edit : Nil
Cancels color editing without saving
- #cancel_rename : Nil
-
#color_picker : ColorPicker
Embedded ColorPicker state
-
#confirm_color_edit(color : Color) : Nil
Confirms the edited color from ColorPicker back to the Palette
- #confirm_rename : Nil
- #confirmed=(confirmed : Bool)
- #confirmed? : Bool
- #cursor : Int32
- #cursor=(cursor : Int32)
-
#delete_selected : Nil
Removes selected entry
- #editing_color=(editing_color : Bool)
- #editing_color? : Bool
-
#handle_key(key : Terminal::KeyEvent) : Bool
Default key event handler.
-
#handle_mouse(event : Terminal::MouseEvent) : Bool
Default mouse event handler.
- #height : Int32
- #height=(height : Int32)
- #last_h : Int32
- #last_h=(last_h : Int32)
- #last_w : Int32
- #last_w=(last_w : Int32)
- #last_x : Int32
- #last_x=(last_x : Int32)
- #last_y : Int32
- #last_y=(last_y : Int32)
- #model : PaletteModel
- #model=(model : PaletteModel)
-
#move_cursor(delta : Int32) : Nil
Moves cursor with bounds checking and triggers selection callback
-
#on_change : Proc(PaletteModel, Nil) | Nil
Callbacks
-
#on_change=(on_change : Proc(PaletteModel, Nil) | Nil)
Callbacks
- #on_confirm : Proc(PaletteModel, Nil) | Nil
- #on_confirm=(on_confirm : Proc(PaletteModel, Nil) | Nil)
- #on_select : Proc(Int32, Color, String | Nil, Nil) | Nil
- #on_select=(on_select : Proc(Int32, Color, String | Nil, Nil) | Nil)
-
#open_color_picker : Nil
Begins editing the currently selected color with the ColorPicker
- #picker_layout : ColorPickerLayout
- #picker_layout=(picker_layout : ColorPickerLayout)
- #picker_mode : ColorMode
- #picker_mode=(picker_mode : ColorMode)
- #preferred_size(available_w : Int32, available_h : Int32) : Tuple(Int32, Int32)
- #rename_buffer : String
- #rename_buffer=(rename_buffer : String)
-
#renaming=(renaming : Bool)
Inline renaming state (Named mode)
-
#renaming? : Bool
Inline renaming state (Named mode)
- #render(buffer : Buffer, x : Int32, y : Int32, width : Int32, height : Int32) : Nil
- #render(buffer : Buffer) : Nil
- #set_cursor(idx : Int32) : Nil
- #show_border=(show_border : Bool)
- #show_border? : Bool
- #show_picker_alpha=(show_picker_alpha : Bool)
- #show_picker_alpha? : Bool
- #show_picker_harmonies=(show_picker_harmonies : Bool)
- #show_picker_harmonies? : Bool
-
#start_rename : Nil
Starts inline renaming
-
#swap_left : Nil
Swap selected color left/earlier (via
[key) -
#swap_right : Nil
Swap selected color right/later (via
]key) -
#title : String
Visual styling
-
#title=(title : String)
Visual styling
-
#width : Int32
Geometry cache
-
#width=(width : Int32)
Geometry cache
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
Convenience constructor for indexed mode from Array(Color)
Convenience constructor for named mode from Hash(String, Color)
Instance Method Detail
Confirms the edited color from ColorPicker back to the Palette
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.
Moves cursor with bounds checking and triggers selection callback