comp.lang.ada
 help / color / mirror / Atom feed
From: tolkamp <f.tolkamp@gmail.com>
Subject: Re: How to get the mouse position with JEWL?
Date: Sat, 23 Oct 2010 08:26:50 -0700 (PDT)
Date: 2010-10-23T08:26:50-07:00	[thread overview]
Message-ID: <6fa38e26-cf6a-4476-ab9a-e728a13a7667@a37g2000yqi.googlegroups.com> (raw)
In-Reply-To: i9t2iq$m3g$1@peque.uv.es

On 23 okt, 00:15, Manuel Collado <m.coll...@domain.ivalid> wrote:
> 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- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -

Hello Manuel,

Implementing your solution works now perfect. Thank you very much for
your help.



  reply	other threads:[~2010-10-23 15:26 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
2010-10-23 15:26           ` tolkamp [this message]
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