rute 0.0.4

UI library implemented on top of Qt
// This file is auto-generated by rute_gen. DO NOT EDIT!
#pragma once

#include <stdbool.h>
#include <stdint.h>

#include "../rute_base.h"

#ifdef __cplusplus
extern "C" {
#endif
#include "font_ffi.h"
#include "widget_ffi.h"

struct RUApplicationFuncs;
struct RUApplication;

typedef struct RUApplicationFuncs {
    void (*destroy)(struct RUBase* self);
    int (*color_spec)(struct RUBase* self_c);
    void (*set_color_spec)(struct RUBase* self_c, int arg0);
    struct RUFont (*get_font)(struct RUBase* self_c);
    struct RUWidget (*active_popup_widget)(struct RUBase* self_c);
    struct RUWidget (*active_modal_widget)(struct RUBase* self_c);
    struct RUWidget (*focus_widget)(struct RUBase* self_c);
    struct RUWidget (*active_window)(struct RUBase* self_c);
    void (*set_active_window)(struct RUBase* self_c, struct RUBase* actor);
    struct RUWidget (*widget_at)(struct RUBase* self_c, int x, int y);
    struct RUWidget (*top_level_at)(struct RUBase* self_c, int x, int y);
    void (*beep)(struct RUBase* self_c);
    void (*set_cursor_flash_time)(struct RUBase* self_c, int arg0);
    int (*cursor_flash_time)(struct RUBase* self_c);
    void (*set_double_click_interval)(struct RUBase* self_c, int arg0);
    int (*double_click_interval)(struct RUBase* self_c);
    void (*set_keyboard_input_interval)(struct RUBase* self_c, int arg0);
    int (*keyboard_input_interval)(struct RUBase* self_c);
    void (*set_wheel_scroll_lines)(struct RUBase* self_c, int arg0);
    int (*wheel_scroll_lines)(struct RUBase* self_c);
    void (*set_start_drag_time)(struct RUBase* self_c, int ms);
    int (*start_drag_time)(struct RUBase* self_c);
    void (*set_start_drag_distance)(struct RUBase* self_c, int l);
    int (*start_drag_distance)(struct RUBase* self_c);
    int (*exec)(struct RUBase* self_c);
    void (*set_about_to_quit_event)(void* object, void* user_data,
                                    void* wrapped_func,
                                    void (*event)(void*, void* self_c));
    void (*set_screen_added_event)(void* object, void* user_data,
                                   void* wrapped_func,
                                   void (*event)(void*, void* self_c,
                                                 struct RUBase* screen));
    void (*set_style_sheet)(struct RUBase* self_c, const char* sheet);
    void (*set_auto_sip_enabled)(struct RUBase* self_c, bool enabled);
    bool (*auto_sip_enabled)(struct RUBase* self_c);
    void (*close_all_windows)(struct RUBase* self_c);
    void (*about_qt)(struct RUBase* self_c);
} RUApplicationFuncs;

typedef struct RUApplicationAllFuncs {
    struct RUApplicationFuncs* application_funcs;
} RUApplicationAllFuncs;

typedef struct RUApplication {
    RUBase* qt_data;
    RUBase* host_data;
    struct RUApplicationAllFuncs* all_funcs;
} RUApplication;

extern RUApplicationFuncs s_application_funcs;
extern RUApplicationAllFuncs s_application_all_funcs;

#ifdef __cplusplus
}
#endif