comp.lang.ada
 help / color / mirror / Atom feed
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




  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