GaiaXStretch/bindings/swift/StretchKit/Headers/libstretch.h (64 lines of code) (raw):
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
typedef struct {
float width;
float height;
} StretchSize;
typedef struct {
int32_t dimen_type;
float dimen_value;
} StretchStyleDimension;
typedef struct {
StretchStyleDimension start;
StretchStyleDimension end;
StretchStyleDimension top;
StretchStyleDimension bottom;
} StretchStyleRect;
typedef struct {
StretchStyleDimension width;
StretchStyleDimension height;
} StretchStyleSize;
void stretch_free(void *stretch);
void *stretch_init(void);
void stretch_node_add_child(void *stretch, void *node, void *child);
void *stretch_node_compute_layout(void *stretch,
void *node,
float width,
float height,
void *(*create_layout)(const float*));
void *stretch_node_create(void *stretch, void *style);
bool stretch_node_dirty(void *stretch, void *node);
void stretch_node_free(void *stretch, void *node);
void stretch_node_mark_dirty(void *stretch, void *node);
void stretch_node_remove_child(void *stretch, void *node, void *child);
void stretch_node_remove_child_at_index(void *stretch, void *node, uintptr_t index);
void stretch_node_replace_child_at_index(void *stretch, void *node, uintptr_t index, void *child);
void stretch_node_set_measure(void *stretch,
void *node,
void *swift_ptr,
StretchSize (*measure)(const void*, float, float));
void stretch_node_set_style(void *stretch, void *node, void *style);
void *stretch_style_create(int32_t display,
int32_t position_type,
int32_t direction,
int32_t flex_direction,
int32_t flex_wrap,
int32_t overflow,
int32_t align_items,
int32_t align_self,
int32_t align_content,
int32_t justify_content,
StretchStyleRect position,
StretchStyleRect margin,
StretchStyleRect padding,
StretchStyleRect border,
float flex_grow,
float flex_shrink,
StretchStyleDimension flex_basis,
StretchStyleSize size,
StretchStyleSize min_size,
StretchStyleSize max_size,
float aspect_ratio);
void stretch_style_free(void *style);