#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "point_f_ffi.h"
#include "point_ffi.h"
struct RUTabletEventFuncs;
struct RUTabletEvent;
typedef struct RUTabletEventFuncs {
struct RUPoint (*pos)(struct RUBase* self_c);
struct RUPoint (*global_pos)(struct RUBase* self_c);
struct RUPointF (*pos_f)(struct RUBase* self_c);
struct RUPointF (*global_pos_f)(struct RUBase* self_c);
int (*x)(struct RUBase* self_c);
int (*y)(struct RUBase* self_c);
int (*global_x)(struct RUBase* self_c);
int (*global_y)(struct RUBase* self_c);
float (*hi_res_global_x)(struct RUBase* self_c);
float (*hi_res_global_y)(struct RUBase* self_c);
int (*device)(struct RUBase* self_c);
int (*pointer_type)(struct RUBase* self_c);
int64_t (*unique_id)(struct RUBase* self_c);
float (*pressure)(struct RUBase* self_c);
int (*z)(struct RUBase* self_c);
float (*tangential_pressure)(struct RUBase* self_c);
float (*rotation)(struct RUBase* self_c);
int (*x_tilt)(struct RUBase* self_c);
int (*y_tilt)(struct RUBase* self_c);
int (*button)(struct RUBase* self_c);
int (*buttons)(struct RUBase* self_c);
} RUTabletEventFuncs;
typedef struct RUTabletEventAllFuncs {
struct RUEventFuncs* event_funcs;
struct RUInputEventFuncs* input_event_funcs;
struct RUTabletEventFuncs* tablet_event_funcs;
} RUTabletEventAllFuncs;
typedef struct RUTabletEvent {
RUBase* qt_data;
RUBase* host_data;
struct RUTabletEventAllFuncs* all_funcs;
} RUTabletEvent;
extern RUTabletEventFuncs s_tablet_event_funcs;
extern RUTabletEventAllFuncs s_tablet_event_all_funcs;
#ifdef __cplusplus
}
#endif