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.
next prev parent 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