]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - Ada95/samples/sample-header_handler.adb
ncurses 6.1 - patch 20180908
[ncurses.git] / Ada95 / samples / sample-header_handler.adb
index b66402d85d6fc6e23f3fb71fbcc1ace2d3c55081..f552e20ee5df99a1664fe77b2f5dd3a505f8c57f 100644 (file)
@@ -6,28 +6,45 @@
 --                                                                          --
 --                                 B O D Y                                  --
 --                                                                          --
 --                                                                          --
 --                                 B O D Y                                  --
 --                                                                          --
---  Version 00.92                                                           --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998-2011,2014 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
 --  Version Control
---  $Revision: 1.4 $
+--  $Revision: 1.20 $
+--  $Date: 2014/09/13 19:10:18 $
+--  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Calendar; use Ada.Calendar;
 with Terminal_Interface.Curses.Text_IO.Integer_IO;
 with Sample.Manifest; use Sample.Manifest;
 
 ------------------------------------------------------------------------------
 with Ada.Calendar; use Ada.Calendar;
 with Terminal_Interface.Curses.Text_IO.Integer_IO;
 with Sample.Manifest; use Sample.Manifest;
 
+pragma Elaborate_All (Terminal_Interface.Curses.Text_Io.Integer_IO);
+
 --  This package handles the painting of the header line of the screen.
 --
 package body Sample.Header_Handler is
 --  This package handles the painting of the header line of the screen.
 --
 package body Sample.Header_Handler is
@@ -50,8 +67,7 @@ package body Sample.Header_Handler is
                                 Columns : Column_Count) return Integer;
    pragma Convention (C, Init_Header_Window);
 
                                 Columns : Column_Count) return Integer;
    pragma Convention (C, Init_Header_Window);
 
-   procedure Internal_Update_Header_Window (Do_Update : in Boolean);
-
+   procedure Internal_Update_Header_Window (Do_Update : Boolean);
 
    --  The initialization must be called before Init_Screen. It steals two
    --  lines from the top of the screen.
 
    --  The initialization must be called before Init_Screen. It steals two
    --  lines from the top of the screen.
@@ -61,11 +77,11 @@ package body Sample.Header_Handler is
       Rip_Off_Lines (2, Init_Header_Window'Access);
    end Init_Header_Handler;
 
       Rip_Off_Lines (2, Init_Header_Window'Access);
    end Init_Header_Handler;
 
-   procedure N_Out (N : in Integer);
+   procedure N_Out (N : Integer);
 
    --  Emit a two digit number and ensure that a leading zero is generated if
    --  necessary.
 
    --  Emit a two digit number and ensure that a leading zero is generated if
    --  necessary.
-   procedure N_Out (N : in Integer)
+   procedure N_Out (N : Integer)
    is
    begin
       if N < 10 then
    is
    begin
       if N < 10 then
@@ -78,7 +94,7 @@ package body Sample.Header_Handler is
 
    --  Paint the header window. The input parameter is a flag indicating
    --  whether or not the screen should be updated physically after painting.
 
    --  Paint the header window. The input parameter is a flag indicating
    --  whether or not the screen should be updated physically after painting.
-   procedure Internal_Update_Header_Window (Do_Update : in Boolean)
+   procedure Internal_Update_Header_Window (Do_Update : Boolean)
    is
       type Month_Name_Array is
          array (Month_Number'First .. Month_Number'Last) of String (1 .. 9);
    is
       type Month_Name_Array is
          array (Month_Number'First .. Month_Number'Last) of String (1 .. 9);
@@ -97,16 +113,19 @@ package body Sample.Header_Handler is
          "November ",
          "December ");
 
          "November ",
          "December ");
 
-      Now : Time := Clock;
-      Sec : Integer := Integer (Seconds (Now));
-      Hour   : Integer := Sec / 3600;
-      Minute : Integer := (Sec - Hour * 3600) / 60;
-      Mon    : Month_Number := Month (Now);
-      D      : Day_Number   := Day (Now);
+      Now    : constant Time         := Clock;
+      Sec    : constant Integer      := Integer (Seconds (Now));
+      Hour   : constant Integer      := Sec / 3600;
+      Minute : constant Integer      := (Sec - Hour * 3600) / 60;
+      Mon    : constant Month_Number := Month (Now);
+      D      : constant Day_Number   := Day (Now);
    begin
       if Header_Window /= Null_Window then
    begin
       if Header_Window /= Null_Window then
-         if Minute /= Display_Min or else Hour /= Display_Hour
-           or else Display_Day /= D or else Display_Month /= Mon then
+         if Minute /= Display_Min
+           or else Hour /= Display_Hour
+           or else Display_Day /= D
+           or else Display_Month /= Mon
+         then
             Move_Cursor (Header_Window, 0, 0);
             N_Out (D); Add (Header_Window, '.');
             Add (Header_Window, Month_Names (Mon));
             Move_Cursor (Header_Window, 0, 0);
             N_Out (D); Add (Header_Window, '.');
             Add (Header_Window, Month_Names (Mon));
@@ -155,7 +174,7 @@ package body Sample.Header_Handler is
          Pos := Columns - Column_Position (Title'Length);
          Add (Win, 0, Pos / 2, Title);
          --  In this phase we must not allow a physical update, because
          Pos := Columns - Column_Position (Title'Length);
          Add (Win, 0, Pos / 2, Title);
          --  In this phase we must not allow a physical update, because
-         --  ncurses ist properly initialized at this point.
+         --  ncurses is not properly initialized at this point.
          Internal_Update_Header_Window (False);
          return 0;
       else
          Internal_Update_Header_Window (False);
          return 0;
       else