module Ncurses

Constants

COLOR_DEFAULT
KEY_CANCEL
KEY_ENTER
KEY_TAB
MAX_PAIRS
NUM_COLORS

Public Class Methods

color!(name, value) click to toggle source
# File lib/sup/colormap.rb, line 7
def self.color! name, value
  const_set "COLOR_#{name.to_s.upcase}", value
end
cols() click to toggle source
# File lib/sup/util/ncurses.rb, line 190
def cols
  lame, lamer = [], []
  stdscr.getmaxyx lame, lamer
  lamer.first
end
curx() click to toggle source
# File lib/sup/util/ncurses.rb, line 196
def curx
  lame, lamer = [], []
  stdscr.getyx lame, lamer
  lamer.first
end
mutex() click to toggle source
# File lib/sup/util/ncurses.rb, line 241
def mutex; @mutex ||= Mutex.new; end
prepare_form_driver() click to toggle source

Create replacement wrapper for form_driver_w (), which is not (yet) a standard function in ncurses. Some systems (Mac OS X) does not have a working form_driver that accepts wide chars. We are just falling back to form_driver, expect problems.

# File lib/sup/util/ncurses.rb, line 205
  def prepare_form_driver
    if not defined? Form.form_driver_w
      warn "Your Ncursesw does not have a form_driver_w function (wide char aware), "             "non-ASCII chars may not work on your system."
      Form.module_eval "        def form_driver_w form, status, c
          form_driver form, c
        end
        module_function :form_driver_w
        module DriverHelpers
          def form_driver c
            if !c.dumb? && c.printable?
              c.each_byte do |code|
                Ncurses::Form.form_driver @form, code
              end
            else
              Ncurses::Form.form_driver @form, c.code
            end
          end
        end
", __FILE__, __LINE__ + 1
    end # if not defined? Form.form_driver_w
    if not defined? Ncurses.get_wch
      warn "Your Ncursesw does not have a get_wch function (wide char aware), "             "non-ASCII chars may not work on your system."
      Ncurses.module_eval "        def get_wch
          c = getch
          c == Ncurses::ERR ? [c, 0] : [Ncurses::OK, c]
        end
        module_function :get_wch
", __FILE__, __LINE__ + 1
      CharCode.dumb!
    end # if not defined? Ncurses.get_wch
  end
rows() click to toggle source
# File lib/sup/util/ncurses.rb, line 184
def rows
  lame, lamer = [], []
  stdscr.getmaxyx lame, lamer
  lame.first
end
sync(&b;) click to toggle source
# File lib/sup/util/ncurses.rb, line 242
def sync &b; mutex.synchronize(&b); end

Private Instance Methods

cols() click to toggle source
# File lib/sup/util/ncurses.rb, line 190
def cols
  lame, lamer = [], []
  stdscr.getmaxyx lame, lamer
  lamer.first
end
curx() click to toggle source
# File lib/sup/util/ncurses.rb, line 196
def curx
  lame, lamer = [], []
  stdscr.getyx lame, lamer
  lamer.first
end
mutex() click to toggle source
# File lib/sup/util/ncurses.rb, line 241
def mutex; @mutex ||= Mutex.new; end
prepare_form_driver() click to toggle source

Create replacement wrapper for form_driver_w (), which is not (yet) a standard function in ncurses. Some systems (Mac OS X) does not have a working form_driver that accepts wide chars. We are just falling back to form_driver, expect problems.

# File lib/sup/util/ncurses.rb, line 205
  def prepare_form_driver
    if not defined? Form.form_driver_w
      warn "Your Ncursesw does not have a form_driver_w function (wide char aware), "             "non-ASCII chars may not work on your system."
      Form.module_eval "        def form_driver_w form, status, c
          form_driver form, c
        end
        module_function :form_driver_w
        module DriverHelpers
          def form_driver c
            if !c.dumb? && c.printable?
              c.each_byte do |code|
                Ncurses::Form.form_driver @form, code
              end
            else
              Ncurses::Form.form_driver @form, c.code
            end
          end
        end
", __FILE__, __LINE__ + 1
    end # if not defined? Form.form_driver_w
    if not defined? Ncurses.get_wch
      warn "Your Ncursesw does not have a get_wch function (wide char aware), "             "non-ASCII chars may not work on your system."
      Ncurses.module_eval "        def get_wch
          c = getch
          c == Ncurses::ERR ? [c, 0] : [Ncurses::OK, c]
        end
        module_function :get_wch
", __FILE__, __LINE__ + 1
      CharCode.dumb!
    end # if not defined? Ncurses.get_wch
  end
rows() click to toggle source
# File lib/sup/util/ncurses.rb, line 184
def rows
  lame, lamer = [], []
  stdscr.getmaxyx lame, lamer
  lame.first
end
sync(&b;) click to toggle source
# File lib/sup/util/ncurses.rb, line 242
def sync &b; mutex.synchronize(&b); end