-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998-2006,2007 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.29 $
+-- $Revision: 1.35 $
+-- $Date: 2007/03/24 23:03:56 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with System;
function Dupwin (Win : Window) return Window;
pragma Import (C, Dupwin, "dupwin");
- W : Window := Dupwin (Win);
+ W : constant Window := Dupwin (Win);
begin
if W = Null_Window then
raise Curses_Exception;
procedure No_Qiflush;
pragma Import (C, No_Qiflush, "noqiflush");
begin
+ if Win = Null_Window then
+ raise Curses_Exception;
+ end if;
if Flush then
Qiflush;
else
end Insert_Line;
------------------------------------------------------------------------------
-
procedure Get_Size
(Win : in Window := Standard_Window;
Number_Of_Lines : out Line_Count;
Number_Of_Columns : out Column_Count)
is
- -- Please note: in ncurses they are one off.
- -- This might be different in other implementations of curses
- Y : C_Int := C_Int (W_Get_Short (Win, Offset_maxy)) + C_Int (Offset_XY);
- X : C_Int := C_Int (W_Get_Short (Win, Offset_maxx)) + C_Int (Offset_XY);
+ function GetMaxY (W : Window) return C_Int;
+ pragma Import (C, GetMaxY, "getmaxy");
+
+ function GetMaxX (W : Window) return C_Int;
+ pragma Import (C, GetMaxX, "getmaxx");
+
+ Y : constant C_Int := GetMaxY (Win)
+ + C_Int (Offset_XY);
+ X : constant C_Int := GetMaxX (Win)
+ + C_Int (Offset_XY);
begin
Number_Of_Lines := Line_Count (Y);
Number_Of_Columns := Column_Count (X);
Top_Left_Line : out Line_Position;
Top_Left_Column : out Column_Position)
is
- Y : C_Short := W_Get_Short (Win, Offset_begy);
- X : C_Short := W_Get_Short (Win, Offset_begx);
+ function GetBegY (W : Window) return C_Int;
+ pragma Import (C, GetBegY, "getbegy");
+
+ function GetBegX (W : Window) return C_Int;
+ pragma Import (C, GetBegX, "getbegx");
+
+ Y : constant C_Short := C_Short (GetBegY (Win));
+ X : constant C_Short := C_Short (GetBegX (Win));
begin
Top_Left_Line := Line_Position (Y);
Top_Left_Column := Column_Position (X);
Line : out Line_Position;
Column : out Column_Position)
is
- Y : C_Short := W_Get_Short (Win, Offset_cury);
- X : C_Short := W_Get_Short (Win, Offset_curx);
+ function GetCurY (W : Window) return C_Int;
+ pragma Import (C, GetCurY, "getcury");
+
+ function GetCurX (W : Window) return C_Int;
+ pragma Import (C, GetCurX, "getcurx");
+
+ Y : constant C_Short := C_Short (GetCurY (Win));
+ X : constant C_Short := C_Short (GetCurX (Win));
begin
Line := Line_Position (Y);
Column := Column_Position (X);
Top_Left_Column : out Column_Position;
Is_Not_A_Subwindow : out Boolean)
is
- Y : C_Int := W_Get_Int (Win, Offset_pary);
- X : C_Int := W_Get_Int (Win, Offset_parx);
+ function GetParY (W : Window) return C_Int;
+ pragma Import (C, GetParY, "getpary");
+
+ function GetParX (W : Window) return C_Int;
+ pragma Import (C, GetParX, "getparx");
+
+ Y : constant C_Int := GetParY (Win);
+ X : constant C_Int := GetParX (Win);
begin
if Y = -1 then
Top_Left_Line := Line_Position'Last;
pragma Import (C, Winchnstr, "winchnstr");
N : Integer := Len;
- Txt : chtype_array (0 .. Str'Length) := (0 => Default_Character);
+ Txt : constant chtype_array (0 .. Str'Length)
+ := (0 => Default_Character);
Cnt : Natural := 0;
begin
if N < 0 then
pragma Import (C, C_Assume_Default_Colors, "assume_default_colors");
Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
- C_Int (Black));
+ C_Int (Back));
begin
if Err = Curses_Err then
raise Curses_Exception;
------------------------------------------------------------------------------
end Terminal_Interface.Curses;
-