X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsrc%2Fterminal_interface-curses-mouse.adb;h=9b4032639308e6bb2917c1af9d1de542bee76f8d;hp=c2b52a05903dece1d9a302ce9cb953e149dbd56a;hb=91fa4688e82518794fcf0c32a36f3fcca5e4c2d5;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01 diff --git a/Ada95/src/terminal_interface-curses-mouse.adb b/Ada95/src/terminal_interface-curses-mouse.adb index c2b52a05..9b403263 100644 --- a/Ada95/src/terminal_interface-curses-mouse.adb +++ b/Ada95/src/terminal_interface-curses-mouse.adb @@ -7,7 +7,7 @@ -- B O D Y -- -- -- ------------------------------------------------------------------------------ --- Copyright (c) 1998 Free Software Foundation, Inc. -- +-- Copyright (c) 1998-2008,2009 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 -- @@ -34,13 +34,11 @@ -- authorization. -- ------------------------------------------------------------------------------ -- Author: Juergen Pfeifer, 1996 --- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en -- Version Control: --- $Revision: 1.17 $ +-- $Revision: 1.24 $ +-- $Date: 2009/12/26 17:38:58 $ -- Binding Version 01.00 ------------------------------------------------------------------------------ -with System; - with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux; with Interfaces.C; use Interfaces.C; use Interfaces; @@ -48,12 +46,11 @@ use Interfaces; package body Terminal_Interface.Curses.Mouse is use type System.Bit_Order; - use type Interfaces.C.int; function Has_Mouse return Boolean is function Mouse_Avail return C_Int; - pragma Import (C, Mouse_Avail, "_nc_has_mouse"); + pragma Import (C, Mouse_Avail, "has_mouse"); begin if Has_Key (Key_Mouse) or else Mouse_Avail /= 0 then return True; @@ -77,8 +74,8 @@ package body Terminal_Interface.Curses.Mouse is return Event; end Get_Mouse; - procedure Register_Reportable_Event (Button : in Mouse_Button; - State : in Button_State; + procedure Register_Reportable_Event (Button : Mouse_Button; + State : Button_State; Mask : in out Event_Mask) is Button_Nr : constant Natural := Mouse_Button'Pos (Button); @@ -95,8 +92,8 @@ package body Terminal_Interface.Curses.Mouse is end if; end Register_Reportable_Event; - procedure Register_Reportable_Events (Button : in Mouse_Button; - State : in Button_States; + procedure Register_Reportable_Events (Button : Mouse_Button; + State : Button_States; Mask : in out Event_Mask) is begin @@ -117,20 +114,25 @@ package body Terminal_Interface.Curses.Mouse is Old : aliased Event_Mask; begin R := MMask (Mask, Old'Access); + if R = No_Events then + Beep; + end if; return Old; end Start_Mouse; - procedure End_Mouse (Mask : in Event_Mask := No_Events) + procedure End_Mouse (Mask : Event_Mask := No_Events) is begin - null; + if Mask /= No_Events then + Beep; + end if; end End_Mouse; - procedure Dispatch_Event (Mask : in Event_Mask; + procedure Dispatch_Event (Mask : Event_Mask; Button : out Mouse_Button; State : out Button_State); - procedure Dispatch_Event (Mask : in Event_Mask; + procedure Dispatch_Event (Mask : Event_Mask; Button : out Mouse_Button; State : out Button_State) is L : Event_Mask; @@ -166,7 +168,7 @@ package body Terminal_Interface.Curses.Mouse is end if; end Dispatch_Event; - procedure Get_Event (Event : in Mouse_Event; + procedure Get_Event (Event : Mouse_Event; Y : out Line_Position; X : out Column_Position; Button : out Mouse_Button; @@ -179,7 +181,7 @@ package body Terminal_Interface.Curses.Mouse is Dispatch_Event (Mask, Button, State); end Get_Event; - procedure Unget_Mouse (Event : in Mouse_Event) + procedure Unget_Mouse (Event : Mouse_Event) is function Ungetmouse (Ev : Mouse_Event) return C_Int; pragma Import (C, Ungetmouse, "ungetmouse");