Class: Cura::Termbox::Adapter

Inherits:
Adapter
  • Object
show all
Defined in:
lib/cura/termbox/adapter.rb

Overview

Cura adapter for Termbox.

Instance Method Summary collapse

Instance Method Details

#cleanupObject



67
68
69
70
71
# File 'lib/cura/termbox/adapter.rb', line 67

def cleanup
  ::Termbox.tb_shutdown

  super
end

#clearObject



59
60
61
# File 'lib/cura/termbox/adapter.rb', line 59

def clear
  ::Termbox.tb_clear
end

#hide_cursorObject



77
78
79
# File 'lib/cura/termbox/adapter.rb', line 77

def hide_cursor
  ::Termbox.tb_set_cursor(::Termbox::TB_HIDE_CURSOR, ::Termbox::TB_HIDE_CURSOR)
end

#peek_event(milliseconds) ⇒ Object



88
89
90
91
92
93
# File 'lib/cura/termbox/adapter.rb', line 88

def peek_event(milliseconds)
  event = ::Termbox::Event.new
  ::Termbox.tb_peek_event(event, milliseconds)

  convert_termbox_event_to_cura_event(event)
end

#poll_eventObject



81
82
83
84
85
86
# File 'lib/cura/termbox/adapter.rb', line 81

def poll_event
  event = ::Termbox::Event.new
  ::Termbox.tb_poll_event(event)

  convert_termbox_event_to_cura_event(event)
end

#presentObject



63
64
65
# File 'lib/cura/termbox/adapter.rb', line 63

def present
  ::Termbox.tb_present
end

#set_cursor(x, y) ⇒ Object



73
74
75
# File 'lib/cura/termbox/adapter.rb', line 73

def set_cursor(x, y)
  ::Termbox.tb_set_cursor(x, y)
end

#setupObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/cura/termbox/adapter.rb', line 41

def setup
  case ::Termbox.tb_init
    when ::Termbox::TB_EUNSUPPORTED_TERMINAL then raise Termbox::Error::UnsupportedTerminal
    when ::Termbox::TB_EFAILED_TO_OPEN_TTY   then raise Termbox::Error::FailedToOpenTTY
    when ::Termbox::TB_EPIPE_TRAP_ERROR      then raise Termbox::Error::PipeTrapError
  end

  if defined?(::Termbox::TB_INPUT_MOUSE) # TODO: I don't like this =[
    ::Termbox.tb_select_input_mode(::Termbox::TB_INPUT_ESC | ::Termbox::TB_INPUT_MOUSE)
  else
    ::Termbox.tb_select_input_mode(::Termbox::TB_INPUT_ESC)
  end
  # ::Termbox.tb_select_output_mode(::Termbox::TB_OUTPUT_216)
  ::Termbox.tb_select_output_mode(::Termbox::TB_OUTPUT_256)

  super
end