module LessCurse

The LessCurse module which gives you static access to your “Screen” and all the UI glory within it.

Constants

VERSION

Public Class Methods

close_screen() click to toggle source
# File lib/less_curse.rb, line 31
def self.close_screen
  FFI::NCurses.endwin
  # flushinp, delwin?
end
debug_msg(msg) click to toggle source
# File lib/less_curse.rb, line 65
def self.debug_msg msg
  logger.debug msg
end
enter_loop!() click to toggle source
# File lib/less_curse.rb, line 41
def self.enter_loop!
  loop do
    break if !handle_input
    screen.repaint
  end
end
handle_input() click to toggle source

Read from keyboard, handle keypress oneself or dispatch to focused widget.

# File lib/less_curse.rb, line 50
def self.handle_input
  key = FFI::NCurses.wgetch FFI::NCurses::stdscr
  debug_msg "key press: #{key} / keyname: #{FFI::NCurses::keyname key} / #{FFI::NCurses::KEY_CTRL_Q}"

  # That will let us break out of the loop
  return false if key == FFI::NCurses::KEY_CTRL_Q

  if @@actions[key]
    # Global actions first
    @@actions[key].call
  else
    screen.focused_widget.handle_input key
  end
end
log_to!(file) click to toggle source
# File lib/less_curse.rb, line 73
def self.log_to! file
  @@logger = Logger.new(file)
end
logger() click to toggle source
# File lib/less_curse.rb, line 69
def self.logger
  @@logger ||= LessCurse::NullLogger.new
end
screen() click to toggle source
# File lib/less_curse.rb, line 23
def self.screen
  @@screen ||= Screen.new
end
show_screen() click to toggle source
# File lib/less_curse.rb, line 27
def self.show_screen
  @@screen.show
end
window(rectangle) click to toggle source
# File lib/less_curse.rb, line 36
def self.window rectangle
  FFI::NCurses.newwin rectangle.size.height, rectangle.size.width,
    rectangle.position.y, rectangle.position.x
end