Module: Fatty::Curses
- Defined in:
- lib/fatty/curses/patch.rb,
lib/fatty/curses/context.rb,
lib/fatty/curses/key_decoder.rb,
lib/fatty/curses/curses_coder.rb,
lib/fatty/curses/event_source.rb,
lib/fatty/curses/window_styling.rb
Defined Under Namespace
Modules: MouseConstants, WindowStyling Classes: Context, EventSource, KeyDecoder
Constant Summary collapse
- COMMON_KEYNAMES =
These come from special handling in KeyDecoder#fallback_decode.
%i[ enter escape return space ].freeze
- CURSES_TO_EVENT =
{ # Special case for TAB. Curses::KEY_CTRL_I may not get defined on all # platforms. 9 => Fatty::KeyEvent.new(key: :tab, raw: 9), ::Curses::KEY_RESIZE => Fatty::KeyEvent.new(key: :resize, raw: ::Curses::KEY_RESIZE), ::Curses::KEY_BTAB => Fatty::KeyEvent.new(key: :tab, shift: true, raw: ::Curses::KEY_BTAB), ::Curses::KEY_BACKSPACE => Fatty::KeyEvent.new(key: :backspace, raw: ::Curses::KEY_BACKSPACE), ::Curses::KEY_F1 => Fatty::KeyEvent.new(key: :f1, raw: ::Curses::KEY_F1), ::Curses::KEY_F13 => Fatty::KeyEvent.new(key: :f1, shift: true, raw: ::Curses::KEY_F13), ::Curses::KEY_F25 => Fatty::KeyEvent.new(key: :f1, ctrl: true, raw: ::Curses::KEY_F25), ::Curses::KEY_F37 => Fatty::KeyEvent.new(key: :f1, shift: true, ctrl: true, raw: ::Curses::KEY_F37), ::Curses::KEY_F49 => Fatty::KeyEvent.new(key: :f1, meta: true, raw: ::Curses::KEY_F49), ::Curses::KEY_F61 => Fatty::KeyEvent.new(key: :f1, shift: true, meta: true, raw: ::Curses::KEY_F61), ::Curses::KEY_F2 => Fatty::KeyEvent.new(key: :f2, raw: ::Curses::KEY_F2), ::Curses::KEY_F14 => Fatty::KeyEvent.new(key: :f2, shift: true, raw: ::Curses::KEY_F14), ::Curses::KEY_F26 => Fatty::KeyEvent.new(key: :f2, ctrl: true, raw: ::Curses::KEY_F26), ::Curses::KEY_F38 => Fatty::KeyEvent.new(key: :f2, shift: true, ctrl: true, raw: ::Curses::KEY_F38), ::Curses::KEY_F50 => Fatty::KeyEvent.new(key: :f2, meta: true, raw: ::Curses::KEY_F50), ::Curses::KEY_F62 => Fatty::KeyEvent.new(key: :f2, shift: true, meta: true, raw: ::Curses::KEY_F62), ::Curses::KEY_F3 => Fatty::KeyEvent.new(key: :f3, raw: ::Curses::KEY_F3), ::Curses::KEY_F15 => Fatty::KeyEvent.new(key: :f3, shift: true, raw: ::Curses::KEY_F15), ::Curses::KEY_F27 => Fatty::KeyEvent.new(key: :f3, ctrl: true, raw: ::Curses::KEY_F27), ::Curses::KEY_F39 => Fatty::KeyEvent.new(key: :f3, shift: true, ctrl: true, raw: ::Curses::KEY_F39), ::Curses::KEY_F51 => Fatty::KeyEvent.new(key: :f3, meta: true, raw: ::Curses::KEY_F51), ::Curses::KEY_F63 => Fatty::KeyEvent.new(key: :f3, shift: true, meta: true, raw: ::Curses::KEY_F63), ::Curses::KEY_F4 => Fatty::KeyEvent.new(key: :f4, raw: ::Curses::KEY_F4), ::Curses::KEY_F16 => Fatty::KeyEvent.new(key: :f4, shift: true, raw: ::Curses::KEY_F16), ::Curses::KEY_F28 => Fatty::KeyEvent.new(key: :f4, ctrl: true, raw: ::Curses::KEY_F28), ::Curses::KEY_F40 => Fatty::KeyEvent.new(key: :f4, shift: true, ctrl: true, raw: ::Curses::KEY_F40), ::Curses::KEY_F52 => Fatty::KeyEvent.new(key: :f4, meta: true, raw: ::Curses::KEY_F52), # KEY_DL: 328 => Fatty::KeyEvent.new(key: :f4, shift: true, meta: true, raw: KEY_DL: 328), ::Curses::KEY_F5 => Fatty::KeyEvent.new(key: :f5, raw: ::Curses::KEY_F5), ::Curses::KEY_F17 => Fatty::KeyEvent.new(key: :f5, shift: true, raw: ::Curses::KEY_F17), ::Curses::KEY_F29 => Fatty::KeyEvent.new(key: :f5, ctrl: true, raw: ::Curses::KEY_F29), ::Curses::KEY_F41 => Fatty::KeyEvent.new(key: :f5, shift: true, ctrl: true, raw: ::Curses::KEY_F41), ::Curses::KEY_F53 => Fatty::KeyEvent.new(key: :f5, meta: true, raw: ::Curses::KEY_F53), # KEY_IL: 329 => Fatty::KeyEvent.new(key: :f5, shift: true, meta: true, raw: KEY_IL: 329), ::Curses::KEY_F6 => Fatty::KeyEvent.new(key: :f6, raw: ::Curses::KEY_F6), ::Curses::KEY_F18 => Fatty::KeyEvent.new(key: :f6, shift: true, raw: ::Curses::KEY_F18), ::Curses::KEY_F30 => Fatty::KeyEvent.new(key: :f6, ctrl: true, raw: ::Curses::KEY_F30), ::Curses::KEY_F42 => Fatty::KeyEvent.new(key: :f6, shift: true, ctrl: true, raw: ::Curses::KEY_F42), ::Curses::KEY_F54 => Fatty::KeyEvent.new(key: :f6, meta: true, raw: ::Curses::KEY_F54), # 330 duplicates the :delete key # KEY_DC: 330 => Fatty::KeyEvent.new(key: :f6, shift: true, meta: true, raw: 330 duplicates the :delete key # KEY_DC: 330), ::Curses::KEY_F7 => Fatty::KeyEvent.new(key: :f7, raw: ::Curses::KEY_F7), ::Curses::KEY_F19 => Fatty::KeyEvent.new(key: :f7, shift: true, raw: ::Curses::KEY_F19), ::Curses::KEY_F31 => Fatty::KeyEvent.new(key: :f7, ctrl: true, raw: ::Curses::KEY_F31), ::Curses::KEY_F43 => Fatty::KeyEvent.new(key: :f7, shift: true, ctrl: true, raw: ::Curses::KEY_F43), ::Curses::KEY_F55 => Fatty::KeyEvent.new(key: :f7, meta: true, raw: ::Curses::KEY_F55), # 331 duplicates the :insert key # KEY_IC: 331 => Fatty::KeyEvent.new(key: :f7, shift: true, meta: true), ::Curses::KEY_F8 => Fatty::KeyEvent.new(key: :f8, raw: ::Curses::KEY_F8), ::Curses::KEY_F20 => Fatty::KeyEvent.new(key: :f8, shift: true, raw: ::Curses::KEY_F20), ::Curses::KEY_F32 => Fatty::KeyEvent.new(key: :f8, ctrl: true, raw: ::Curses::KEY_F32), ::Curses::KEY_F44 => Fatty::KeyEvent.new(key: :f8, shift: true, ctrl: true, raw: ::Curses::KEY_F44), ::Curses::KEY_F56 => Fatty::KeyEvent.new(key: :f8, meta: true, raw: ::Curses::KEY_F56), # KEY_EIC: 332 => Fatty::KeyEvent.new(key: :f8, shift: true, meta: true), ::Curses::KEY_F9 => Fatty::KeyEvent.new(key: :f9, raw: ::Curses::KEY_F9), ::Curses::KEY_F21 => Fatty::KeyEvent.new(key: :f9, shift: true, raw: ::Curses::KEY_F21), ::Curses::KEY_F33 => Fatty::KeyEvent.new(key: :f9, ctrl: true, raw: ::Curses::KEY_F33), ::Curses::KEY_F45 => Fatty::KeyEvent.new(key: :f9, shift: true, ctrl: true, raw: ::Curses::KEY_F45), ::Curses::KEY_F57 => Fatty::KeyEvent.new(key: :f9, meta: true, raw: ::Curses::KEY_F57), # KEY_CLEAR: 333 => Fatty::KeyEvent.new(key: :f9, shift: true, meta: true), ::Curses::KEY_F10 => Fatty::KeyEvent.new(key: :f10, raw: ::Curses::KEY_F10), ::Curses::KEY_F22 => Fatty::KeyEvent.new(key: :f10, shift: true, raw: ::Curses::KEY_F22), ::Curses::KEY_F34 => Fatty::KeyEvent.new(key: :f10, ctrl: true, raw: ::Curses::KEY_F34), ::Curses::KEY_F46 => Fatty::KeyEvent.new(key: :f10, shift: true, ctrl: true, raw: ::Curses::KEY_F46), ::Curses::KEY_F58 => Fatty::KeyEvent.new(key: :f10, meta: true, raw: ::Curses::KEY_F58), # KEY_EOS: 334 => Fatty::KeyEvent.new(key: :f10, shift: true, meta: true), ::Curses::KEY_F11 => Fatty::KeyEvent.new(key: :f11, raw: ::Curses::KEY_F11), ::Curses::KEY_F23 => Fatty::KeyEvent.new(key: :f11, shift: true, raw: ::Curses::KEY_F23), ::Curses::KEY_F35 => Fatty::KeyEvent.new(key: :f11, ctrl: true, raw: ::Curses::KEY_F35), ::Curses::KEY_F47 => Fatty::KeyEvent.new(key: :f11, shift: true, ctrl: true, raw: ::Curses::KEY_F47), ::Curses::KEY_F59 => Fatty::KeyEvent.new(key: :f11, meta: true, raw: ::Curses::KEY_F59), # KEY_EOL: 335 => Fatty::KeyEvent.new(key: :f11, shift: true, meta: true), ::Curses::KEY_F12 => Fatty::KeyEvent.new(key: :f12, raw: ::Curses::KEY_F12), ::Curses::KEY_F24 => Fatty::KeyEvent.new(key: :f12, shift: true, raw: ::Curses::KEY_F24), ::Curses::KEY_F36 => Fatty::KeyEvent.new(key: :f12, ctrl: true, raw: ::Curses::KEY_F36), ::Curses::KEY_F48 => Fatty::KeyEvent.new(key: :f12, shift: true, ctrl: true, raw: ::Curses::KEY_F48), ::Curses::KEY_F60 => Fatty::KeyEvent.new(key: :f12, meta: true, raw: ::Curses::KEY_F60), # 336 duplicates the :down key # KEY_SF: 336 => Fatty::KeyEvent.new(key: :f12, shift: true, meta: true), ::Curses::KEY_IC => Fatty::KeyEvent.new(key: :insert, raw: ::Curses::KEY_IC), ::Curses::KEY_SIC => Fatty::KeyEvent.new(key: :insert, shift: true, raw: ::Curses::KEY_SIC), # 550 => Fatty::KeyEvent.new(key: :insert, meta: true, raw: 550), # 551 => Fatty::KeyEvent.new(key: :insert, shift: true, meta: true), # 552 => Fatty::KeyEvent.new(key: :insert, ctrl: true), # 553 => Fatty::KeyEvent.new(key: :insert, shift: true, ctrl: true), ::Curses::KEY_DC => Fatty::KeyEvent.new(key: :delete, raw: ::Curses::KEY_DC), ::Curses::KEY_SDC => Fatty::KeyEvent.new(key: :delete, shift: true, raw: ::Curses::KEY_SDC), # 531 => Fatty::KeyEvent.new(key: :delete, meta: true), # 532 => Fatty::KeyEvent.new(key: :delete, shift: true, meta: true), # 533 => Fatty::KeyEvent.new(key: :delete, ctrl: true), # 534 => Fatty::KeyEvent.new(key: :delete, shift: true, ctrl: true), ::Curses::KEY_HOME => Fatty::KeyEvent.new(key: :home, raw: ::Curses::KEY_HOME), ::Curses::KEY_SHOME => Fatty::KeyEvent.new(key: :home, shift: true, raw: ::Curses::KEY_SHOME), # 545 => Fatty::KeyEvent.new(key: :home, meta: true), # 546 => Fatty::KeyEvent.new(key: :home, shift: true, meta: true), # 547 => Fatty::KeyEvent.new(key: :home, ctrl: true), # 548 => Fatty::KeyEvent.new(key: :home, shift: true, ctrl: true), ::Curses::KEY_END => Fatty::KeyEvent.new(key: :end, raw: ::Curses::KEY_END), ::Curses::KEY_SEND => Fatty::KeyEvent.new(key: :end, shift: true, raw: ::Curses::KEY_SEND), # 540 => Fatty::KeyEvent.new(key: :end, meta: true), # 541 => Fatty::KeyEvent.new(key: :end, shift: true, meta: true), # 542 => Fatty::KeyEvent.new(key: :end, ctrl: true), # 543 => Fatty::KeyEvent.new(key: :end, shift: true, ctrl: true), ::Curses::KEY_PPAGE => Fatty::KeyEvent.new(key: :page_up, raw: ::Curses::KEY_PPAGE), ::Curses::KEY_SPREVIOUS => Fatty::KeyEvent.new(key: :page_up, shift: true, raw: ::Curses::KEY_SPREVIOUS), # 565 => Fatty::KeyEvent.new(key: :page_up, meta: true), # 566 => Fatty::KeyEvent.new(key: :page_up, shift: true, meta: true), # 567 => Fatty::KeyEvent.new(key: :page_up, ctrl: true), # 568 => Fatty::KeyEvent.new(key: :page_up, shift: true, ctrl: true), ::Curses::KEY_NPAGE => Fatty::KeyEvent.new(key: :page_down, raw: ::Curses::KEY_NPAGE), ::Curses::KEY_SNEXT => Fatty::KeyEvent.new(key: :page_down, shift: true, raw: ::Curses::KEY_SNEXT), # 560 => Fatty::KeyEvent.new(key: :page_down, meta: true), # 561 => Fatty::KeyEvent.new(key: :page_down, shift: true, meta: true), # 562 => Fatty::KeyEvent.new(key: :page_down, ctrl: true), # 563 => Fatty::KeyEvent.new(key: :page_down, shift: true, ctrl: true), ::Curses::KEY_DOWN => Fatty::KeyEvent.new(key: :down, raw: ::Curses::KEY_DOWN), ::Curses::KEY_SF => Fatty::KeyEvent.new(key: :down, shift: true, raw: ::Curses::KEY_SF), # 535 => Fatty::KeyEvent.new(key: :down, meta: true), # 536 => Fatty::KeyEvent.new(key: :down, shift: true, meta: true), # 537 => Fatty::KeyEvent.new(key: :down, ctrl: true), # 538 => Fatty::KeyEvent.new(key: :down, shift: true, ctrl: true), ::Curses::KEY_UP => Fatty::KeyEvent.new(key: :up, raw: ::Curses::KEY_UP), ::Curses::KEY_SR => Fatty::KeyEvent.new(key: :up, shift: true, raw: ::Curses::KEY_SR), # 576 => Fatty::KeyEvent.new(key: :up, meta: true), # 577 => Fatty::KeyEvent.new(key: :up, shift: true, meta: true), # 578 => Fatty::KeyEvent.new(key: :up, ctrl: true), # 579 => Fatty::KeyEvent.new(key: :up, shift: true, ctrl: true), ::Curses::KEY_LEFT => Fatty::KeyEvent.new(key: :left, raw: ::Curses::KEY_LEFT), ::Curses::KEY_SLEFT => Fatty::KeyEvent.new(key: :left, shift: true, raw: ::Curses::KEY_SLEFT), # 555 => Fatty::KeyEvent.new(key: :left, meta: true), # 556 => Fatty::KeyEvent.new(key: :left, shift: true, meta: true), # 557 => Fatty::KeyEvent.new(key: :left, ctrl: true), # 558 => Fatty::KeyEvent.new(key: :left, shift: true, ctrl: true), ::Curses::KEY_RIGHT => Fatty::KeyEvent.new(key: :right, raw: ::Curses::KEY_RIGHT), ::Curses::KEY_SRIGHT => Fatty::KeyEvent.new(key: :right, shift: true, raw: ::Curses::KEY_SRIGHT), # 570 => Fatty::KeyEvent.new(key: :right, meta: true), # 571 => Fatty::KeyEvent.new(key: :right, shift: true, meta: true), # 572 => Fatty::KeyEvent.new(key: :right, ctrl: true), # 573 => Fatty::KeyEvent.new(key: :right, shift: true, ctrl: true), }
Class Method Summary collapse
-
.valid_keynames ⇒ Object
After this list is read in, return an Array of the known key names.
Class Method Details
.valid_keynames ⇒ Object
After this list is read in, return an Array of the known key names.
532 533 534 535 536 537 |
# File 'lib/fatty/curses/curses_coder.rb', line 532 def self.valid_keynames ( CURSES_TO_EVENT.values.filter_map(&:key) + COMMON_KEYNAMES ).map(&:to_s).uniq.sort end |