« Gecko Plugin API Reference « Plug-in Side Plug-in API
Summary
Represents an event passed by NPP_HandleEvent()
to a windowless plug-in.
Syntax
Microsoft Windows
typedef struct _NPEvent { uint16 event; uint32 wParam; uint32 lParam; } NPEvent;
Mac OS
typedef EventRecord NPEvent; TYPE EventRecord = RECORD { what: Integer; message: LongInt; when: LongInt; where: Point; modifiers: Integer; END;
XWindows
typedef XEvent NPEvent;
Fields
NPEvent
on Microsoft Windows
The data structure has the following fields:
- event
- One of the following event types:
-
WM_PAINT
-
WM_LBUTTONDOWN
-
WM_LBUTTONUP
-
WM_LBUTTONDBLCLK
-
WM_RBUTTONDOWN
-
WM_RBUTTONUP
-
WM_RBUTTONDBLCLK
-
WM_MBUTTONDOWN
-
WM_MBUTTONUP
-
WM_MBUTTONDBLCLK
-
WM_MOUSEMOVE
-
WM_KEYUP
-
WM_KEYDOWN
-
WM_SETCURSOR
-
WM_SETFOCUS
-
WM_KILLFOCUS
-
wParam
- 32 bit field for the Windows event parameter; parameter value depends upon event type.
lParam
- 32 bit field for the Windows event parameter; parameter value depends upon event type.
EventRecord
NPEvent
on Mac OS
NPEvent
is defined as an EventRecord
data structure, which has the following fields:
what
- Integer representing an event type. Both windowed and windowless plug-ins receive the same events.
- Values:
- 0
nullEvent
- 1
mouseDown
- 2
mouseUp
- 3
keyDown
- 4
keyUp
- 5
autoKey
- 6
updateEvt
- 7
diskEvt
- 8
activateEvt
- 15
osEvt
- 23
kHighLevelEvent
- 0
getFocusEvent
- 0, 1 (
true
,false
)
loseFocusEvent
adjustCursorEvent
0, 1 (true
,false
)
message
LongInt
. Additional information about the event. Type of information depends on the event type. Undefined for null,mouseUp
, andmouseDown
events.
when
LongInt
. Ticks since start-up.
where
Point
. Cursor location.
modifiers
Integer
. Flags.
XEvent
NPEvent
on Unix/X11
NPEvent
is defined as an XEvent
data structure, which is a union of a number of different X11 event structures.
type
- The
type
member is an int representing an event type, and indicating which structure is relevant. The event type may be any of the ollowing:-
GraphicsExpose
-
FocusIn
-
FocusOut
-
EnterNotify
-
LeaveNotify
-
MotionNotify
-
ButtonPress
-
ButtonRelease
-
KeyPress
-
KeyRelease
-
Description
Microsoft Windows Description
The type NPEvent
represents an event passed by NPP_HandleEvent() to a windowless plug-in. For information about these events, see your Microsoft Windows documentation.
Mac OS Description
The NPEvent
object represents an event passed by NPP_HandleEvent() to a windowless plug-in. This structure is defined as EventRecord
, the event type used by Mac OS. On Mac OS, plug-ins receive the same events for both windowed and windowless plug-ins, as follows.
- Mouse events: Sent if the mouse is within the bounds of the instance.
- Key events: Sent if the instance has text focus (see below).
- Update events: Sent if the update region intersects the instance's bounds.
- Activate events: Sent to all instances in the window being activate or deactivated.
- Suspend/Resume events: Sent to all instances in all windows.
- Null events: Sent to all instances in all windows.
In addition to these standard types, the browser provides three additional event types that can be passed in the what
field of the EventRecord
:
-
getFocusEvent
: Sent when the instance could become the focus of subsequent key events, when the user clicks the instance or presses the tab key to focus the instance. - If your instance accepts key events, return
true
, and key events will be sent to the instance until it receives aloseFocusEvent
. - If your plug-in ignores key events, return
false
, and the key events will be processed by the browser itself. -
loseFocusEvent
: Sent when the instance has lost the text focus, as a result of the user clicking elsewhere on the page or pressing the Tab key to move the focus. No key events are sent to the instance until the nextgetFocusEvent
. -
adjustCursorEvent
: Sent when the mouse enters or leaves the bounds of the instance. - If your plug-in wants to set the cursor when the mouse is within the instance, set the cursor and return
true
. - If you don't want a special cursor, return
false
and the browser will use the standard arrow cursor.
XWindows Description
The NPEvent
object represents an event passed by NPP_HandleEvent() to a windowless plug-in. The NPEvent
structure is defined as XEvent, the definition of the event type used by the XWindows platform. For information about the XEvent structure and XWindows events, see the XWindows documentation.
As the XEvents sent to the plug-in are synthesized and there is not a native window corresponding to the plug-in rectangle, some of the members of the XEvent structures are not set to their normal Xserver values. e.g. Key events don't have a position.
Mouse events have x and y coordinates relative to the top-left corner of the plugin rectangle.