GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
Macros | Functions
gp_app_event.h File Reference

Application events. More...

#include <widgets/gp_widget_event.h>

Go to the source code of this file.

Macros

#define GP_APP_EVENT_DEFAULT_MASK   (1<<GP_WIDGET_EVENT_FREE)
 Default app event mask.
 

Functions

void gp_app_on_event_set (int(*on_event)(gp_widget_event *ev))
 Sets an application event hanlder.
 
void gp_app_event_mask (enum gp_widget_event_type ev_type)
 Masks out an app event.
 
void gp_app_event_unmask (enum gp_widget_event_type ev_type)
 Unmasks an app event.
 
static int gp_app_send_event (enum gp_widget_event_type ev_type,...)
 Sends an event to the application.
 

Detailed Description

Application events.

Example app event handler

static void save_app_state(void)
{
//Save application state to a file here
}
static int app_on_event(gp_widget_event *ev)
{
save_app_state();
}
...
int main(void)
{
...
gp_app_on_event_set(app_on_event);
...
}
void gp_app_on_event_set(int(*on_event)(gp_widget_event *ev))
Sets an application event hanlder.
@ GP_WIDGET_EVENT_FREE
Widget is about to be freed.
Event structure passed to widget event handler.
uint16_t type
An event type, enum gp_widget_event_type.

Definition in file gp_app_event.h.

Function Documentation

◆ gp_app_event_mask()

void gp_app_event_mask ( enum gp_widget_event_type  ev_type)

Masks out an app event.

Parameters
ev_typeAn event type to mask out.

◆ gp_app_event_unmask()

void gp_app_event_unmask ( enum gp_widget_event_type  ev_type)

Unmasks an app event.

Parameters
ev_typeAn event type to unmask.

◆ gp_app_on_event_set()

void gp_app_on_event_set ( int(*)(gp_widget_event *ev)  on_event)

Sets an application event hanlder.

The application event handler works the same as a gp_widget::on_event() handler.

Attention
Not all events are enabled by default, see GP_APP_EVENT_DEFAULT_MASK.

Currently application can receive these events:

GP_WIDGET_EVENT_FREE

This event is send when gp_widgets_exit() is called to exit the gp_widgets_main_loop().

GP_WIDGET_EVENT_INPUT

Routes any input events unused by the widget layout to the application handler.

Attention
Note that which events are consumed by the widget layout depends on which widget in the current layout is focused.

GP_WIDGET_EVENT_COLOR_SCHEME

See gp_widgets_color_scheme and gp_widgets_color_scheme_set() for details.

Parameters
on_eventAn pointer to application event handler or NULL to disable events.

◆ gp_app_send_event()

static int gp_app_send_event ( enum gp_widget_event_type  ev_type,
  ... 
)
inlinestatic

Sends an event to the application.

This is called by the widget library when app event should be send.

Parameters
ev_typeAn widget event.
...Optional pointer or long integer.
Returns
Non-zero if event was handled, zero otherwise.

Definition at line 108 of file gp_app_event.h.

References gp_widget_event::type.