Class: TuiTui::Help
Overview
Key-binding cheat sheet modal.
Constant Summary collapse
- COLGAP =
2
Constants inherited from Modal
Instance Method Summary collapse
- #draw(canvas, size) ⇒ Object
- #handle(_key) ⇒ Object
-
#handle_mouse(event) ⇒ Object
Any click dismisses the sheet, like any key does.
-
#initialize(title, entries, theme: Theme::DEFAULT) ⇒ Help
constructor
A new instance of Help.
Constructor Details
#initialize(title, entries, theme: Theme::DEFAULT) ⇒ Help
Returns a new instance of Help.
12 13 14 15 16 |
# File 'lib/tui_tui/help.rb', line 12 def initialize(title, entries, theme: Theme::DEFAULT) @title = DisplayText.new(title) @entries = entries.map { |keys, desc| [DisplayText.new(keys), DisplayText.new(desc)] } @theme = theme end |
Instance Method Details
#draw(canvas, size) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/tui_tui/help.rb', line 23 def draw(canvas, size) key_w = @entries.map { |keys, _| keys.width }.max || 0 body_w = @entries.map { |keys, desc| keys.width + COLGAP + desc.width }.max || 0 inner = [@title.width, body_w].max rect, col = panel(canvas, inner: inner, body_rows: @entries.size + 2) canvas.text(rect.row + 1, col, @title.truncate(inner), theme.title) draw_entries(canvas, rect.row + 3, col, key_w) canvas end |
#handle(_key) ⇒ Object
18 |
# File 'lib/tui_tui/help.rb', line 18 def handle(_key) = :close |
#handle_mouse(event) ⇒ Object
Any click dismisses the sheet, like any key does.
21 |
# File 'lib/tui_tui/help.rb', line 21 def handle_mouse(event) = event.action == :press ? :close : nil |