Difference between revisions of "Ncurses Module"

From SolarStrike wiki
Jump to: navigation, search
m (Global Variables)
m
 
Line 57: Line 57:
 
The default Ncurses window can be identified by STDSCR. Unless you want to output to a specified window, STDSCR is where you'll put it.
 
The default Ncurses window can be identified by STDSCR. Unless you want to output to a specified window, STDSCR is where you'll put it.
  
== init() ==
+
== init ==
 
'''ncurses.init()'''
 
'''ncurses.init()'''
  
Line 63: Line 63:
  
  
== cleanup() ==
+
== cleanup ==
 
'''ncurses.cleanup()'''
 
'''ncurses.cleanup()'''
  
Line 69: Line 69:
  
  
== print() ==
+
== print ==
 
'''ncurses.print(window win, string str)'''
 
'''ncurses.print(window win, string str)'''
  
Line 77: Line 77:
  
  
== refresh() ==
+
== refresh ==
 
'''ncurses.refresh(window win)'''
 
'''ncurses.refresh(window win)'''
  
Line 83: Line 83:
  
  
== scrollok() ==
+
== scrollok ==
 
'''ncurses.scrollok(window win, boolean scrolling)'''
 
'''ncurses.scrollok(window win, boolean scrolling)'''
  
Line 89: Line 89:
  
  
== clear() ==
+
== clear ==
 
'''ncurses.clear(window win)'''
 
'''ncurses.clear(window win)'''
  
Line 95: Line 95:
  
  
== move() ==
+
== move ==
 
'''ncurses.move(window win, number y, number x)'''
 
'''ncurses.move(window win, number y, number x)'''
  
Line 103: Line 103:
  
  
== createWindow() ==
+
== createWindow ==
 
'''window ncurses.createWindow(number sy, number sx, number width, number height)'''
 
'''window ncurses.createWindow(number sy, number sx, number width, number height)'''
  
Line 115: Line 115:
  
  
== resizeWindow() ==
+
== resizeWindow ==
 
'''boolean ncurses.resizeWindow(window win, number lines, number columns)'''
 
'''boolean ncurses.resizeWindow(window win, number lines, number columns)'''
  
Line 122: Line 122:
  
  
== moveWindow() ==
+
== moveWindow ==
 
'''boolean ncurses.moveWindow(window win, number y, number x)'''
 
'''boolean ncurses.moveWindow(window win, number y, number x)'''
  
Line 129: Line 129:
  
  
== getString() ==
+
== getString ==
 
'''string ncurses.getString(window win)'''
 
'''string ncurses.getString(window win)'''
  
Line 136: Line 136:
  
  
== number getPair(number pairIndex) ==
+
== getPair ==
'''ncurses.getPair()'''
+
'''number ncurses.getPair(number pairIndex)'''
  
 
Returns the attribute mask of a given color pair. Call ncurses.setPair() on the pair first, otherwise you're wasting your time.
 
Returns the attribute mask of a given color pair. Call ncurses.setPair() on the pair first, otherwise you're wasting your time.
  
  
== setPair(number pairIndex, number foregroundColor, number backgroundColor) ==
+
== setPair ==
'''ncurses.setPair()'''
+
'''ncurses.setPair(number pairIndex, number foregroundColor, number backgroundColor)'''
  
 
Modified the color (foreground/background) pair at a given index.
 
Modified the color (foreground/background) pair at a given index.
  
  
== attributeOn() ==
+
== attributeOn ==
 
'''ncurses.attributeOn(window win, number attrib)'''
 
'''ncurses.attributeOn(window win, number attrib)'''
  
Line 154: Line 154:
  
  
== attributeOff() ==
+
== attributeOff ==
 
'''ncurses.attributeOff(window win, number attrib)'''
 
'''ncurses.attributeOff(window win, number attrib)'''
  
Line 160: Line 160:
  
  
== setAttribute() ==
+
== setAttribute ==
 
'''ncurses.setAttribute(window win, number attrib)'''
 
'''ncurses.setAttribute(window win, number attrib)'''
  
Line 166: Line 166:
  
  
== getAttribute() ==
+
== getAttribute ==
 
'''number attributes, number pair ncurses.getAttribute(window win)'''
 
'''number attributes, number pair ncurses.getAttribute(window win)'''
  
Line 172: Line 172:
  
  
== setBackground() ==
+
== setBackground ==
 
'''ncurses.setBackground(window win, number attrib)'''
 
'''ncurses.setBackground(window win, number attrib)'''
  
Line 178: Line 178:
  
  
== getWindowSize() ==
+
== getWindowSize ==
 
'''number y, number x ncurses.getWindowSize(window win)'''
 
'''number y, number x ncurses.getWindowSize(window win)'''
  
 
Returns the size of a window.
 
