Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XHPGrabDevi(3X) — HP-UX 9.10

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XHPListInputDevices(3x)

XHPSetInputDevice(3x)

XHPUngrabDevice(3x)

XGrabKeyboard(3x)

XGrabPointer(3x)

XGrabButton(3x)

XHPGrabDevice(3X)  —  X Version 11

Release 5

NAME

XHPGrabDevice - Grab an extended input device. 

XHPGrabDeviceButton - Establish a passive grab on a button on an extension input device. 

XHPGrabDeviceKey - Establish a passive grab on a key on an extension input device. 

SYNOPSIS


int XHPGrabDevice (display, deviceid, grab_window, owner_events,
pointer_mode, device_mode, time)
Display*display;
XIDdeviceid;
Windowgrab_window;
Boolowner_events;
intpointer_mode, device_mode;
Timetime;
 int XHPGrabDeviceButton (display, deviceid, button, modifiers, grab_window,
    owner_events, event_mask, pointer_mode, device_mode)
Display*display;
XIDdeviceid;
unsigned intbutton;
unsigned intmodifiers;
Windowgrab_window;
Boolowner_events;
unsigned intevent_mask;
intpointer_mode, device_mode;
 int XHPGrabDeviceKey (display, deviceid, keycode, modifiers, grab_window,
    owner_events, pointer_mode, device_mode)
Display*display;
XIDdeviceid;
unsigned intkeycode;
unsigned intmodifiers;
Windowgrab_window;
Boolowner_events;
intpointer_mode, device_mode;

ARGUMENTS

display Specifies the connection to the X server. 

deviceid Specifies the ID of the desired device. 

grab_window Specifies the ID of a window associated with the device specified above. 

owner_events Specifies a boolean value of either True or False. 

pointer_mode Only the constant GrabModeAsync is currently supported. 

device_mode Only the constant GrabModeAsync is currently supported. 

XHPGrabDevice

time Specifies the time.  This may be either a timestamp expressed in milliseconds, or CurrentTime. 

XHPGrabDeviceButton

button Specifies the code of the button that is to be grabbed.  You can pass either the keycode or AnyButton. 

event_mask Specifies which device events are to be reported to the client.  They can be the bitwise inclusive OR of these device mask bits: DeviceButtonPressMask, DeviceButtonReleaseMask, DevicePointerMotionmask, DeviceKeymapStateMask. 

XHPGrabDeviceKey

keycode Valid for XHPGrabDeviceKey only.  Specifies the keycode of the key that is to be grabbed.  You can pass either the keycode or AnyKey. 

XHPGrabDeviceKey and XHPGrabDeviceButton Only

modifiers Specifies the set of keymasks.  This mask is the bitwise inclusive OR of these keymask bits:  ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask. 

You can also pass AnyModifier, which is equivalent to issuing the grab key request for all possible modifier combinations (including the combination of no modifiers). 

DESCRIPTION

These requests are part of an HP-proprietary extension to X.  Their functionality has been superseded by standard X input device extension requests.  You should use XGrabDevice instead of XHPGrabDevice, XGrabDeviceButton instead of XHPGrabDeviceButton, and XGrabDeviceKey instead of XHPGrabDeviceKey if possible. 

These requests are provided to support the use of input devices other than the X keyboard and X pointer device.  They allow a client to grab an extension input device, or a button or key on such a device.  The device must have previously been opened (turned on) using the XHPSetInputDevice request. 

XHPGrabDevice

XHPGrabDevice causes an HPDeviceFocusIn event to be sent to the client doing the grab, and an HPDeviceFocusOut event to be sent to the window losing the device focus.  XHPGrabDevice cannot be used to grab the X pointer device or the X keyboard device.  The core XGrabPointer and XGrabKeyboard requests should be used for that purpose. 

If owner_events is False, events are reported with respect to the grab_window.  If owner_events is True, events are reported normally. 

XHPGrabDeviceButton

The XHPGrabDeviceButton request establishes a passive grab on a device.  Consequently, in the future,

•IF the device is not grabbed and the specified button is logically pressed when the specified modifier keys logically are down (and no other buttons or modifier keys are down),

•AND the grab window contains the device,

•AND a passive grab on the same device and button/key combination does not exist on any ancestor of the grab window,

•THEN the device is actively grabbed, as for XHPGrabDevice, the last-grab time is set to the time at which the button was pressed (as transmitted in the DeviceButtonPress event), and the DeviceButtonPress event is reported. 

The interpretation of the remaining arguments is as for XHPGrabDevice.  The active grab is terminated automatically when logical state of the device has all buttons released (independent of the logical state of the modifier keys). 

Note that the logical state of a device (as seen by means of the X protocol) may lag the physical state if device event processing is frozen. 

A modifier of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers).  It is not required that all modifiers specified have currently assigned keycodes.  A Button of AnyButton is equivalent to issuing the request for all possible Buttoncodes.  Otherwise, it is not required that the specified button be assigned to a physical button. 

A BadAccess error is generated if some other client has issued a XHPGrabDeviceButton with the same device and button combination on the same window.  When using AnyModifier or AnyButton, the request fails completely and the X server generates a BadAccess error and no grabs are established if there is a conflicting grab for any combination. 

XHPGrabDeviceButton can generate BadDevice, BadAccess, BadWindow, and BadValue errors. 

This request cannot be used to grab a button on the X pointer device.  The core XGrabButton request should be used for that purpose. 

XHPGrabDeviceKey

The XHPGrabDeviceKey request establishes a passive grab on a device.  Consequently, in the future,

•IF the device is not grabbed and the specified key, which itself can be a modifier key, is logically pressed when the specified modifier keys logically are down (and no other keys are down),

•AND no other modifier keys logically are down,

•AND EITHER the grab window is an ancestor of (or is) the focus window OR the grab window is a descendent of the focus window and contains the pointer,

•AND a passive grab on the same device and key combination does not exist on any ancestor of the grab window,

•THEN the device is actively grabbed, as for XHPGrabDevice, the last-grab time is set to the time at which the key was pressed (as transmitted in the DeviceKeyPress event), and the DeviceKeyPress event is reported. 

The interpretation of the remaining arguments is as for XHPGrabDevice.  The active grab is terminated automatically when logical state of the device has the specified key released (independent of the logical state of the modifier keys). 

Note that the logical state of a device (as seen by means of the X protocol) may lag the physical state if device event processing is frozen. 

A modifier of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers).  It is not required that all modifiers specified have currently assigned keycodes.  A key of AnyKey is equivalent to issuing the request for all possible keycodes.  Otherwise, the key must be in the range specified by min_keycode and max_keycode as returned by XHPListInputDevices.  If it is not within that range, XHPGrabDeviceKey generates a BadValue error. 

A BadAccess error is generated if some other client has issued a XHPGrabDeviceKey with the same device and key combination on the same window.  When using AnyModifier or AnyKey, the request fails completely and the X server generates a BadAccess error and no grabs are established if there is a conflicting grab for any combination. 

XHPGrabDeviceKey can generate BadDevice, BadAccess, BadWindow, and BadValue errors. 

This request cannot be used to grab a key on the X keyboard device.  The core XGrabKey request should be used for that purpose. 

DIAGNOSTICS

BadDevice An invalid device ID was specified. 

BadAccess An grab combination was specified that conflicts with an existing grab. 

BadWindow An invalid window ID was specified. 

BadValue An invalid mode was specified. 

RETURN VALUE

none

FILES

none

ORIGIN

Hewlett-Packard Company

SEE ALSO

XHPListInputDevices(3x)
XHPSetInputDevice(3x)
XHPUngrabDevice(3x)
XGrabKeyboard(3x)
XGrabPointer(3x)
XGrabButton(3x)

 

Hewlett-Packard Company  —  HP-UX 9.0 August 1992

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026