GUI.SetMouseEventHandler | Part of GUI module |
Syntax | GUI.SetMouseEventHandler ( mouseEventHandler : procedure x (mx, my : int))
|
Description | Sets the new default mouse event handler. The mouseEventHandler parameter is the name of a procedure that is called every time GUI.ProcessEvent is called and there is a mouse button down which is not handled by any widget. The mx and my parameters in the mouseEventHandler are the location of mouse when the button was pressed. This procedure is used by programs to allow for mouse input in a program that uses widgets.
|
Example | This is a program that allows the user to place stars on the screen. The menu bar allows the user to quit the program at any time. The user can also toggle the appearance of the menu bar by pressing any key.
import GUI var starX, starY, starColor : array 1 .. 100 of int var numStars : int := 0 var menuVisible : boolean := true procedure DrawStar (i : int) if menuVisible then View.ClipSet (0, 0, maxx, maxy GUI.GetMenuBarHeight) end if Draw.FillStar (starX (i) 20, starY (i) 20, starX (i) + 20, starY (i) + 20, starColor (i)) View.ClipOff end DrawStar procedure Redraw for i : 1 .. numStars DrawStar (i) end for Text.Locate (maxrow, 1) put "Press any key to toggle menu bar" .. end Redraw procedure KeyHandler (ch : char) if menuVisible then GUI.HideMenuBar else GUI.ShowMenuBar end if menuVisible := not menuVisible Redraw end KeyHandler procedure MouseHandler (x, y : int) if numStars = 100 then Text.Locate (maxrow, 1) put "Maximum number of stars exceeded!" .. return end if numStars += 1 starX (numStars) := x starY (numStars) := y starColor (numStars) := Rand.Int (9, 15) DrawStar (numStars) end MouseHandler var menu : int := GUI.CreateMenu ("File") var menuItem : int := GUI.CreateMenuItemFull ("Quit", GUI.Quit, '^Q', false) GUI.SetKeyEventHandler (KeyHandler) GUI.SetMouseEventHandler (MouseHandler) Redraw loop exit when GUI.ProcessEvent end loop
|
Status | Exported qualified. This means that you can only call the function by calling GUI.SetMouseEventHandler, not by calling SetMouseEventHandler.
|
See also | GUI.ProcessEvent.
|