ncurses 6.0 - patch 20150822
[ncurses.git] / Ada95 / src / terminal_interface-curses-mouse.adb
index 8a7499ac31658eb64f5a6f036c200f4ac7dd1995..7a6075c4868d6b10abfddd4db8f44e45be7872e3 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998-2009,2014 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            --
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.16 $
+--  $Revision: 1.25 $
+--  $Date: 2014/09/13 19:10:18 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
-with System;
-
 with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 with Interfaces.C; use Interfaces.C;
 use Interfaces;
@@ -47,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;
@@ -76,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);
@@ -94,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
@@ -116,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;
@@ -165,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;
@@ -178,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");
@@ -196,7 +199,8 @@ package body Terminal_Interface.Curses.Mouse is
       pragma Import (C, Wenclose, "wenclose");
    begin
       if Wenclose (Win, C_Int (Event.Y), C_Int (Event.X))
-        = Curses_Bool_False then
+        = Curses_Bool_False
+      then
          return False;
       else
          return True;