1 <HEAD><TITLE>terminal_interface-curses-mouse.ads</TITLE></HEAD>
3 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
6 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
7 <FONT COLOR=green><EM>-- --</EM></FONT>
8 <FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
9 <FONT COLOR=green><EM>-- --</EM></FONT>
10 <FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT>
11 <FONT COLOR=green><EM>-- --</EM></FONT>
12 <FONT COLOR=green><EM>-- S P E C --</EM></FONT>
13 <FONT COLOR=green><EM>-- --</EM></FONT>
14 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
15 <FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
16 <FONT COLOR=green><EM>-- --</EM></FONT>
17 <FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
18 <FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
19 <FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
20 <FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
21 <FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
22 <FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
23 <FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
24 <FONT COLOR=green><EM>-- --</EM></FONT>
25 <FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
26 <FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
27 <FONT COLOR=green><EM>-- --</EM></FONT>
28 <FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
29 <FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
30 <FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
31 <FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
32 <FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
33 <FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
34 <FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
35 <FONT COLOR=green><EM>-- --</EM></FONT>
36 <FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
37 <FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
38 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
39 <FONT COLOR=green><EM>-- authorization. --</EM></FONT>
40 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
41 <FONT COLOR=green><EM>-- <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">Jürgen Pfeifer</A> (<A HREF="mailto:juergen.pfeifer@gmx.net">juergen.pfeifer@gmx.net</A>) 1996 --</EM></FONT>
42 <FONT COLOR=green><EM>-- Version Control:</EM></FONT>
43 <FONT COLOR=green><EM>-- @Revision: 1.18 @</EM></FONT>
44 <FONT COLOR=green><EM>-- Binding Version 00.93</EM></FONT>
45 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
46 <FONT COLOR=green><EM>-- mouse binding.</EM></FONT>
47 <FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
48 <FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
49 <FONT COLOR=green><EM>-- |</EM></FONT>
52 <b>package</b> Terminal_Interface.Curses.Mouse <b>is</b>
53 <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Mouse);
55 <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
56 <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
57 <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
58 <FONT COLOR=green><EM>-- Please note, that in ncurses-1.9.9e documentation mouse support</EM></FONT>
59 <FONT COLOR=green><EM>-- is still marked as experimental. So also this binding will change</EM></FONT>
60 <FONT COLOR=green><EM>-- if the ncurses methods change.</EM></FONT>
61 <FONT COLOR=green><EM>--</EM></FONT>
62 <b>type</b> Event_Mask <b>is</b> <b>private</b>;
63 <FONT COLOR=red><A NAME="59_4">No_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A>;
64 All_Events : <b>constant</b> Event_Mask;
66 <b>type</b> Mouse_Button <b>is</b> (<FONT COLOR=red><A NAME="62_26">Left</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
67 <FONT COLOR=red><A NAME="63_26">Middle</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
68 <FONT COLOR=red><A NAME="64_26">Right</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
69 <FONT COLOR=red><A NAME="65_26">Button4</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
70 <FONT COLOR=red><A NAME="66_26">Control</A></FONT>, <FONT COLOR=green><EM>-- Control Key</EM></FONT>
71 <FONT COLOR=red><A NAME="67_26">Shift</A></FONT>, <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
72 Alt); <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
74 <b>subtype</b> <FONT COLOR=red><A NAME="70_12">Real_Buttons</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#61_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#65_26">Left</A> .. Button4;
75 <b>subtype</b> Modifier_Keys <b>is</b> Mouse_Button <b>range</b> Control .. Alt;
77 <b>type</b> Button_State <b>is</b> (<FONT COLOR=red><A NAME="73_26">Released</A></FONT>,
78 <FONT COLOR=red><A NAME="74_26">Pressed</A></FONT>,
80 <FONT COLOR=red><A NAME="76_26">Double_Clicked</A></FONT>,
83 <b>type</b> Button_States <b>is</b> <b>array</b> (Button_State) <b>of</b> Boolean;
84 <b>pragma</b> Pack (Button_States);
86 All_Clicks : <b>constant</b> Button_States := (Clicked .. Triple_Clicked => True,
87 <A HREF="terminal_interface-curses-mouse__ads.htm#78_9"> </A> <b>others</b> => False);
88 All_States : <b>constant</b> Button_States := (<b>others</b> => True);
90 <b>type</b> Mouse_Event <b>is</b> <b>private</b>;
92 <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
93 <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
94 <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
96 <b>function</b> Has_Mouse <b>return</b> Boolean;
97 <FONT COLOR=green><EM>-- Return true if a mouse device is supported, false otherwise.</EM></FONT>
99 <b>procedure</b> Register_Reportable_Event
100 (Button : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#72_9">Mouse_Button</A>;
101 <FONT COLOR=red><A NAME="97_7">State</A></FONT> : <b>in</b> Button_State;
102 Mask : <b>in</b> <b>out</b> Event_Mask);
103 <FONT COLOR=green><EM>-- Stores the event described by the button and the state in the mask.</EM></FONT>
104 <FONT COLOR=green><EM>-- Before you call this the first time, you should init the mask</EM></FONT>
105 <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT>
106 <b>pragma</b> Inline (Register_Reportable_Event);
108 <b>procedure</b> Register_Reportable_Events
109 (Button : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Mouse_Button</A>;
110 <FONT COLOR=red><A NAME="106_7">State</A></FONT> : <b>in</b> Button_States;
111 Mask : <b>in</b> <b>out</b> Event_Mask);
112 <FONT COLOR=green><EM>-- Register all events described by the Button and the State bitmap.</EM></FONT>
113 <FONT COLOR=green><EM>-- Before you call this the first time, you should init the mask</EM></FONT>
114 <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT>
116 <FONT COLOR=green><EM>-- <A NAME="AFU_1">|</EM></FONT>
117 <FONT COLOR=green><EM>-- There is one difference to mousmask(): we return the value of the</EM></FONT>
118 <FONT COLOR=green><EM>-- old mask, that means the event mask value before this call.</EM></FONT>
119 <b>function</b> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := All_Events)
120 <b>return</b> Event_Mask;
121 <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></FONT>
122 <b>pragma</b> Inline (Start_Mouse);
124 <b>procedure</b> End_Mouse (Mask : <b>in</b> Event_Mask := No_Events);
125 <FONT COLOR=green><EM>-- Terminates the mouse, restores the specified event mask</EM></FONT>
126 <b>pragma</b> Inline (End_Mouse);
128 <FONT COLOR=green><EM>-- <A NAME="AFU_2">|</EM></FONT>
129 <b>function</b> Get_Mouse <b>return</b> Mouse_Event;
130 <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></FONT>
131 <b>pragma</b> Inline (Get_Mouse);
133 <b>procedure</b> Get_Event (Event : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Mouse_Event</A>;
134 Y : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
135 X : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#61_9">Column_Position</A>;
136 Button : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#72_9">Mouse_Button</A>;
137 State : <b>out</b> Button_State);
138 <FONT COLOR=green><EM>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></FONT>
139 <FONT COLOR=green><EM>-- may not be identical to window coordinates.</EM></FONT>
140 <b>pragma</b> Inline (Get_Event);
142 <FONT COLOR=green><EM>-- <A NAME="AFU_3">|</EM></FONT>
143 <b>procedure</b> Unget_Mouse (Event : <b>in</b> Mouse_Event);
144 <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></EM></FONT>
145 <b>pragma</b> Inline (Unget_Mouse);
147 <FONT COLOR=green><EM>-- <A NAME="AFU_4">|</EM></FONT>
148 <b>function</b> Enclosed_In_Window (<FONT COLOR=red><A NAME="144_33">Win</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Window</A> := Standard_Window;
149 Event : Mouse_Event) <b>return</b> Boolean;
150 <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></FONT>
151 <FONT COLOR=green><EM>-- But : use event instead of screen coordinates.</EM></FONT>
152 <b>pragma</b> Inline (Enclosed_In_Window);
154 <FONT COLOR=green><EM>-- <A NAME="AFU_5">|</EM></FONT>
155 <b>function</b> Mouse_Interval (Msec : Natural := 200) <b>return</b> Natural;
156 <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></FONT>
157 <b>pragma</b> Inline (Mouse_Interval);
160 <b>type</b> Event_Mask <b>is</b> <b>new</b> Interfaces.C.unsigned_long;
162 <b>type</b> Mouse_Event <b>is</b>
164 Id : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm>3_9">Interfaces</A>.<A HREF="i-c__ads.htm>0_20">C</A>.<A HREF="i-c__ads.htm#36_9">short</A>'First) ..
165 Integer (<A HREF="interfac__ads.htm>3_9">Interfaces</A>.<A HREF="i-c__ads.htm>0_20">C</A>.<A HREF="i-c__ads.htm#35_9">short</A>'Last);
166 X, Y, Z : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm>3_9">Interfaces</A>.<A HREF="i-c__ads.htm>0_20">C</A>.<A HREF="i-c__ads.htm#35_9">int</A>'First) ..
167 <FONT COLOR=red><A NAME="163_10"> </A></FONT> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9"> </A> Integer (Interfaces.C.int'Last);
169 <b>end</b> <b>record</b>;
170 <b>pragma</b> Convention (C, Mouse_Event);
171 <b>pragma</b> Pack (Mouse_Event);
173 <b>for</b> Mouse_Event <b>use</b>
175 Id <b>at</b> 0 <b>range</b> 0 .. 15;
176 X <b>at</b> 0 <b>range</b> 32 .. 63;
177 Y <b>at</b> 0 <b>range</b> 64 .. 95;
178 Z <b>at</b> 0 <b>range</b> 96 .. 127;
179 Bstate <b>at</b> 0 <b>range</b> 128 .. 159;
180 <b>end</b> <b>record</b>;
181 <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
182 <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
184 Generation_Bit_Order : <b>constant</b> System.Bit_Order := System.Low_Order_First;
185 <FONT COLOR=green><EM>-- This constant may be different on your system.</EM></FONT>
187 <FONT COLOR=red><A NAME="183_4">BUTTON1_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000001#;
188 <FONT COLOR=red><A NAME="184_4">BUTTON1_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000002#;
189 <FONT COLOR=red><A NAME="185_4">BUTTON1_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000004#;
190 <FONT COLOR=red><A NAME="186_4">BUTTON1_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000010#;
191 <FONT COLOR=red><A NAME="187_4">BUTTON1_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000020#;
192 <FONT COLOR=red><A NAME="188_4">BUTTON1_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000040#;
193 <FONT COLOR=red><A NAME="189_4">BUTTON2_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000100#;
194 <FONT COLOR=red><A NAME="190_4">BUTTON2_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000200#;
195 <FONT COLOR=red><A NAME="191_4">BUTTON2_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000400#;
196 <FONT COLOR=red><A NAME="192_4">BUTTON2_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000001000#;
197 <FONT COLOR=red><A NAME="193_4">BUTTON2_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000002000#;
198 <FONT COLOR=red><A NAME="194_4">BUTTON2_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000004000#;
199 <FONT COLOR=red><A NAME="195_4">BUTTON3_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000010000#;
200 <FONT COLOR=red><A NAME="196_4">BUTTON3_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000020000#;
201 <FONT COLOR=red><A NAME="197_4">BUTTON3_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000040000#;
202 <FONT COLOR=red><A NAME="198_4">BUTTON3_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000100000#;
203 <FONT COLOR=red><A NAME="199_4">BUTTON3_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000200000#;
204 <FONT COLOR=red><A NAME="200_4">BUTTON3_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000400000#;
205 <FONT COLOR=red><A NAME="201_4">BUTTON4_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00001000000#;
206 <FONT COLOR=red><A NAME="202_4">BUTTON4_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00002000000#;
207 <FONT COLOR=red><A NAME="203_4">BUTTON4_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00004000000#;
208 <FONT COLOR=red><A NAME="204_4">BUTTON4_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00010000000#;
209 <FONT COLOR=red><A NAME="205_4">BUTTON4_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00020000000#;
210 <FONT COLOR=red><A NAME="206_4">BUTTON4_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00040000000#;
211 <FONT COLOR=red><A NAME="207_4">BUTTON_CTRL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00100000000#;
212 <FONT COLOR=red><A NAME="208_4">BUTTON_SHIFT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00200000000#;
213 <FONT COLOR=red><A NAME="209_4">BUTTON_ALT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00400000000#;
214 <FONT COLOR=red><A NAME="210_4">ALL_MOUSE_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00777777777#;
215 <FONT COLOR=red><A NAME="211_4">BUTTON1_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000077#;
216 <FONT COLOR=red><A NAME="212_4">BUTTON2_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000007700#;
217 <FONT COLOR=red><A NAME="213_4">BUTTON3_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000770000#;
218 BUTTON4_EVENTS : <b>constant</b> Event_Mask := 8#00077000000#;
221 <A HREF="terminal_interface-curses-mouse__ads.htm#59_4">No_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm>09_4">0</A>;
222 All_Events : <b>constant</b> Event_Mask := ALL_MOUSE_EVENTS;
224 <b>end</b> Terminal_Interface.Curses.Mouse;