getGraphicsEvent {grDevices}R Documentation

Wait for a mouse or keyboard event from a graphics window

Description

This function waits for input from a graphics window in the form of a mouse or keyboard event.

Usage

getGraphicsEvent(prompt = "Waiting for input", 
                 onMouseDown = NULL, onMouseMove = NULL, onMouseUp = NULL, 
                 onKeybd = NULL)

Arguments

prompt prompt to be displayed to the user
onMouseDown a function to respond to mouse clicks
onMouseMove a function to respond to mouse movement
onMouseUp a function to respond to mouse button releases
onKeybd a function to respond to key presses

Details

This function allows user input from some graphics devices (currently only the Windows screen display). When called, event handlers may be installed to respond to events involving the mouse or keyboard.

The mouse event handlers should be functions with header function(buttons, x, y). The coordinates x and y will be passed to mouse event handlers in device independent coordinates (i.e. the lower left corner of the window is (0,0), the upper right is (1,1)). The buttons argument will be a vector listing the buttons that are pressed at the time of the event, with 0 for left, 1 for middle, and 2 for right.

The keyboard event handler should be a function with header function(key). A single element character vector will be passed to this handler, corresponding to the key press. Shift and other modifier keys will have been processed, so shift-a will be passed as "A". The following special keys may also be passed to the handler:

The event handlers are standard R functions, and will be executed in an environment as though they had been called directly from getGraphicsEvent.

Events will be processed until

Value

A non-NULL value returned from one of the event handlers.

Author(s)

Duncan Murdoch

Examples

## Not run: 
    mousedown <- function(buttons, x, y) {
        cat("Buttons ", paste(buttons, collapse=" "), " at ", x, y, "\n")
        points(x, y)
        if (x > 0.85 && y > 0.85) "Done"
        else NULL
    }
    
    mousemove <- function(buttons, x, y) {
        points(x, y)
        NULL
    }
    
    keybd <- function(key) {
        cat("Key <", key, ">\n", sep = "")
    }
    
    plot(0:1, 0:1, type='n')
    getGraphicsEvent("Click on upper right to quit",
                     onMouseDown = mousedown,
                     onMouseMove = mousemove,
                     onKeybd = keybd)
## End(Not run)

[Package grDevices version 2.2.1 Index]