#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "layout_ffi.h"
#include "size_ffi.h"
#include "spacer_item_ffi.h"
#include "widget_ffi.h"
struct RULayoutItemFuncs;
struct RULayoutItem;
typedef struct RULayoutItemFuncs {
struct RUSize (*size_hint)(struct RUBase* self_c);
struct RUSize (*minimum_size)(struct RUBase* self_c);
struct RUSize (*maximum_size)(struct RUBase* self_c);
int (*expanding_directions)(struct RUBase* self_c);
bool (*is_empty)(struct RUBase* self_c);
bool (*has_height_for_width)(struct RUBase* self_c);
int (*height_for_width)(struct RUBase* self_c, int arg0);
int (*minimum_height_for_width)(struct RUBase* self_c, int arg0);
void (*invalidate)(struct RUBase* self_c);
struct RUWidget (*widget)(struct RUBase* self_c);
struct RULayout (*layout)(struct RUBase* self_c);
struct RUSpacerItem (*spacer_item)(struct RUBase* self_c);
int (*alignment)(struct RUBase* self_c);
void (*set_alignment)(struct RUBase* self_c, int a);
} RULayoutItemFuncs;
typedef struct RULayoutItemAllFuncs {
struct RULayoutItemFuncs* layout_item_funcs;
} RULayoutItemAllFuncs;
typedef struct RULayoutItem {
RUBase* qt_data;
RUBase* host_data;
struct RULayoutItemAllFuncs* all_funcs;
} RULayoutItem;
extern RULayoutItemFuncs s_layout_item_funcs;
extern RULayoutItemAllFuncs s_layout_item_all_funcs;
#ifdef __cplusplus
}
#endif