|
|
The character user interfaces include curses, FMLI, and ETI.
Actually a library of C functions, curses is included in this list because the set of functions comprise a sublanguage for dealing with terminal screens. If you are writing programs that include interactive user screens, you will want to become familiar with this group of functions.
UnixWare supports both UNIX® System V Release 4 (SVR4) curses and POSIX curses.
For detailed information on SVR4 curses, see Character user interface programming. For details on POSIX curses, see Intro(3curses).
The Form and Menu Language Interpreter (FMLI) is a high-level programming tool having two main parts:
For details see ``The Form and Menu Language''.
The Extended Terminal Interface (ETI) is a set of C library routines that promote the development of application programs displaying and manipulating windows, panels, menus, and forms and that run under UnixWare. ETI consists of
A major feature of ETI is
cursor optimization.
Cursor optimization minimizes the amount a cursor has to move around a screen
to update it.
For example, if you designed a screen editor program with ETI
routines and edited the sentence
ETI is a great package for creating forms and menus.
to read
ETI is the best package for creating forms and menus.
the program would change only ``the best'' in place of ``a great''. The other characters would be preserved. Because the amount of data transmitted--the output--is minimized, cursor optimization is also referred to as output optimization.
Cursor optimization takes care of updating the screen in a manner appropriate for the terminal on which an ETI program is run. This means that ETI can do whatever is required to update many different terminal types. It searches the terminfo database to find the correct description for a terminal.
How does cursor optimization help you and those who use your programs? First, it saves you time in describing in a program how you want to update screens. Second, it saves a user's time when the screen is updated. Third, it reduces the load on your system's communication lines when the updating takes place. Fourth, you do not have to worry about the myriad of terminals on which your program might be run.
Here is a simple ETI program.
It uses some of the basic ETI
routines to move a cursor to the middle of a terminal screen
and print the character string BullsEye
.
For now, just look at their names and you will get an idea of
what each of them does:
#include <curses.h>main() { initscr();
move( LINES/2 - 1, COLS/2 - 4 ); addstr("Bulls"); refresh(); addstr("Eye"); refresh(); endwin(); }
A simple ETI program
For complete information on ETI, see ``The Extended Terminal Interface (ETI)''.