X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsamples%2Fsample-function_key_setting.adb;h=4ff70be7bb8aa768d691d353db7a8cbf5dc97319;hp=4cae72752f3e6fb2db35ea50b63d194c68e496dd;hb=73ab536b636227eed291dad213ca88c93d422fb8;hpb=3a9b6a3bf0269231bef7de74757a910dedd04e0c diff --git a/Ada95/samples/sample-function_key_setting.adb b/Ada95/samples/sample-function_key_setting.adb index 4cae7275..4ff70be7 100644 --- a/Ada95/samples/sample-function_key_setting.adb +++ b/Ada95/samples/sample-function_key_setting.adb @@ -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