#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "font_ffi.h"
struct RUFontFuncs;
struct RUFont;
typedef struct RUFontFuncs {
void (*destroy)(struct RUBase* self);
void (*swap)(struct RUBase* self_c, struct RUBase* other);
const char* (*family)(struct RUBase* self_c);
void (*set_family)(struct RUBase* self_c, const char* arg0);
const char* (*style_name)(struct RUBase* self_c);
void (*set_style_name)(struct RUBase* self_c, const char* arg0);
int (*point_size)(struct RUBase* self_c);
void (*set_point_size)(struct RUBase* self_c, int arg0);
float (*point_size_f)(struct RUBase* self_c);
void (*set_point_size_f)(struct RUBase* self_c, float arg0);
int (*pixel_size)(struct RUBase* self_c);
void (*set_pixel_size)(struct RUBase* self_c, int arg0);
int (*weight)(struct RUBase* self_c);
void (*set_weight)(struct RUBase* self_c, int arg0);
bool (*bold)(struct RUBase* self_c);
void (*set_bold)(struct RUBase* self_c, bool arg0);
bool (*italic)(struct RUBase* self_c);
void (*set_italic)(struct RUBase* self_c, bool b);
bool (*underline)(struct RUBase* self_c);
void (*set_underline)(struct RUBase* self_c, bool arg0);
bool (*overline)(struct RUBase* self_c);
void (*set_overline)(struct RUBase* self_c, bool arg0);
bool (*fixed_pitch)(struct RUBase* self_c);
void (*set_fixed_pitch)(struct RUBase* self_c, bool arg0);
bool (*kerning)(struct RUBase* self_c);
void (*set_kerning)(struct RUBase* self_c, bool arg0);
int (*style_hint)(struct RUBase* self_c);
void (*set_style_hint)(struct RUBase* self_c, int arg0, int arg1);
float (*letter_spacing)(struct RUBase* self_c);
int (*letter_spacing_type)(struct RUBase* self_c);
void (*set_letter_spacing)(struct RUBase* self_c, int stype, float spacing);
float (*word_spacing)(struct RUBase* self_c);
void (*set_word_spacing)(struct RUBase* self_c, float spacing);
void (*set_capitalization)(struct RUBase* self_c, int arg0);
int (*capitalization)(struct RUBase* self_c);
void (*set_hinting_preference)(struct RUBase* self_c,
int hinting_preference);
int (*hinting_preference)(struct RUBase* self_c);
bool (*raw_mode)(struct RUBase* self_c);
void (*set_raw_mode)(struct RUBase* self_c, bool arg0);
bool (*exact_match)(struct RUBase* self_c);
bool (*is_copy_of)(struct RUBase* self_c, struct RUBase* arg0);
void (*set_raw_name)(struct RUBase* self_c, const char* arg0);
const char* (*raw_name)(struct RUBase* self_c);
const char* (*key)(struct RUBase* self_c);
const char* (*substitute)(struct RUBase* self_c, const char* arg0);
void (*insert_substitution)(struct RUBase* self_c, const char* arg0,
const char* arg1);
void (*remove_substitutions)(struct RUBase* self_c, const char* arg0);
void (*initialize)(struct RUBase* self_c);
void (*cleanup)(struct RUBase* self_c);
void (*cache_statistics)(struct RUBase* self_c);
const char* (*default_family)(struct RUBase* self_c);
const char* (*last_resort_family)(struct RUBase* self_c);
const char* (*last_resort_font)(struct RUBase* self_c);
struct RUFont (*resolve)(struct RUBase* self_c, struct RUBase* arg0);
uint64_t (*resolve_2)(struct RUBase* self_c);
void (*resolve_3)(struct RUBase* self_c, uint64_t mask);
} RUFontFuncs;
typedef struct RUFontAllFuncs {
struct RUFontFuncs* font_funcs;
} RUFontAllFuncs;
typedef struct RUFont {
RUBase* qt_data;
RUBase* host_data;
struct RUFontAllFuncs* all_funcs;
} RUFont;
extern RUFontFuncs s_font_funcs;
extern RUFontAllFuncs s_font_all_funcs;
#ifdef __cplusplus
}
#endif