[ Home Page ] [ Eiffel Archive ] [ Eiffel Applications ]

Arc de Triomphe clipart (2486 bytes)

eCurses : an Eiffel binding to *Curses


Written by Paul G. Crismer and Eric Fafchamps.

ecurses.tgz (112 kbytes) - source code
ecurses.txt (15 kbytes) - Documentation


eCurses : an Eiffel binding to *Curses

Abstract

eCurses is an Eiffel binding to *Curses. With this library it is possible to write nice console applications with features like scrolling, cursor positioning, various character attributes, color, windows.

This version of eCurses has been developed and tested with:

Introduction

ECurses is an Eiffel binding to Curses. It is intended to be sufficiently complete to enable people write terminal/console applications in Eiffel.

The following table gives an overview of what ECurses provides, compared to the Curses library.

+------------------------------------+---------+------------------------+
|Curses                              | ECurses | Eiffel Class           |
+------------------------------------+---------+------------------------+
+------------------------------------+---------+------------------------+
|Curses core                         | Partial | CURSES_WINDOW          |
|* color                             | Yes     |                        |
|* character attributes              | Yes     |                        |
|* subwindows                        | Yes     |                        |
|* scrolling                         | Yes     |                        |
|* mouse interfacing                 | No      |                        |
|* multiple terminal screens         | No      |                        |
|* testing for terminal capabilities | No      |                        |
+------------------------------------+---------+------------------------+
|Pads                                | Partial | CURSES_PAD             |
+------------------------------------+---------+------------------------+
|Soft label keys                     | Yes     | CURSES_SOFT_LABEL_KEYS |
+------------------------------------+---------+------------------------+
|Panels                              | Yes     | CURSES_PANEL           |
+------------------------------------+---------+------------------------+
|Menu                                | No      |                        |
+------------------------------------+---------+------------------------+
|Forms                               | No      |                        |
+------------------------------------+---------+------------------------+

ECurses introduces some level of abstraction. Feature names try to be more explicit than their Curses counterpart. When possible pre- and post-conditions reflect the features specifications.

ECurses has not been ``extensively'' tested. Though, it works sufficiently well to develop applications with color, scrolling, multiple panels, and basic forms.

This document is not a Curses manual. Please refer to appropriate man pages or to the excellent article ``Writing programs with NCURSES'' by Eric S. Raymond and Zeyd M. Ben-Halim.

Installation

  1. Unpack directory structure

    Simply extract the tarball. Directory structure is described below :

    + base 		-- base Curses abstractions.
    |
    + doc		-- Documentation in various formats
    |
    + spec 		-- API and constants wrapping classes.
    | |
    | + Clib 	-- c source files.
    | |
    | + linux 	-- linux specific files.
    | |
    | + windows 	-- windows specific file.s
    |
    + utility 	-- some classes found useful to develop eCurses applications
    |            	   like an event manager and a frame panel.
    |
    + test 		-- small test projects.
      |
      + hello 	-- hello world !
      |
      + pad 	-- exercise basic pad capabilities.
      |
      + slk 	-- exercise soft label keys.
      |
      + curses 	-- mimics the 'ncurses' standard test application.
    

  2. Get the appropriate Curses library

    Get and install the appropriate Curses library.

  3. Compile support library

    C files are in the spec/Clib directory. The spec/<platform> directory contains ad hoc makefiles.

    windows A makefile (Makefile.vc.mak) is provided for MSVC compiler. Library name is ecurses_c.lib.

    linux A makefile (Makefile) is provided for Linux . Type "make all" in order to build the library libecurses_c.a.

    This support library is necessary to compile and link eCurses programs.

  4. Documentation

    Documentation is available

  5. Copyright

    Copyright (C) 1999 by Paul G. Crismer <pgcrism@attglobal.net> and Eric Fafchamps <eric.fafchamps@win.be>.

    This document and the eCurses library are licensed under the terms of the Eiffel Forum Freeware License, version 1. Please refer to http://www.eiffel-forum.org.


[ Home Page ] [ Eiffel Archive ] [ Eiffel Applications ]