X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fhtml%2Findex.html;h=333c1321c78b02893b04d3df13f9cca7cfc9d0f8;hp=6900ef374713d70cd456858b83772971270f95c2;hb=0eb88fc5281804773e2a0c7a488a4452463535ce;hpb=3a9b6a3bf0269231bef7de74757a910dedd04e0c
diff --git a/Ada95/html/index.html b/Ada95/html/index.html
index 6900ef37..333c1321 100644
--- a/Ada95/html/index.html
+++ b/Ada95/html/index.html
@@ -7,8 +7,8 @@
Ada95 Binding for ncurses
-The ncurses Ada95 binding is © 1996 by
-Jürgen Pfeifer.
+The ncurses Ada95 binding is © 1996-1999 by
+Jürgen Pfeifer.
Permission is hereby granted to reproduce and distribute this
@@ -24,15 +24,15 @@ This binding comes AS IS with no warranty, implied or expressed.
General Remarks
-- This document describes Version 00.92.00 of the binding.
+- This document describes Version 01.00 of the binding.
- The functionality is modelled to be compatible with the ncurses
package, a clone of the SVr4 curses model.
I did the development on an Intel box running
-Linux 1.3.x and 2.0,
-ncurses-1.9.9e and the
+Linux 1.3.x, 2.0, 2.2
+ncurses-4.x and the
GNU Ada Translator
-gnat-3.05. For any older versions of ncurses and gnat
-it will not work.
+gnat versions 3.10p to 3.11p. For any older versions of ncurses and gnat
+it is not guaranteed to work.
- You must have the m4 macroprocessor to build this package.
If you don't have this program, you can get the FSF version
here.
@@ -71,13 +71,10 @@ Same suggestion as above.
an OO abstraction of the (n)curses functionality. As mentioned above
it's a thin binding for the (n)curses functions. But without any
doubt it would be nice to build on top of this an OO abstraction
-of (n)curses functionality.
-- If you use the user-pointer mechanism for most of the ncurses
-structures in a mixed language environemt, i.e. Ada95 and C routines
-operate on the same objects, care must be taken because the Ada
-binding itself uses the user pointer mechanism for it's own purposes.
-See the corresponding section in implementention
-details.
+of (n)curses functionality.
+The only exception is the method how fieldtypes are represented in
+this Binding. We provide an abstract tagged type Field_Type from
+which the various fieldtypes are derived.
- I currently do not support the link_fieldtype functionality of the
forms subsystem.
- The *_IO packages are currently output only.
@@ -86,34 +83,47 @@ forms subsystem.
Hierarchy of packages
-- Terminal_Interface
-
- Curses
-
- Mouse
-
- Panels
-
- User_Data
+
- Terminal_Interface
+
- Curses
+
+If you want to navigate through the html pages of the package specs, click here.
Implementation Details
Behind the abstraction
All the new types like Window, Panel,
@@ -124,12 +134,6 @@ low level (n)curses structures like
MENU * or FORM *.
So you can safely pass them to C routines that expect a pointer
to one of those structures.
-Item and Field Arrays
-In C you have to pass the item and field arrays to define menus or forms
-terminated by a null item or null field. This is not necessary in this
-binding. The binding routines will construct from an Ada95 style array
-of Item or Field objects internally the properly terminated array of
-C structure pointers. See the examples for more details.
Extended ripoffline() usage
The official documentation of (n)curses says, that the line parameter
determines only whether or not exactly one line is
@@ -139,8 +143,6 @@ it in a way, that uses the line parameter also to control the amount of
lines to steal. This mechanism is used in the Rip_Off_Lines
routine of the binding.
-User Pointer mechanism
-TBD
How user defined field types work
TBD
Enumeration fields handling
@@ -150,12 +152,7 @@ in this binding, because it is internally arranged to safely copy these
values.
Using other Ada compilers
-This should basically not be a problem, but you have to replace a code
-sequence in package
-Terminal_Interface.Curses.Forms
-that uses a hashing package supplied with the GNAT runtime, which is not part
-of the Standard Ada runtimes. This should not be too hard. I intend to remove
-this dependency in the future.
+This should basically not be a problem.
Port to other curses implementations
Basically it should not be too hard to make all this run on a regular SVr4
implementation of curses. The problems are probably these:
@@ -168,11 +165,6 @@ have two choices to deal with this:
Most likely you will follow a mixed approach. Some features are easy to simulate,
others will be hard if not impossible.
-- For menu items, the name and descriptions are internally copied by ncurses.
-So the binding doesn't care for the lifetime of the strings passed to the
-construction routine for items. This assumption is not true in most other implementations
-of the menu library. In this case you have to modify the binding routine
-New_Item to safestore the strings.
I'm quite sure I forgot something.