ncurses 5.9 - patch 20131012
[ncurses.git] / Ada95 / samples / sample-function_key_setting.adb
index 4cae72752f3e6fb2db35ea50b63d194c68e496dd..4ff70be7bb8aa768d691d353db7a8cbf5dc97319 100644 (file)
@@ -6,23 +6,38 @@
 --                                                                          --
 --                                 B O D Y                                  --
 --                                                                          --
---  Version 00.92                                                           --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998-2009,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.3 $
+--  $Revision: 1.15 $
+--  $Date: 2011/03/23 00:44:12 $
+--  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
 with Sample.Manifest; use  Sample.Manifest;
@@ -66,25 +81,25 @@ package body Sample.Function_Key_Setting is
 
    Top_Of_Stack : Env_Ptr := null;
 
-   procedure Push_Environment (Key   : in String;
-                               Reset : in Boolean := True)
+   procedure Push_Environment (Key   : String;
+                               Reset : Boolean := True)
    is
       P : constant Env_Ptr := new Key_Environment (Number_Of_Keys);
    begin
       --  Store the current labels in the environment
       for I in 1 .. Number_Of_Keys loop
-         Get_Soft_Label_Key (I, P.Labels (I));
+         Get_Soft_Label_Key (I, P.all.Labels (I));
          if Reset then
             Set_Soft_Label_Key (I, " ");
          end if;
       end loop;
-      P.Prev := Top_Of_Stack;
+      P.all.Prev := Top_Of_Stack;
       --  now store active help context and notepad
-      P.Help := Active_Context;
-      P.Notepad := Active_Notepad;
+      P.all.Help := Active_Context;
+      P.all.Notepad := Active_Notepad;
       --  The notepad must now vanish and the new notepad is empty.
-      if (P.Notepad /= Null_Panel) then
-         Hide (P.Notepad);
+      if P.all.Notepad /= Null_Panel then
+         Hide (P.all.Notepad);
          Update_Panels;
       end if;
       Active_Notepad := Null_Panel;
@@ -104,14 +119,14 @@ package body Sample.Function_Key_Setting is
          raise Function_Key_Stack_Error;
       else
          for I in 1 .. Number_Of_Keys loop
-            Set_Soft_Label_Key (I, P.Labels (I), Justification);
+            Set_Soft_Label_Key (I, P.all.Labels (I), Justification);
          end loop;
          pragma Assert (Active_Context /= null);
          Release_String (Active_Context);
-         Active_Context := P.Help;
+         Active_Context := P.all.Help;
          Refresh_Soft_Label_Keys_Without_Update;
-         Notepad_To_Context (P.Notepad);
-         Top_Of_Stack := P.Prev;
+         Notepad_To_Context (P.all.Notepad);
+         Top_Of_Stack := P.all.Prev;
          Release_Environment (P);
       end if;
    end Pop_Environment;
@@ -135,17 +150,17 @@ package body Sample.Function_Key_Setting is
       else
          loop
             exit when P = null;
-            if P.Help.all = Key then
+            if P.all.Help.all = Key then
                return True;
             else
-               P := P.Prev;
+               P := P.all.Prev;
             end if;
          end loop;
          return False;
       end if;
    end Find_Context;
 
-   procedure Notepad_To_Context (Pan : in Panel)
+   procedure Notepad_To_Context (Pan : Panel)
    is
       W : Window;
    begin