wlmaker
Loading...
Searching...
No Matches
Public Attributes | List of all members
_wlmtk_element_vmt_t Struct Reference

#include <element.h>

Public Attributes

void(* destroy )(wlmtk_element_t *element_ptr)
 
struct wlr_scene_node *(* create_scene_node )(wlmtk_element_t *element_ptr, struct wlr_scene_tree *wlr_scene_tree_ptr)
 
void(* get_dimensions )(wlmtk_element_t *element_ptr, int *x1_ptr, int *y1_ptr, int *x2_ptr, int *y2_ptr)
 
void(* get_pointer_area )(wlmtk_element_t *element_ptr, int *left_ptr, int *top_ptr, int *right_ptr, int *bottom_ptr)
 
bool(* pointer_motion )(wlmtk_element_t *element_ptr, double x, double y, uint32_t time_msec)
 
bool(* pointer_button )(wlmtk_element_t *element_ptr, const wlmtk_button_event_t *button_event_ptr)
 
bool(* pointer_axis )(wlmtk_element_t *element_ptr, struct wlr_pointer_axis_event *wlr_pointer_axis_event_ptr)
 
void(* pointer_enter )(wlmtk_element_t *element_ptr)
 
void(* pointer_leave )(wlmtk_element_t *element_ptr)
 
void(* keyboard_blur )(wlmtk_element_t *element_ptr)
 
bool(* keyboard_event )(wlmtk_element_t *element_ptr, struct wlr_keyboard_key_event *wlr_keyboard_key_event_ptr, const xkb_keysym_t *key_syms, size_t key_syms_count, uint32_t modifiers)
 

Detailed Description

Virtual method table for the element.

Member Data Documentation

◆ create_scene_node

struct wlr_scene_node *(* _wlmtk_element_vmt_t::create_scene_node) (wlmtk_element_t *element_ptr, struct wlr_scene_tree *wlr_scene_tree_ptr)

Abstract: Creates element's scene graph API node, child to wlr_scene_tree_ptr.

◆ destroy

void(* _wlmtk_element_vmt_t::destroy) (wlmtk_element_t *element_ptr)

Abstract: Destroys the implementation of the element.

◆ get_dimensions

void(* _wlmtk_element_vmt_t::get_dimensions) (wlmtk_element_t *element_ptr, int *x1_ptr, int *y1_ptr, int *x2_ptr, int *y2_ptr)

Abstract: Gets dimensions of the element, relative to the element's position.

◆ get_pointer_area

void(* _wlmtk_element_vmt_t::get_pointer_area) (wlmtk_element_t *element_ptr, int *left_ptr, int *top_ptr, int *right_ptr, int *bottom_ptr)

Gets element area to accept pointer activity, relative to position.

◆ keyboard_blur

void(* _wlmtk_element_vmt_t::keyboard_blur) (wlmtk_element_t *element_ptr)

Blurs (de-activates) keyboard focus for the element. Propagates to child elements, where available.

Parameters
element_ptr

◆ keyboard_event

bool(* _wlmtk_element_vmt_t::keyboard_event) (wlmtk_element_t *element_ptr, struct wlr_keyboard_key_event *wlr_keyboard_key_event_ptr, const xkb_keysym_t *key_syms, size_t key_syms_count, uint32_t modifiers)

Handler for keyboard events.

Parameters
element_ptr
wlr_keyboard_key_event_ptr
key_syms
key_syms_count
modifiers
Returns
true if the key was handled.

◆ pointer_axis

bool(* _wlmtk_element_vmt_t::pointer_axis) (wlmtk_element_t *element_ptr, struct wlr_pointer_axis_event *wlr_pointer_axis_event_ptr)

Indicates a pointer axis event.

Parameters
element_ptr
wlr_pointer_axis_event_ptr
Returns
true If the axis event was consumed.

◆ pointer_button

bool(* _wlmtk_element_vmt_t::pointer_button) (wlmtk_element_t *element_ptr, const wlmtk_button_event_t *button_event_ptr)

Indicates pointer button event.

Parameters
element_ptr
button_event_ptr
Returns
true If the button event was consumed.

◆ pointer_enter

void(* _wlmtk_element_vmt_t::pointer_enter) (wlmtk_element_t *element_ptr)

Indicates the pointer has entered the element's area.

TODO(kaese.nosp@m.r@gu.nosp@m.bbe.c.nosp@m.h): pointer_enter and pointer_leave would better be handled as events, where clients subscribe via listeners. Consider changing that.

Parameters
element_ptr

◆ pointer_leave

void(* _wlmtk_element_vmt_t::pointer_leave) (wlmtk_element_t *element_ptr)

Indicates the pointer has left the element's area.

Parameters
element_ptr

◆ pointer_motion

bool(* _wlmtk_element_vmt_t::pointer_motion) (wlmtk_element_t *element_ptr, double x, double y, uint32_t time_msec)

Indicates pointer motion into or within the element area to (x,y).

The default implementation at _wlmtk_element_pointer_motion updates wlmtk_element_t::last_pointer_x, wlmtk_element_t::last_pointer_y and wlmtk_element_t::last_pointer_time_msec.

Derived classes that overwrite this method are advised to call the initial implementation for keeping these internals updated.

Parameters
element_ptr
x
y
time_msec
Returns
Whether the motion is considered within the element's pointer area. If it returns true, the caller should consider this element as having pointer focus.

The documentation for this struct was generated from the following file: