<HR SIZE=3 NOSHADE>
<H2>General Remarks</H2>
<UL>
-<LI>This document describes Version 00.92.00 of the binding.</LI>
+<LI>This document describes Version 00.93 of the binding.</LI>
<LI>The functionality is modelled to be compatible with the ncurses
package, a clone of the SVr4 curses model.<BR>
I did the development on an Intel box running
<A HREF="http://www.linux.org">Linux</A> 1.3.x and 2.0,
-ncurses-1.9.9e and the
+ncurses-4.x and the
<A HREF="http://www.gnat.com">GNU Ada Translator</A>
-gnat-3.05. For any older versions of ncurses and gnat
-it will not work.</LI>
+gnat-3.09. For any older versions of ncurses and gnat
+it is not guaranteed to work.</LI>
<LI>You must have the m4 macroprocessor to build this package.
If you don't have this program, you can get the FSF version
<A HREF="ftp://prep.ai.mit.edu/pub/gnu/">here</A>.</LI>
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.</LI>
-<LI>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 <A HREF="#userpointer">section</A> in implementention
-details.</LI>
+of (n)curses functionality.<BR>
+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.</LI>
<LI>I currently do not support the link_fieldtype functionality of the
forms subsystem.</LI>
<LI>The *_IO packages are currently output only.</LI>
<LI><A HREF="terminal_interface-curses-forms_s.html">Forms</A>
<UL><LI><A HREF="terminal_interface-curses-forms-form_user_data_s.html">Form_User_Data</A>
<LI><A HREF="terminal_interface-curses-forms-field_user_data_s.html">Field_User_Data</A>
- <LI><A HREF="terminal_interface-curses-forms-field_types_s.html">Field_Types</A>
- <LI><A HREF="terminal_interface-curses-forms-choice_field_types_s.html">Choice_Field_Types</A>
- </UL>
+ <LI><A HREF="terminal_interface-curses-forms-field_types_s.html">Field_Types</A>
+ <UL><LI><A HREF="terminal_interface-curses-forms-field_types-alpha_s.html">Alpha</A>
+ <LI><A HREF="terminal_interface-curses-forms-field_types-alphanumeric_s.html">AlphaNumeric</A>
+ <LI><A HREF="terminal_interface-curses-forms-field_types-intfield_s.html">IntField</A>
+ <LI><A HREF="terminal_interface-curses-forms-field_types-numeric_s.html">Numeric</A>
+ <LI><A HREF="terminal_interface-curses-forms-field_types-regexp_s.html">RegExp</A>
+ <LI><A HREF="terminal_interface-curses-forms-field_types-ipv4_address_s.html">IPV4_Address</A>
+ <LI><A HREF="terminal_interface-curses-forms-field_types-enumeration_s.html">Enumeration</A>
+ <UL><LI><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada_s.html">Ada</A>
+ </UL>
+ <LI><A HREF="terminal_interface-curses-forms-field_types-user_s.html">User</A>
+ <UL><LI><A HREF="terminal_interface-curses-forms-field_types-user-choice_s.html">Choice</A>
+ </UL>
+ </UL>
+ </UL>
<LI><A HREF="terminal_interface-curses-text_io_s.html">Text_IO</A>
<UL><LI><A HREF="terminal_interface-curses-text_io-integer_io_s.html">Integer_IO</A>
<LI><A HREF="terminal_interface-curses-text_io-float_io_s.html">Float_IO</A>
<STRONG>MENU *</STRONG> or <STRONG>FORM *</STRONG>.
So you can safely pass them to C routines that expect a pointer
to one of those structures.
-<H4>Item and Field Arrays</H4>
-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.
<H4>Extended ripoffline() usage</H4>
The official documentation of (n)curses says, that the line parameter
determines only whether or not exactly <STRONG>one</STRONG> line is
lines to steal. This mechanism is used in the <STRONG>Rip_Off_Lines</STRONG>
routine of the binding.
<A NAME="userpointer">
-<H4>User Pointer mechanism</H4>
-TBD
<H4>How user defined field types work</H4>
TBD
<H4>Enumeration fields handling</H4>
values.
<A NAME="compiler">
<H4>Using other Ada compilers</H4>
-This should basically not be a problem, but you have to replace a code
-sequence in package
-<A HREF="terminal_interface-curses-forms_s.html">Terminal_Interface.Curses.Forms</A>
-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.
<H4>Port to other curses implementations</H4>
Basically it should not be too hard to make all this run on a regular SVr4
implementation of curses. The problems are probably these:<BR>
</UL>
Most likely you will follow a mixed approach. Some features are easy to simulate,
others will be hard if not impossible.</LI>
-<LI>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
-<STRONG>New_Item</STRONG> to safestore the strings.</LI>
</UL>
I'm quite sure I forgot something.<P>
</BODY>