X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsamples%2Fsample-menu_demo-handler.adb;h=18747e9fef66745c4e2ccdf26ff3f16e99979811;hp=cac7578bfdcb4ae4ca6f1ea57cce588f43b62205;hb=fde8fd6531cc2063d86dc04a230cd3eef135ab3c;hpb=661078ddbde3ce0f3b06e95642fbb9b5fef7dca1 diff --git a/Ada95/samples/sample-menu_demo-handler.adb b/Ada95/samples/sample-menu_demo-handler.adb index cac7578b..18747e9f 100644 --- a/Ada95/samples/sample-menu_demo-handler.adb +++ b/Ada95/samples/sample-menu_demo-handler.adb @@ -7,7 +7,7 @@ -- B O D Y -- -- -- ------------------------------------------------------------------------------ --- Copyright (c) 1998 Free Software Foundation, Inc. -- +-- Copyright (c) 1998,2004 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 -- @@ -33,14 +33,15 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------ --- Author: Juergen Pfeifer 1996 +-- Author: Juergen Pfeifer, 1996 -- Version Control --- $Revision: 1.5 $ --- Binding Version 00.93 +-- $Revision: 1.15 $ +-- $Date: 2004/08/21 21:37:00 $ +-- Binding Version 01.00 ------------------------------------------------------------------------------ with Sample.Menu_Demo.Aux; -with Sample.Explanation; use Sample.Explanation; with Sample.Manifest; use Sample.Manifest; +with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse; package body Sample.Menu_Demo.Handler is @@ -63,14 +64,19 @@ package body Sample.Menu_Demo.Handler is Col : in Column_Position; Title : in String := "") is - Pan : Panel := Aux.Create (M, Title, Lin, Col); - V : Cursor_Visibility := Invisible; + Mask : Event_Mask := No_Events; + Old : Event_Mask; + Pan : Panel := Aux.Create (M, Title, Lin, Col); + V : Cursor_Visibility := Invisible; begin + -- We are only interested in Clicks with the left button + Register_Reportable_Events (Left, All_Clicks, Mask); + Old := Start_Mouse (Mask); Set_Cursor_Visibility (V); loop declare K : Key_Code := Aux.Get_Request (M, Pan); - R : Driver_Result := Driver (M, K); + R : constant Driver_Result := Driver (M, K); begin case R is when Menu_Ok => null; @@ -79,6 +85,9 @@ package body Sample.Menu_Demo.Handler is I : constant Item := Current (M); O : Item_Option_Set; begin + if K = Key_Mouse then + K := SELECT_ITEM; + end if; Get_Options (I, O); if K = SELECT_ITEM and then not O.Selectable then Beep; @@ -92,7 +101,7 @@ package body Sample.Menu_Demo.Handler is end case; end; end loop; - Set_Cursor_Visibility (V); + End_Mouse (Old); Aux.Destroy (M, Pan); end Drive_Me;