EventHandler

EventHandler[expr,{"event1":>action1,"event2":>action2,}]

displays as expr, evaluating actioni whenever "eventi" occurs in connection with expr.

Details and Options

  • Standard mouse-related event specifications include:
  • "MouseClicked"mouse clicked without moving
    {"MouseClicked",i}mouse button i clicked without moving
    "MouseDown"primary mouse button depressed
    {"MouseDown",i}mouse button i depressed
    "MouseDragged"mouse moving with primary button depressed
    {"MouseDragged",i}mouse moving with button i depressed
    "MouseMoved"mouse moves in the region defined by expr
    "MouseUp"primary mouse button released
    {"MouseUp",i}mouse button i released
  • For mouse events, EventHandler[expr, ] handles events for which the mouse is within the rectangular region defined by the display of expr.
  • Standard keyboard-related event specifications include:
  • "KeyDown"any key on the keyboard depressed
    {"KeyDown","x"}key x depressed
    "ReturnKeyDown" or key depressed
    "EscapeKeyDown" key depressed
    "LeftArrowKeyDown"left arrow key depressed
    "RightArrowKeyDown"right arrow key depressed
    "UpArrowKeyDown"up arrow key depressed
    "DownArrowKeyDown"down arrow key depressed
  • Standard interface events include:
  • {"MenuCommand","name"}menu command with specified name chosen
    "WindowClose"closing of window requested
  • If functions like MousePosition or CurrentValue are evaluated in a particular actioni, the values they give are those associated with the event that triggered that actioni.
  • When EventHandler expressions are nested, events are by default shared by all the expressions, with the innermost expression operating first on a particular event.
  • The following options can be given:
  • Method"Preemptive"the evaluation method to use
    PassEventsDownAutomaticwhether to pass events to inner event handlers
    PassEventsUpTruewhether to pass events to outer event handlers
  • Typical possible settings for the Method option include "Preemptive" and "Queued".
  • With the default setting PassEventsDown->Automatic, events handled by an EventHandler are not also passed to built-in event handlers in the Wolfram System front end.

Examples

open allclose all

Basic Examples  (3)

Create text that turns red when clicked:

Create text that toggles between red and green when clicked repeatedly:

Scope  (1)

Create a graphic that changes color when clicked:

Create a graphic that changes color only while the mouse button is pressed:

Options  (5)

Method  (1)

By default, event handlers are evaluated on a preemptive link and time out after 5 seconds:

Use Method->"Queued" to evaluate button functions on the main link, which never times out:

PassEventsDown  (2)

Allow events to pass down to inner event handlers, changing the color as well as position:

Do not pass mouse events to the inner event handler:

PassEventsUp  (2)

By default, nested EventHandler actions are triggered upon the specified action:

By disabling PassEventsUp, prevent the outer EventHandler action from being triggered:

Allow the outer EventHandler action when the key is pressed:

Applications  (2)

Automatically fit a line to a set of points:

Piecewise interpolation through a set of points:

Properties & Relations  (1)

EventHandler can be used with MousePosition:

Introduced in 2007
 (6.0)
 |
Updated in 2008
 (7.0)