#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "palette_ffi.h"
#include "rect_ffi.h"
#include "style_ffi.h"
struct RUStyleFuncs;
struct RUStyle;
typedef struct RUStyleFuncs {
void (*polish)(struct RUBase* self_c, struct RUBase* widget);
void (*unpolish)(struct RUBase* self_c, struct RUBase* widget);
void (*polish_2)(struct RUBase* self_c, struct RUBase* application);
void (*unpolish_2)(struct RUBase* self_c, struct RUBase* application);
void (*polish_3)(struct RUBase* self_c, struct RUBase* palette);
struct RURect (*item_pixmap_rect)(struct RUBase* self_c, struct RUBase* r,
int flags, struct RUBase* pixmap);
void (*draw_item_text)(struct RUBase* self_c, struct RUBase* painter,
struct RUBase* rect, int flags, struct RUBase* pal,
bool enabled, const char* text, uint32_t text_role);
void (*draw_item_pixmap)(struct RUBase* self_c, struct RUBase* painter,
struct RUBase* rect, int alignment,
struct RUBase* pixmap);
struct RUPalette (*standard_palette)(struct RUBase* self_c);
struct RUStyle (*proxy)(struct RUBase* self_c);
} RUStyleFuncs;
typedef struct RUStyleAllFuncs {
struct RUObjectFuncs* object_funcs;
struct RUStyleFuncs* style_funcs;
} RUStyleAllFuncs;
typedef struct RUStyle {
RUBase* qt_data;
RUBase* host_data;
struct RUStyleAllFuncs* all_funcs;
} RUStyle;
extern RUStyleFuncs s_style_funcs;
extern RUStyleAllFuncs s_style_all_funcs;
#ifdef __cplusplus
}
#endif