1------------------------------------------------------------------------------ 2-- -- 3-- GNAT ncurses Binding -- 4-- -- 5-- Terminal_Interface.Curses.PutWin -- 6-- -- 7-- B O D Y -- 8-- -- 9------------------------------------------------------------------------------ 10-- Copyright (c) 2000,2003 Free Software Foundation, Inc. -- 11-- -- 12-- Permission is hereby granted, free of charge, to any person obtaining a -- 13-- copy of this software and associated documentation files (the -- 14-- "Software"), to deal in the Software without restriction, including -- 15-- without limitation the rights to use, copy, modify, merge, publish, -- 16-- distribute, distribute with modifications, sublicense, and/or sell -- 17-- copies of the Software, and to permit persons to whom the Software is -- 18-- furnished to do so, subject to the following conditions: -- 19-- -- 20-- The above copyright notice and this permission notice shall be included -- 21-- in all copies or substantial portions of the Software. -- 22-- -- 23-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- 24-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- 25-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -- 26-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- 27-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- 28-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -- 29-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- 30-- -- 31-- Except as contained in this notice, the name(s) of the above copyright -- 32-- holders shall not be used in advertising or otherwise to promote the -- 33-- sale, use or other dealings in this Software without prior written -- 34-- authorization. -- 35------------------------------------------------------------------------------ 36-- Author: Juergen Pfeifer, 1996 37-- Version Control: 38-- $Revision: 1.4 $ 39-- Binding Version 01.00 40 41with Ada.Streams.Stream_IO.C_Streams; 42with Interfaces.C_Streams; 43with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux; 44 45package body Terminal_Interface.Curses.PutWin is 46 47 package ICS renames Interfaces.C_Streams; 48 package ACS renames Ada.Streams.Stream_IO.C_Streams; 49 use type C_Int; 50 51 procedure Put_Window (Win : Window; 52 File : Ada.Streams.Stream_IO.File_Type) is 53 function putwin (Win : Window; f : ICS.FILEs) return C_Int; 54 pragma Import (C, putwin, "putwin"); 55 56 R : constant C_Int := putwin (Win, ACS.C_Stream (File)); 57 begin 58 if R /= Curses_Ok then 59 raise Curses_Exception; 60 end if; 61 end Put_Window; 62 63 function Get_Window (File : Ada.Streams.Stream_IO.File_Type) 64 return Window is 65 function getwin (f : ICS.FILEs) return Window; 66 pragma Import (C, getwin, "getwin"); 67 68 W : constant Window := getwin (ACS.C_Stream (File)); 69 begin 70 if W = Null_Window then 71 raise Curses_Exception; 72 else 73 return W; 74 end if; 75 end Get_Window; 76 77end Terminal_Interface.Curses.PutWin; 78