ncurses 5.0
[ncurses.git] / Ada95 / html / index.html
index 6900ef374713d70cd456858b83772971270f95c2..333c1321c78b02893b04d3df13f9cca7cfc9d0f8 100644 (file)
@@ -7,8 +7,8 @@
 </HEAD>
 <BODY BGCOLOR="#99ccbb" TEXT="#000000" LINK="#4060b0" VLINK="#000080" ALINK="#ff4040">
 <H1>Ada95 Binding for ncurses</H1>
-The ncurses Ada95 binding is &copy; 1996 by 
-<A HREF="mailto:Juergen.Pfeifer@T-Online.de">J&uuml;rgen Pfeifer</A>.
+The ncurses Ada95 binding is &copy; 1996-1999 by 
+<A HREF="mailto:juergen.pfeifer@gmx.net">J&uuml;rgen Pfeifer</A>.
 <P>
                                                                          
 Permission is hereby granted to reproduce and distribute this
@@ -24,15 +24,15 @@ This binding comes AS IS with no warranty, implied or expressed.
 <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 01.00 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 
+<A HREF="http://www.linux.org">Linux</A> 1.3.x, 2.0, 2.2
+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 versions 3.10p to 3.11p. 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>
@@ -71,13 +71,10 @@ Same suggestion as above.</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>
@@ -86,34 +83,47 @@ forms subsystem.</LI>
 
 <H2>Hierarchy of packages</H2>
 <UL>
-<LI><A HREF="terminal_interface_s.html">Terminal_Interface</A>
-    <UL><LI><A HREF="terminal_interface-curses_s.html">Curses</A>
-       <UL><LI><A HREF="terminal_interface-curses-mouse_s.html">Mouse</A>
-            <LI><A HREF="terminal_interface-curses-panels_s.html">Panels</A>
-            <UL><LI><A HREF="terminal_interface-curses-panels-user_data_s.html">User_Data</A>
+<LI><A HREF="ada/terminal_interface__ads.htm">Terminal_Interface</A>
+    <UL><LI><A HREF="ada/terminal_interface-curses__ads.htm">Curses</A>
+       <UL><LI><A HREF="ada/terminal_interface-curses-mouse__ads.htm">Mouse</A>
+            <LI><A HREF="ada/terminal_interface-curses-panels__ads.htm">Panels</A>
+            <UL><LI><A HREF="ada/terminal_interface-curses-panels-user_data__ads.htm">User_Data</A>
             </UL>
-           <LI><A HREF="terminal_interface-curses-menus_s.html">Menus</A>
-               <UL><LI><A HREF="terminal_interface-curses-menus-menu_user_data_s.html">Menu_User_Data</A>
-                   <LI><A HREF="terminal_interface-curses-menus-item_user_data_s.html">Item_User_Data</A>
+           <LI><A HREF="ada/terminal_interface-curses-menus__ads.htm">Menus</A>
+               <UL><LI><A HREF="ada/terminal_interface-curses-menus-menu_user_data__ads.htm">Menu_User_Data</A>
+                   <LI><A HREF="ada/terminal_interface-curses-menus-item_user_data__ads.htm">Item_User_Data</A>
                </UL>    
-           <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-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>
-                   <LI><A HREF="terminal_interface-curses-text_io-fixed_io_s.html">Fixed_IO</A>
-                   <LI><A HREF="terminal_interface-curses-text_io-decimal_io_s.html">Decimal_IO</A>
-                   <LI><A HREF="terminal_interface-curses-text_io-modular_io_s.html">Modular_IO</A>
-                   <LI><A HREF="terminal_interface-curses-text_io-enumeration_io_s.html">Enumeration_IO</A>
-                   <LI><A HREF="terminal_interface-curses-text_io-complex_io_s.html">Complex_IO</A>
+           <LI><A HREF="ada/terminal_interface-curses-forms__ads.htm">Forms</A>
+               <UL><LI><A HREF="ada/terminal_interface-curses-forms-form_user_data__ads.htm">Form_User_Data</A>
+                   <LI><A HREF="ada/terminal_interface-curses-forms-field_user_data__ads.htm">Field_User_Data</A>
+                   <LI><A HREF="ada/terminal_interface-curses-forms-field_types__ads.htm">Field_Types</A>                   
+                   <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-alpha__ads.htm">Alpha</A>
+                       <LI><A HREF="ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">AlphaNumeric</A>
+                       <LI><A HREF="ada/terminal_interface-curses-forms-field_types-intfield__ads.htm">IntField</A>
+                       <LI><A HREF="ada/terminal_interface-curses-forms-field_types-numeric__ads.htm">Numeric</A>
+                       <LI><A HREF="ada/terminal_interface-curses-forms-field_types-regexp__ads.htm">RegExp</A>
+                       <LI><A HREF="ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">IPV4_Address</A>
+                       <LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm">Enumeration</A>
+                       <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">Ada</A>
+                       </UL>
+                       <LI><A HREF="ada/terminal_interface-curses-forms-field_types-user__ads.htm">User</A>
+                       <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm">Choice</A>
+                        </UL>
+                     </UL>   
+               </UL>   
+           <LI><A HREF="ada/terminal_interface-curses-text_io__ads.htm">Text_IO</A>
+               <UL><LI><A HREF="ada/terminal_interface-curses-text_io-integer_io__ads.htm">Integer_IO</A>
+                   <LI><A HREF="ada/terminal_interface-curses-text_io-float_io__ads.htm">Float_IO</A>
+                   <LI><A HREF="ada/terminal_interface-curses-text_io-fixed_io__ads.htm">Fixed_IO</A>
+                   <LI><A HREF="ada/terminal_interface-curses-text_io-decimal_io__ads.htm">Decimal_IO</A>
+                   <LI><A HREF="ada/terminal_interface-curses-text_io-modular_io__ads.htm">Modular_IO</A>
+                   <LI><A HREF="ada/terminal_interface-curses-text_io-enumeration_io__ads.htm">Enumeration_IO</A>
+                   <LI><A HREF="ada/terminal_interface-curses-text_io-complex_io__ads.htm">Complex_IO</A>
                </UL>
          </UL>
      </UL>        
 </UL>
+If you want to navigate through the html pages of the package specs, click <A HREF="ada/index.htm">here</A>.
 <H2>Implementation Details</H2>
 <H4>Behind the abstraction</H4>
 All the new types like <STRONG>Window</STRONG>, <STRONG>Panel</STRONG>,
@@ -124,12 +134,6 @@ low level (n)curses structures like
 <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
@@ -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 <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>
@@ -150,12 +152,7 @@ in this binding, because it is internally arranged to safely copy these
 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>
@@ -168,11 +165,6 @@ have two choices to deal with this:
 </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>