#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#ifdef __cplusplus
extern "C" {
#endif
struct RUSizePolicyFuncs;
struct RUSizePolicy;
typedef struct RUSizePolicyFuncs {
void (*destroy)(struct RUBase* self);
uint32_t (*horizontal_policy)(struct RUBase* self_c);
uint32_t (*vertical_policy)(struct RUBase* self_c);
void (*set_horizontal_policy)(struct RUBase* self_c, uint32_t d);
void (*set_vertical_policy)(struct RUBase* self_c, uint32_t d);
uint32_t (*expanding_directions)(struct RUBase* self_c);
void (*set_height_for_width)(struct RUBase* self_c, bool b);
bool (*has_height_for_width)(struct RUBase* self_c);
void (*set_width_for_height)(struct RUBase* self_c, bool b);
bool (*has_width_for_height)(struct RUBase* self_c);
bool (*retain_size_when_hidden)(struct RUBase* self_c);
void (*set_retain_size_when_hidden)(struct RUBase* self_c,
bool retain_size);
} RUSizePolicyFuncs;
typedef struct RUSizePolicyAllFuncs {
struct RUSizePolicyFuncs* size_policy_funcs;
} RUSizePolicyAllFuncs;
typedef struct RUSizePolicy {
RUBase* qt_data;
RUBase* host_data;
struct RUSizePolicyAllFuncs* all_funcs;
} RUSizePolicy;
extern RUSizePolicyFuncs s_size_policy_funcs;
extern RUSizePolicyAllFuncs s_size_policy_all_funcs;
#ifdef __cplusplus
}
#endif