lib/ncursesw.rb in ncursesw-1.2.4.3 vs lib/ncursesw.rb in ncursesw-1.4.0.0

- old
+ new

@@ -1,9 +1,10 @@ +# encoding: utf-8 # ncurses-ruby is a ruby module for accessing the FSF's ncurses library # (C) 2002, 2003, 2004 Tobias Peters <t-peters@users.berlios.de> # (C) 2004 Simon Kaczor <skaczor@cox.net> -# (C) 2005 Tobias Herzke +# (C) 2005 2011 Tobias Herzke # # This module is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. @@ -15,330 +16,9 @@ # # You should have received a copy of the GNU Lesser General Public # License along with this module; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# $Id: ncurses.rb,v 1.8 2009/05/03 10:37:54 t-peters Exp $ +# $Id: ncursesw.rb,v 1.1 2011-05-30 23:05:51 t-peters Exp $ require "ncursesw_bin.so" - - -# Ncurses constants with leading underscore -def Ncurses._XOPEN_CURSES - Ncurses::XOPEN_CURSES -end -def Ncurses._SUBWIN - Ncurses::SUBWIN -end -def Ncurses._ENDLINE - Ncurses::ENDLINE -end -def Ncurses._FULLWIN - Ncurses::FULLWIN -end -def Ncurses._SCROLLWIN - Ncurses::SCROLLWIN -end -def Ncurses._ISPAD - Ncurses::ISPAD -end -def Ncurses._HASMOVED - Ncurses::HASMOVED -end -def Ncurses._WRAPPED - Ncurses::WRAPPED -end -def Ncurses._NOCHANGE - Ncurses::NOCHANGE -end -def Ncurses._NEWINDEX - Ncurses::NEWINDEX -end - - -module Ncurses - module Destroy_checker; def destroyed?; @destroyed; end; end - class WINDOW - include Destroy_checker - def method_missing(name, *args) - name = name.to_s - if (name[0,2] == "mv") - test_name = name.dup - test_name[2,0] = "w" # insert "w" after"mv" - if (Ncurses.respond_to?(test_name)) - return Ncurses.send(test_name, self, *args) - end - end - test_name = "w" + name - if (Ncurses.respond_to?(test_name)) - return Ncurses.send(test_name, self, *args) - end - Ncurses.send(name, self, *args) - end - def respond_to?(name) - name = name.to_s - if (name[0,2] == "mv" && Ncurses.respond_to?("mvw" + name[2..-1])) - return true - end - Ncurses.respond_to?("w" + name) || Ncurses.respond_to?(name) - end - def del - Ncurses.delwin(self) - end - alias delete del - def WINDOW.new(*args) - Ncurses.newwin(*args) - end - end - class SCREEN - include Destroy_checker - def del - Ncurses.delscreen(self) - end - alias delete del - end - class MEVENT - attr_accessor :id, :x,:y,:z, :bstate - end - GETSTR_LIMIT = 1024 - - module Panel - class PANEL; end - end - - module Form - class FORM - attr_reader :user_object - - # This placeholder replaces the form_userptr function in curses - def user_object=(obj) - @user_object = obj - end - end - - class FIELD - attr_reader :user_object - - # This placeholder replaces the field_userptr function in curses - def user_object=(obj) - @user_object = obj - end - end - - class FIELDTYPE - end - end - - module Menu - class MENU - attr_reader :user_object - - # This placeholder replaces the menu_userptr function in curses - def user_object=(obj) - @user_object = obj - end - end - - class ITEM - attr_reader :user_object - - # This placeholder replaces the item_userptr function in curses - def user_object=(obj) - @user_object = obj - end - end - end -end -def Ncurses.inchnstr(str,n) - Ncurses.winchnstr(Ncurses.stdscr, str, n) -end -def Ncurses.inchstr(str) - Ncurses.winchstr(Ncurses.stdscr, str) -end -def Ncurses.mvinchnstr(y,x, str, n) - Ncurses.mvwinchnstr(Ncurses.stdscr, y,x, str, n) -end -def Ncurses.mvinchstr(y,x, str) - Ncurses.mvwinchstr(Ncurses.stdscr, y,x, str) -end -def Ncurses.mvwinchnstr(win, y,x, str, n) - if (Ncurses.wmove(win,y,x) == Ncurses::ERR) - Ncurses::ERR - else - Ncurses.winchnstr(win,str,n) - end -end -def Ncurses.mvwinchstr(win, y,x, str) - maxy = []; maxx = []; getmaxyx(win, maxy,maxx) - return Ncurses::ERR if (maxx[0] == Ncurses::ERR) - Ncurses.mvwinchnstr(win, y,x, str, maxx[0]+1) -end -def Ncurses.winchstr(win, str) - maxy = []; maxx = []; getmaxyx(win, maxy,maxx) - return Ncurses::ERR if (maxx[0] == Ncurses::ERR) - Ncurses.winchnstr(win, str, maxx[0]+1) -end - -def Ncurses.getnstr(str,n) - Ncurses.wgetnstr(Ncurses.stdscr, str, n) -end -def Ncurses.mvgetnstr(y,x, str, n) - Ncurses.mvwgetnstr(Ncurses.stdscr, y,x, str, n) -end -def Ncurses.mvwgetnstr(win, y,x, str, n) - if (Ncurses.wmove(win,y,x) == Ncurses::ERR) - Ncurses::ERR - else - Ncurses.wgetnstr(win,str,n) - end -end - -def Ncurses.innstr(str,n) - Ncurses.winnstr(Ncurses.stdscr, str, n) -end -def Ncurses.instr(str) - Ncurses.winstr(Ncurses.stdscr, str) -end -def Ncurses.mvinnstr(y,x, str, n) - Ncurses.mvwinnstr(Ncurses.stdscr, y,x, str, n) -end -def Ncurses.mvinstr(y,x, str) - Ncurses.mvwinstr(Ncurses.stdscr, y,x, str) -end -def Ncurses.mvwinnstr(win, y,x, str, n) - if (Ncurses.wmove(win,y,x) == Ncurses::ERR) - Ncurses::ERR - else - Ncurses.winnstr(win,str,n) - end -end -def Ncurses.mvwinstr(win, y,x, str) - maxy = []; maxx = []; getmaxyx(win, maxy,maxx) - return Ncurses::ERR if (maxx[0] == Ncurses::ERR) - Ncurses.mvwinnstr(win, y,x, str, maxx[0]+1) -end -def Ncurses.winstr(win, str) - maxy = []; maxx = []; getmaxyx(win, maxy,maxx) - return Ncurses::ERR if (maxx[0] == Ncurses::ERR) - Ncurses.winnstr(win, str, maxx[0]+1) -end - -def Ncurses.mouse_trafo(pY, pX, to_screen) - Ncurses.wmouse_trafo(Ncurses.stdscr, pY, pX, to_screen) -end - -def Ncurses.getcurx(win) - x = []; y = []; Ncurses.getyx(win, y,x); x[0] -end -def Ncurses.getcury(win) - x = []; y = []; Ncurses.getyx(win, y,x); y[0] -end -def Ncurses.getbegx(win) - x = []; y = []; Ncurses.getbegyx(win, y,x); x[0] -end -def Ncurses.getbegy(win) - x = []; y = []; Ncurses.getbegyx(win, y,x); y[0] -end -def Ncurses.getmaxx(win) - x = []; y = []; Ncurses.getmaxyx(win, y,x); x[0] -end -def Ncurses.getmaxy(win) - x = []; y = []; Ncurses.getmaxyx(win, y,x); y[0] -end -def Ncurses.getparx(win) - x = []; y = []; Ncurses.getparyx(win, y,x); x[0] -end -def Ncurses.getpary(win) - x = []; y = []; Ncurses.getparyx(win, y,x); y[0] -end -def Ncurses.erase - Ncurses.werase(Ncurses.stdscr) -end -def Ncurses.getstr(str) - Ncurses.getnstr(str, Ncurses::GETSTR_LIMIT) -end -def Ncurses.mvgetstr(y,x, str) - Ncurses.mvgetnstr(y,x, str, Ncurses::GETSTR_LIMIT) -end -def Ncurses.mvwgetstr(win, y,x, str) - Ncurses.mvwgetnstr(win, y,x, str, Ncurses::GETSTR_LIMIT) -end -def Ncurses.wgetstr(win, str) - Ncurses.wgetnstr(win, str, Ncurses::GETSTR_LIMIT) -end - -def Ncurses.scanw(format, result) - Ncurses.wscanw(Ncurses.stdscr, format, result) -end -def Ncurses.mvscanw(y,x, format, result) - Ncurses.mvwscanw(Ncurses.stdscr, y,x, format, result) -end -def Ncurses.mvwscanw(win, y,x, format, result) - if (Ncurses.wmove(win, y,x) == Ncurses::ERR) - Ncurses::ERR - else - Ncurses.wscanw(win, format, result) - end -end -def Ncurses.wscanw(win, format, result) - str = "" - if (Ncurses.wgetstr(win, str) == Ncurses::ERR) - Ncurses::ERR - else - require "scanf.rb" # Use ruby's implementation of scanf - result.replace(str.scanf(format)) - end -end - -def Ncurses.mvprintw(*args) - Ncurses.mvwprintw(Ncurses.stdscr, *args) -end -def Ncurses.mvwprintw(win, y,x, *args) - if (Ncurses.wmove(win,y,x) == Ncurses::ERR) - Ncurses::ERR - else - wprintw(win, *args) - end -end -def Ncurses.printw(*args) - Ncurses.wprintw(Ncurses.stdscr, *args) -end -def Ncurses.touchline(win, start, count) - Ncurses.wtouchln(win, start, count, 1) -end -def Ncurses.touchwin(win) - wtouchln(win, 0, getmaxy(win), 1) -end - -module Ncurses - Ncurses = self # for accessing Ncurses from a Module that includes Ncurses - - # Some users like to include ncurses names despite namespace pollution - # This module is for them - module Namespace - def self.append_features(target) - # include constants - unless target.ancestors.member?(Ncurses) - target.__send__(:include, Ncurses) - end - - # make methods available - unless target.respond_to?(:pre_Ncurses_method_missing) - target.module_eval{ - alias pre_Ncurses_method_missing method_missing - def method_missing(name, *args) - if Ncurses.respond_to?(name) - Ncurses.send(name, *args) - else - pre_Ncurses_method_missing(name, *args) - end - end - } - end - end - def self.entend_object(object) - class << object - self - end.__send__(:include, self) - end - end -end +require "ncurses_sugar.rb"