mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2025-01-12 14:54:25 +08:00
58 lines
2.7 KiB
Plaintext
58 lines
2.7 KiB
Plaintext
C++ interface to ncurses routines
|
|
-----------------------------------------------------------------------
|
|
|
|
This directory contains the source code for three C++ classes which
|
|
ease the use of writing ncurses-based programs. The code is derived
|
|
from the libg++ CursesWindow class but enhanced for ncurses.
|
|
|
|
The classes simplify the use of window specific functions by
|
|
encapsulating them in the window object. Function overloading is
|
|
used in order to narrow the interface. E.g. you don't have the
|
|
distinction between `printw' and `mvprintw' anymore.
|
|
|
|
A second benefit is the removal of all #defines which are included in
|
|
the curses.h file. This is a steady cause of trouble because many
|
|
common identifiers are used. Instead now all #defines are inline
|
|
functions which also allows strict type checking of arguments.
|
|
|
|
The next enhancement is color support, which is provided by a derived
|
|
class. The implementation chosen here is directed to unrestricted use
|
|
of mixes of color and monochrome windows. This is done through virtual
|
|
functions and means that you can write all of your code as if a color
|
|
window is the destination. If the destination window is monochrome these
|
|
functions calls have no effect.
|
|
|
|
NOTE: This implementation of the color support was topic of
|
|
some discussion. The introduction of virtual functions
|
|
introduced some overhead. Please let us know what you think
|
|
about this: is it worth being able to write color supporting
|
|
functions.
|
|
|
|
The last point to mention is the support of another package Zeyd
|
|
distributes with his ncurses package: the panels library. This support
|
|
is provided by the NCursesPanel class, which is also derived from the
|
|
NCursesWindow class. This allows building interfaces with windows.
|
|
Please see the example program for a quick introduction.
|
|
|
|
Note that at this point, there is no documentation for these classes.
|
|
Hopefully some will be written in the not too distant future. For now,
|
|
to find out how to use the classes, read the code and the example program.
|
|
|
|
Suggestions for enhancements and contributions of code (and docs) are
|
|
welcome. Please let us know which functionality you miss.
|
|
|
|
ATTENTION LINUX USERS: There is currently some discussion of
|
|
replacing the BSD curses in the Linux libc with ncurses. If
|
|
this is done we could perhaps include these classes in the Linux
|
|
libg++ replacing the original CursesWindow class (and renaming it
|
|
to CursesWindow). This could be done because NCursesWindow can
|
|
be made easily to a superset of the CursesWindow class.
|
|
|
|
|
|
Original author:
|
|
Eric Newton <newton@rocky.oswego.edu> for FSF's libg++
|
|
|
|
Authors of this release:
|
|
Ulrich Drepper <drepper@ira.uka.de>
|
|
and Anatoly Ivasyuk <anatoly@nick.csh.rit.edu>
|