#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "button_group_ffi.h"
#include "icon_ffi.h"
#include "key_sequence_ffi.h"
#include "size_ffi.h"
struct RUAbstractButtonFuncs;
struct RUAbstractButton;
typedef struct RUAbstractButtonFuncs {
void (*set_text)(struct RUBase* self_c, const char* text);
const char* (*text)(struct RUBase* self_c);
void (*set_icon)(struct RUBase* self_c, struct RUBase* icon);
struct RUIcon (*icon)(struct RUBase* self_c);
struct RUSize (*icon_size)(struct RUBase* self_c);
void (*set_shortcut)(struct RUBase* self_c, struct RUBase* key);
struct RUKeySequence (*shortcut)(struct RUBase* self_c);
void (*set_checkable)(struct RUBase* self_c, bool arg0);
bool (*is_checkable)(struct RUBase* self_c);
bool (*is_checked)(struct RUBase* self_c);
void (*set_down)(struct RUBase* self_c, bool arg0);
bool (*is_down)(struct RUBase* self_c);
void (*set_auto_repeat)(struct RUBase* self_c, bool arg0);
bool (*auto_repeat)(struct RUBase* self_c);
void (*set_auto_repeat_delay)(struct RUBase* self_c, int arg0);
int (*auto_repeat_delay)(struct RUBase* self_c);
void (*set_auto_repeat_interval)(struct RUBase* self_c, int arg0);
int (*auto_repeat_interval)(struct RUBase* self_c);
void (*set_auto_exclusive)(struct RUBase* self_c, bool arg0);
bool (*auto_exclusive)(struct RUBase* self_c);
struct RUButtonGroup (*group)(struct RUBase* self_c);
void (*set_icon_size)(struct RUBase* self_c, struct RUBase* size);
void (*animate_click)(struct RUBase* self_c, int msec);
void (*click)(struct RUBase* self_c);
void (*toggle)(struct RUBase* self_c);
void (*set_checked)(struct RUBase* self_c, bool arg0);
void (*set_pressed_event)(void* object, void* user_data, void* wrapped_func,
void (*event)(void*, void* self_c));
void (*set_released_event)(void* object, void* user_data,
void* wrapped_func,
void (*event)(void*, void* self_c));
void (*set_clicked_event)(void* object, void* user_data, void* wrapped_func,
void (*event)(void*, void* self_c, bool checked));
void (*set_toggled_event)(void* object, void* user_data, void* wrapped_func,
void (*event)(void*, void* self_c, bool checked));
void (*set_paint_event)(void* object, void* user_data, void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_paint_event)(void* object);
void (*set_key_press_event)(void* object, void* user_data,
void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_key_press_event)(void* object);
void (*set_key_release_event)(void* object, void* user_data,
void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_key_release_event)(void* object);
void (*set_mouse_press_event)(void* object, void* user_data,
void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_mouse_press_event)(void* object);
void (*set_mouse_release_event)(void* object, void* user_data,
void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_mouse_release_event)(void* object);
void (*set_mouse_move_event)(void* object, void* user_data,
void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_mouse_move_event)(void* object);
void (*set_focus_in_event)(void* object, void* user_data,
void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_focus_in_event)(void* object);
void (*set_focus_out_event)(void* object, void* user_data,
void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_focus_out_event)(void* object);
void (*set_change_event)(void* object, void* user_data, void* wrapped_func,
void (*event)(void*, void* self_c,
struct RUBase* e));
void (*remove_change_event)(void* object);
} RUAbstractButtonFuncs;
typedef struct RUAbstractButtonAllFuncs {
struct RUObjectFuncs* object_funcs;
struct RUPaintDeviceFuncs* paint_device_funcs;
struct RUWidgetFuncs* widget_funcs;
struct RUAbstractButtonFuncs* abstract_button_funcs;
} RUAbstractButtonAllFuncs;
typedef struct RUAbstractButton {
RUBase* qt_data;
RUBase* host_data;
struct RUAbstractButtonAllFuncs* all_funcs;
} RUAbstractButton;
extern RUAbstractButtonFuncs s_abstract_button_funcs;
extern RUAbstractButtonAllFuncs s_abstract_button_all_funcs;
#ifdef __cplusplus
}
#endif