#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "layout_item_ffi.h"
#include "rect_ffi.h"
struct RUGridLayoutFuncs;
struct RUGridLayout;
typedef struct RUGridLayoutFuncs {
void (*destroy)(struct RUBase* self);
void (*set_horizontal_spacing)(struct RUBase* self_c, int spacing);
int (*horizontal_spacing)(struct RUBase* self_c);
void (*set_vertical_spacing)(struct RUBase* self_c, int spacing);
int (*vertical_spacing)(struct RUBase* self_c);
void (*set_spacing)(struct RUBase* self_c, int spacing);
int (*spacing)(struct RUBase* self_c);
void (*set_row_minimum_height)(struct RUBase* self_c, int row,
int min_size);
void (*set_column_minimum_width)(struct RUBase* self_c, int column,
int min_size);
int (*row_minimum_height)(struct RUBase* self_c, int row);
int (*column_minimum_width)(struct RUBase* self_c, int column);
int (*column_count)(struct RUBase* self_c);
int (*row_count)(struct RUBase* self_c);
struct RURect (*cell_rect)(struct RUBase* self_c, int row, int column);
void (*add_widget)(struct RUBase* self_c, struct RUBase* w);
void (*add_widget_row_column)(struct RUBase* self_c, struct RUBase* arg0,
int row, int column, uint32_t arg1);
void (*add_widget_row_column_span)(struct RUBase* self_c,
struct RUBase* arg0, int row, int column,
int row_span, int column_span,
uint32_t arg1);
void (*add_layout)(struct RUBase* self_c, struct RUBase* arg0, int row,
int column, uint32_t arg1);
void (*add_layout_2)(struct RUBase* self_c, struct RUBase* arg0, int row,
int column, int row_span, int column_span,
uint32_t arg1);
void (*set_origin_corner)(struct RUBase* self_c, uint32_t arg0);
uint32_t (*origin_corner)(struct RUBase* self_c);
struct RULayoutItem (*item_at_position)(struct RUBase* self_c, int row,
int column);
int (*count)(struct RUBase* self_c);
void (*set_default_positioning)(struct RUBase* self_c, int n,
uint32_t orient);
} RUGridLayoutFuncs;
typedef struct RUGridLayoutAllFuncs {
struct RUObjectFuncs* object_funcs;
struct RULayoutItemFuncs* layout_item_funcs;
struct RULayoutFuncs* layout_funcs;
struct RUGridLayoutFuncs* grid_layout_funcs;
} RUGridLayoutAllFuncs;
typedef struct RUGridLayout {
RUBase* qt_data;
RUBase* host_data;
struct RUGridLayoutAllFuncs* all_funcs;
} RUGridLayout;
extern RUGridLayoutFuncs s_grid_layout_funcs;
extern RUGridLayoutAllFuncs s_grid_layout_all_funcs;
#ifdef __cplusplus
}
#endif