#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "mime_data_ffi.h"
#include "object_ffi.h"
#include "point_f_ffi.h"
#include "point_ffi.h"
struct RUDropEventFuncs;
struct RUDropEvent;
typedef struct RUDropEventFuncs {
struct RUPoint (*pos)(struct RUBase* self_c);
struct RUPointF (*pos_f)(struct RUBase* self_c);
int (*mouse_buttons)(struct RUBase* self_c);
int (*keyboard_modifiers)(struct RUBase* self_c);
int (*possible_actions)(struct RUBase* self_c);
int (*proposed_action)(struct RUBase* self_c);
void (*accept_proposed_action)(struct RUBase* self_c);
int (*drop_action)(struct RUBase* self_c);
void (*set_drop_action)(struct RUBase* self_c, int action);
struct RUObject (*source)(struct RUBase* self_c);
struct RUMimeData (*mime_data)(struct RUBase* self_c);
} RUDropEventFuncs;
typedef struct RUDropEventAllFuncs {
struct RUEventFuncs* event_funcs;
struct RUDropEventFuncs* drop_event_funcs;
} RUDropEventAllFuncs;
typedef struct RUDropEvent {
RUBase* qt_data;
RUBase* host_data;
struct RUDropEventAllFuncs* all_funcs;
} RUDropEvent;
extern RUDropEventFuncs s_drop_event_funcs;
extern RUDropEventAllFuncs s_drop_event_all_funcs;
#ifdef __cplusplus
}
#endif