From: Manuel Collado <m.collado@domain.ivalid>
Subject: Re: How to get the mouse position with JEWL?
Date: Sat, 23 Oct 2010 00:15:54 +0200
Date: 2010-10-23T00:15:54+02:00 [thread overview]
Message-ID: <i9t2iq$m3g$1@peque.uv.es> (raw)
In-Reply-To: <3bdec7d9-3dc6-44f1-be1b-8aa8dd539360@k22g2000yqh.googlegroups.com>
El 22/10/2010 15:55, tolkamp escribi�:
[sinipped]
>>> My_Frame := Frame (1200, 500, "", 0);
>>> My_Canvas := Canvas (Frame, (850,10), 300, 300);
This declares a non-interactive canvas.
>>> loop
>>> My_Mouse_Position := Start_Point(My_Canvas);
I assume Start_Point()/End_Point() are not available for My_Canvas in
this particular case.
Please RTFM:
- http://www.it.brighton.ac.uk/staff/je/jewl/docs/windows.htm#5
- http://www.it.brighton.ac.uk/staff/je/jewl/docs/windows.htm#5.4
Quoting them:
-----------------------------------
5. Canvases
...
- Canvas (Parent, Origin, Width, Height, Font)
Construct a canvas... MOUSE CLICKS AND KEY PRESSES ARE BOTH IGNORED...
- Canvas (Parent, Origin, Width, Height, Command, Font)
Construct a canvas as above. The additional Command parameter
specifies the command to be generated when the mouse button is pressed.
Key presses are ignored....
- Canvas (Parent, Origin, Width, Height, Command, Keypress, Font)
Construct a canvas as above. The additional Keypress parameter is
optional, and specifies the command to be generated when a key is pressed...
------------------------------------
5.4 Handling user interaction
A canvas can generate a command when the mouse button is pressed within
its boundaries. This can be used to implement interactive drawing
programs. There are several operations available to let the program
track the mouse WHILE THE BUTTON IS DOWN:
Start_Point (Canvas)
End_Point (Canvas)
Mouse_Down (Canvas)
Mouse_Moved (Canvas)
------------------------------------
>>
>> IIRC, you must wait for a mouse event before reading the coordinates.
>> Here is a code fragment of a real program that uses a canvas. You may
>> figure how to adapt it to your needs:
>>
>> function Get_Point return Point_Type is
>> Here: Point_Type;
>> begin
>> loop
>> case Next_Command is
>> when Cmd_Mouse =>
>> exit;
>> when Cmd_Quit =>
>> raise Program_Aborted;
>> when others =>
>> null;
>> end case;
>> end loop;
>> Here := Start_Point( Main_Canvas );
>> return Logical( Here );
>> end Get_Point;
>>
>
> What is the type of the following variables:
> Next_Command, Cmd_Mouse, Program_Aborted?
The type is the user-defined Command_Type (a generic parameter of
JEWL.Windows). I usually use JEWL.Simple_Windows, which defines
Command_Type => Character.
My canvas is created as:
Cmd_Quit : constant Character := 'Q'; -- for frame
Cmd_Mouse : constant Character := 'M'; -- for canvas
Cmd_Key : constant Character := 'K'; -- for canvas
Main_Canvas := Canvas(
Main_Frame, (0,0), 0, 0, Cmd_Mouse, Cmd_Key, ... );
> What means Logical?
It is just a scale conversion from the screen coordinates (pixels) to
the logical coordinates of my application.
Hint: the JEWL.Windows User Manual contains a lot of code samples.
--
Manuel Collado - http://lml.ls.fi.upm.es/~mcollado
next prev parent reply other threads:[~2010-10-22 22:15 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-20 9:04 How to get the mouse position with JEWL? tolkamp
2010-10-20 11:42 ` Manuel Collado
2010-10-20 17:20 ` tolkamp
2010-10-20 22:22 ` Manuel Collado
2010-10-20 22:51 ` tmoran
2010-10-21 2:59 ` Jeffrey Carter
2010-10-21 4:08 ` tmoran
2010-10-21 7:31 ` Dmitry A. Kazakov
2010-10-21 19:10 ` tmoran
2010-10-21 19:38 ` Dmitry A. Kazakov
2010-10-22 0:39 ` tmoran
2010-10-22 7:35 ` Dmitry A. Kazakov
2010-10-22 10:10 ` Frank J. Lhota
2010-10-21 15:23 ` tolkamp
2010-10-21 16:47 ` Georg Bauhaus
2010-10-21 17:09 ` tolkamp
2010-10-21 17:24 ` Niklas Holsti
2010-10-21 20:34 ` tolkamp
2010-10-22 13:55 ` tolkamp
2010-10-22 22:15 ` Manuel Collado [this message]
2010-10-23 15:26 ` tolkamp
2010-10-21 21:50 ` Manuel Collado
2010-10-22 10:40 ` tolkamp
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox