The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mozilla::DOM::KeyEvent

DESCRIPTION

The second argument of GtkMozEmbed's dom_key_* signal handlers will be a Mozilla::DOM::KeyEvent object, which is a wrapper around an instance of Mozilla's nsIDOMKeyEvent interface. This inherits from UIEvent.

Note: although <DOMImplementation|Mozilla::DOM::DOMImplementation>'s HasFeature('KeyEvents', '2.0') (and '3.0' and '') claimed (on my system) that KeyEvents were not supported, I found that you can in fact do key events.

The following constants are available to be compared with "GetKeyCode". XXX: This is currently buggy, because you have to call them as methods on the key event object. DEPRECATED: a little premature to deprecate, not having an alternative (aside from using the numbers directly), but I really don't like how they're currently implemented.

DOM_VK_CANCEL
DOM_VK_HELP
DOM_VK_BACK_SPACE
DOM_VK_TAB
DOM_VK_CLEAR
DOM_VK_RETURN
DOM_VK_ENTER
DOM_VK_SHIFT
DOM_VK_CONTROL
DOM_VK_ALT
DOM_VK_PAUSE
DOM_VK_CAPS_LOCK
DOM_VK_ESCAPE
DOM_VK_SPACE
DOM_VK_PAGE_UP
DOM_VK_PAGE_DOWN
DOM_VK_END
DOM_VK_HOME
DOM_VK_LEFT
DOM_VK_UP
DOM_VK_RIGHT
DOM_VK_DOWN
DOM_VK_PRINTSCREEN
DOM_VK_INSERT
DOM_VK_DELETE
DOM_VK_x, where x = 0 - 9
DOM_VK_SEMICOLON
DOM_VK_EQUALS
DOM_VK_x, where x = A - Z
DOM_VK_CONTEXT_MENU
DOM_VK_NUMPADx, where x = 0 - 9
DOM_VK_MULTIPLY
DOM_VK_ADD
DOM_VK_SEPARATOR
DOM_VK_SUBTRACT
DOM_VK_DECIMAL
DOM_VK_DIVIDE
DOM_VK_Fx, where x = 1 - 24
DOM_VK_NUM_LOCK
DOM_VK_SCROLL_LOCK
DOM_VK_COMMA
DOM_VK_PERIOD
DOM_VK_SLASH
DOM_VK_BACK_QUOTE
DOM_VK_OPEN_BRACKET
DOM_VK_BACK_SLASH
DOM_VK_CLOSE_BRACKET
DOM_VK_QUOTE
DOM_VK_META

CLASS METHODS

$iid = Mozilla::DOM::KeyEvent->GetIID()

Pass this to QueryInterface.

METHODS

$bool = $event->GetAltKey

    This function returns true if the Alt key was held down when the key event occured. (Note: I found this to not be strictly true.)

$char_code = $event->GetCharCode

    This function gets the character code, which is the Unicode number representing that character (e.g. 'a' is 97). For example, you could pass this number to the `chr' function in Perl.

$bool = $event->GetCtrlKey

    This function returns true if the Ctrl key was held down when the key event occured.

$key_code = $event->GetKeyCode

    This function gets the key code for "special" keys, such as the function keys (e.g., F3), caps lock, right arrow, etc.

$bool = $event->GetMetaKey

    This function returns true if the Meta key was held down when the key event occured.

$bool = $event->GetShiftKey

    This function returns true if the Shift key was held down when the key event occured.

$event->InitKeyEvent($eventType, $canbubble, $cancelable, $ctrlkey, $altkey, $shiftkey, $metakey, $keycode, $charcode)

    • $eventtype (string)

    • $canbubble (boolean)

    • $cancelable (boolean)

    • $ctrlkey (boolean)

    • $altkey (boolean)

    • $shiftkey (boolean)

    • $metakey (boolean)

    • $keycode (integer (long))

    • $charcode (integer (long))

    See Event::InitEvent for more information. This method is basically the same as InitEvent, but with six (seven normally) extra arguments. (XXX: add docs for args)

    Note: I don't see how you can Create or QueryInterface an AbstractView, and trying to pass in 0 or undef was just causing a segfault, so I've omitted what would normally be the 4th argument of this method. If someone can explain why you'd need it and how you'd use it, then I can put it back in.

SEE ALSO

Mozilla::DOM, /usr/include/mozilla/nsIDOMKeyEvent.h, "sections 1.7.4 and Appendix A of the DOM level 3 specification"

COPYRIGHT

Copyright (C) 2005, Scott Lanning

This software is licensed under the LGPL. See Mozilla::DOM for a full notice.