Operating systems, development tools, and professional services
for connected embedded systems
for connected embedded systems
![]() |
![]() |
![]() |
![]() |
PhPointerEvent_t
Data associated with a pointer event
Synopsis:
typedef struct Ph_ev_ptr_data {
PhPoint_t pos;
unsigned short buttons;
unsigned short button_state;
unsigned char click_count;
unsigned char flags;
short z;
unsigned long key_mods;
unsigned long zero;
} PhPointerEvent_t;
Description:
The PhPointerEvent_t structure holds the data associated with all pointer events:
- Ph_EV_BUT_PRESS
- Ph_EV_BUT_RELEASE
- Ph_EV_BUT_REPEAT
- Ph_EV_PTR_MOTION_BUTTON
- Ph_EV_PTR_MOTION_NOBUTTON
For more information, see PhEvent_t.
The members of PhPointerEvent_t include:
- pos
- The untranslated, absolute position of the current pointer focus. As a rule, you should use the event's rectangle set to determine coordinate positions. However, for situations that demand absolute coordinates (for example, calibrating a touchscreen), you can use pos.
- buttons
- Indicates which buttons the user pressed or released, depending on the
event.
This is a combination of:
- Ph_BUTTON_SELECT--normally the left button. Because a pointing device might provide only this button, you should design most applications such that the user has the option to use this button to perform any task.
- Ph_BUTTON_MENU--normally the right button. It can be used to invoke menus when they're available.
- Ph_BUTTON_ADJUST--normally the middle button on a three-button pointer. Its use is currently unspecified.
- button_state
- The current state of all the buttons (i.e. which buttons are pressed). This is a combination of the same bits as buttons.
- click_count
- The number of clicks (for example, a value of 2 indicates a double-click). See the Ph_EV_RELEASE_ENDCLICK subtype for Ph_EV_BUT_RELEASE.
- flags
- Indicates that the z field is valid.
- z
- Can be used with touchscreens to indicate touch pressure.
- key_mods
- The modifier keys that are currently pressed.
This is a combination of:
- Pk_KM_Shift
- Pk_KM_Ctrl
- Pk_KM_Alt
- Pk_KM_AltGr
- Pk_KM_Shl3
- Pk_KM_Mod6
- Pk_KM_Mod7
- Pk_KM_Mod8
- Pk_KM_Shift_Lock
- Pk_KM_Ctrl_Lock
- Pk_KM_Alt_Lock
- Pk_KM_AltGr_Lock
- Pk_KM_Shl3_Lock
- Pk_KM_Mod6_Lock
- Pk_KM_Mod7_Lock
- Pk_KM_Mod8_Lock
- Pk_KM_Caps_Lock
- Pk_KM_Num_Lock
- Pk_KM_Scroll_Lock
If the Shift key is pressed, the Shift modifier is on; if it's released, the Shift modifier is off. Because some keys occur twice on the keyboard, a key release doesn't guarantee that the corresponding modifier is off -- the matching key may still be pressed.
Classification:
Photon
See also:
Events chapter of the Photon Programmer's Guide
![]() |
![]() |
![]() |
![]() |

![[Previous]](../prev.gif)
![[Contents]](../contents.gif)
![[Index]](../keyword_index.gif)
![[Next]](../next.gif)