Returns the size of a window.

Latest revision as of 03:49, 18 February 2015

Global Variables

Colors

The following color constants are available for use the Ncurses windows through functions like ncurses.setPair(), ncurses.setBackground(), or ncurses.setAttribute().

ncurses.BLACK
ncurses.RED
ncurses.GREEN
ncurses.YELLOW
ncurses.BLUE
ncurses.MAGENTA
ncurses.CYAN
ncurses.WHITE


Style attributes

These constants may also be used in pairs, backgrounds, or attribute masks. Be warned, many of them do not work in a Windows console.

ncurses.NORMAL
ncurses.STANDOUT
ncurses.UNDERLINE
ncurses.REVERSE
ncurses.BLINK
ncurses.DIM
ncurses.BOLD
ncurses.PROTECT
ncurses.INVIS
ncurses.ALTCHARSET
ncurses.CHARTEXT


Default window

The default Ncurses window can be identified by STDSCR. Unless you want to output to a specified window, STDSCR is where you'll put it.

init

ncurses.init()

As you can probably imagine, this initializes the Ncurses module. By default, Ncurses is not enabled. By calling this function, you will create the default Ncurses window (STDSCR) and enable the use of other Ncurses functions. That means, once this function is called, the "normal" output (STDOUT) will disappear and you'll be stuck with a black window. Any data output with print(), printf(), or io.write() will not appear on the Ncurses window, so make sure to only use Ncurses functions to output while in this mode.


cleanup

ncurses.cleanup()

When you are in Ncurses mode, calling this function will destroy the Ncurses environment and return you to standard output.


print

ncurses.print(window win, string str)

Prints data to an Ncurses window. The output begins at the virtual cursor's position (use ncurses.move() to reposition the cursor) in the specified Ncurses window. As with most Ncurses functions, you should pass STDSCR as the first parameter if you want to put data on the default window.

Take note that this function will not display the information immediately. The screen is only redrawn (and becomes visible) after you call ncurses.refresh().


refresh

ncurses.refresh(window win)

Redraw the given window to commit any changes. Call this after a single call or batch of calls to any output function to update the screen.


scrollok

ncurses.scrollok(window win, boolean scrolling)

Sets (or unsets) scrolling on the given window. By default, scrolling is disabled on windows. If you want text to scroll off the top as you continue to dump more text into it, set 'scrolling' to true.


clear

ncurses.clear(window win)

Erase the contents of window 'win'.


move

ncurses.move(window win, number y, number x)

Moves the position of the virtual cursor to y,x in the given window. Notice that the orientation is Y (row) before X (column) and not the other way around. The virtual cursor position is where output will be placed in the given Ncurses window.

Should the position you request be unavailable (probably because it extends beyond the constraints of the window), this function will fail and do nothing.


createWindow

window ncurses.createWindow(number sy, number sx, number width, number height)

Creates a new Ncurses window and returns it. 'sy' and 'sx' indicate the top-left corner of the window (in characters). 'width' and 'height' represent the window's width/height in characters.

If this function fails for any reason, it will return nil.

Note that the position is in Y,X order.


resizeWindow

boolean ncurses.resizeWindow(window win, number lines, number columns)

Resize a window to the given columns/lines. Returns true on success, false on failure.


moveWindow

boolean ncurses.moveWindow(window win, number y, number x)

Move a window to the given position. Returns true on success, false on failure.


getString

string ncurses.getString(window win)

Prompt the user for some input on an Ncurses window. Returns that input as a string value. While waiting for user input, the rest of the program is blocked from continuing.


getPair

number ncurses.getPair(number pairIndex)

Returns the attribute mask of a given color pair. Call ncurses.setPair() on the pair first, otherwise you're wasting your time.


setPair

ncurses.setPair(number pairIndex, number foregroundColor, number backgroundColor)

Modified the color (foreground/background) pair at a given index.


attributeOn

ncurses.attributeOn(window win, number attrib)

Turns an attribute (identified by 'attrib') on for the given window.


attributeOff

ncurses.attributeOff(window win, number attrib)

Turns an attribute (identified by 'attrib') off for the given window.


setAttribute

ncurses.setAttribute(window win, number attrib)

Sets an attribute mask (identified by 'attrib') on the given window. The attribute mask can represent a handful of attributes at once. You should use bit32.bor() to combine them.


getAttribute

number attributes, number pair ncurses.getAttribute(window win)

Returns the attribute mask and color pair for a Ncurses window. If this function fails, it will return nil.


setBackground

ncurses.setBackground(window win, number attrib)

Sets a background on the given window to the attribute mask.


getWindowSize

number y, number x ncurses.getWindowSize(window win)

Returns the size of a window.