]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - Ada95/samples/sample-text_io_demo.adb
ncurses 6.2 - patch 20200808
[ncurses.git] / Ada95 / samples / sample-text_io_demo.adb
index d122801d2e7caeae50411a9b4af09d20f1eea39f..f23fe7ce897bd06a5ee4c020d08fd2e3b72de2f0 100644 (file)
@@ -6,46 +6,73 @@
 --                                                                          --
 --                                 B O D Y                                  --
 --                                                                          --
---  Version 00.92                                                           --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1998-2006,2011 Free Software Foundation, Inc.                  --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
 --                                                                          --
---  The ncurses Ada95 binding is copyrighted 1996 by                        --
---  Juergen Pfeifer, Email: Juergen.Pfeifer@T-Online.de                     --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
 --                                                                          --
---  Permission is hereby granted to reproduce and distribute this           --
---  binding by any means and for any fee, whether alone or as part          --
---  of a larger distribution, in source or in binary form, PROVIDED         --
---  this notice is included with any such distribution, and is not          --
---  removed from any of its header files. Mention of ncurses and the        --
---  author of this binding in any applications linked with it is            --
---  highly appreciated.                                                     --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
 --                                                                          --
---  This binding comes AS IS with no warranty, implied or expressed.        --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
 ------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.2 $
+--  $Revision: 1.19 $
+--  $Date: 2020/02/02 23:34:34 $
+--  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Numerics.Generic_Elementary_Functions;
+
 with Ada.Numerics.Complex_Types;
 use  Ada.Numerics.Complex_Types;
 
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses;
+use  Terminal_Interface.Curses;
+
+with Terminal_Interface.Curses.Panels;
+use  Terminal_Interface.Curses.Panels;
+
 with Terminal_Interface.Curses.Text_IO;
 use  Terminal_Interface.Curses.Text_IO;
+
 with Terminal_Interface.Curses.Text_IO.Integer_IO;
 with Terminal_Interface.Curses.Text_IO.Float_IO;
 with Terminal_Interface.Curses.Text_IO.Enumeration_IO;
 with Terminal_Interface.Curses.Text_IO.Complex_IO;
-with Terminal_Interface.Curses.Text_IO.Fixed_IO;
 with Terminal_Interface.Curses.Text_IO.Decimal_IO;
 with Terminal_Interface.Curses.Text_IO.Modular_IO;
 
 with Sample.Manifest; use Sample.Manifest;
-with Sample.Helpers; use Sample.Helpers;
 with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
 with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
 with Sample.Explanation; use Sample.Explanation;
 
+pragma Elaborate_All (Terminal_Interface.Curses.Text_Io.Complex_IO);
+pragma Elaborate_All (Terminal_Interface.Curses.Text_Io.Decimal_IO);
+pragma Elaborate_All (Terminal_Interface.Curses.Text_Io.Enumeration_IO);
+pragma Elaborate_All (Terminal_Interface.Curses.Text_Io.Float_IO);
+pragma Elaborate_All (Terminal_Interface.Curses.Text_Io.Integer_IO);
+pragma Elaborate_All (Terminal_Interface.Curses.Text_Io.Modular_IO);
+
 package body Sample.Text_IO_Demo is
 
    type Weekday is (Sunday,
@@ -56,7 +83,6 @@ package body Sample.Text_IO_Demo is
                     Friday,
                     Saturday);
 
-   type Fix is delta 0.1 range 0.0 .. 4.0;
    type Dec is delta 0.01 digits 5 range 0.0 .. 4.0;
    type Md is mod 5;
 
@@ -79,10 +105,6 @@ package body Sample.Text_IO_Demo is
      Terminal_Interface.Curses.Text_IO.Complex_IO (Ada.Numerics.Complex_Types);
    use C_IO;
 
-   package F_IO is new
-     Terminal_Interface.Curses.Text_IO.Fixed_IO (Fix);
-   use F_IO;
-
    package D_IO is new
      Terminal_Interface.Curses.Text_IO.Decimal_IO (Dec);
    use D_IO;
@@ -96,9 +118,9 @@ package body Sample.Text_IO_Demo is
       W : Window;
       P : Panel := Create (Standard_Window);
       K : Real_Key_Code;
-      Im : Complex := (0.0, 1.0);
-      Fx : Fix := 3.14;
-      Dc : Dec := 2.72;
+      Im : constant Complex := (0.0, 1.0);
+      Fx : constant Dec := 3.14;
+      Dc : constant Dec := 2.72;
       L : Md;
 
    begin
@@ -106,8 +128,7 @@ package body Sample.Text_IO_Demo is
       Default_Labels;
       Notepad ("TEXTIO-PAD00");
 
-      Set_Echo_Mode (FALSE);
-      Set_Raw_Mode;
+      Set_Echo_Mode (False);
       Set_Meta_Mode;
       Set_KeyPad_Mode;
       W := Sub_Window (Standard_Window, Lines - 2, Columns - 2, 1, 1);