floui-sys 0.1.0

A SwiftUI inspired native wrapper for iOS and Android widgets
#pragma once

#ifdef __cplusplus
extern "C" {
#endif

void Cfloui_log(const char *s);

#define DECLARE_SHARED_METHODS(x)                                                                  \
    void x##_id(x *self, const char *id);                                                          \
    void x##_background(x *self, unsigned int col);                                                \
    void x##_size(x *self, int w, int h);                                                          \
    void *x##_inner(x *self);

#define DECLARE_SHARED_GROUP_METHODS(x)                                                            \
    void x##_add(x *self, const CWidget *w);                                                       \
    void x##_remove(x *self, const CWidget *w);                                                    \
    void x##_clear(x *self);                                                                       \
    void x##_spacing(x *self, int spacing);

typedef struct CFlouiViewController CFlouiViewController;

CFlouiViewController *CFlouiViewController_new(void *, void *, void *);

void CFlouiViewController_handle_events(void *);

typedef struct CWidget CWidget;

DECLARE_SHARED_METHODS(CWidget);

typedef void (*CFlouiCallback)(CWidget *, void *data);

typedef struct CMainView CMainView;

CMainView *CMainView_new(const CFlouiViewController *fvc);

DECLARE_SHARED_METHODS(CMainView);

DECLARE_SHARED_GROUP_METHODS(CMainView);

typedef struct CVStack CVStack;

CVStack *CVStack_new(void);

DECLARE_SHARED_METHODS(CVStack);

DECLARE_SHARED_GROUP_METHODS(CVStack);

typedef struct CHStack CHStack;

CHStack *CHStack_new(void);

DECLARE_SHARED_METHODS(CHStack);

DECLARE_SHARED_GROUP_METHODS(CHStack);

typedef struct CButton CButton;

DECLARE_SHARED_METHODS(CButton);

CButton *CButton_new(const char *label);

void CButton_action(CButton *self, CFlouiCallback cb, void *data);

void CButton_filled(CButton *self);

void CButton_foreground(CButton *self, unsigned int c);

typedef struct CToggle CToggle;

DECLARE_SHARED_METHODS(CToggle);

CToggle *CToggle_new(const char *label);

void CToggle_action(CToggle *self, CFlouiCallback cb, void *data);

void CToggle_set_value(CToggle *self, int val);

int CToggle_value(CToggle *self);

void CToggle_foreground(CToggle *self, unsigned int c);

typedef struct CCheck CCheck;

DECLARE_SHARED_METHODS(CCheck);

CCheck *CCheck_new(const char *label);

void CCheck_action(CCheck *self, CFlouiCallback cb, void *data);

void CCheck_set_value(CCheck *self, int val);

int CCheck_value(CCheck *self);

void CCheck_foreground(CCheck *self, unsigned int c);

typedef struct CSlider CSlider;

DECLARE_SHARED_METHODS(CSlider);

CSlider *CSlider_new();

void CSlider_action(CSlider *self, CFlouiCallback cb, void *data);

void CSlider_set_value(CSlider *self, double val);

double CSlider_value(CSlider *self);

void CSlider_foreground(CSlider *self, unsigned int c);

typedef struct CText CText;

DECLARE_SHARED_METHODS(CText);

CText *CText_new(const char *label);

void CText_text(CText *self, const char *t);

void CText_center(CText *self);

void CText_bold(CText *self);

void CText_foreground(CText *self, unsigned int c);

void CText_fontsize(CText *self, int size);

typedef struct CTextField CTextField;

DECLARE_SHARED_METHODS(CTextField);

CTextField *CTextField_new();

void CTextField_text(CTextField *self, const char *t);

void CTextField_center(CTextField *self);

void CTextField_foreground(CTextField *self, unsigned int c);

void CTextField_fontsize(CTextField *self, int size);

typedef struct CSpacer CSpacer;

DECLARE_SHARED_METHODS(CSpacer);

CSpacer *CSpacer_new();

typedef struct CImageView CImageView;

DECLARE_SHARED_METHODS(CImageView);

CImageView *CImageView_new();

CImageView *CImageView_load(const char *path);

void CImageView_image(CImageView *self, const char *path);

typedef struct CWebView CWebView;

DECLARE_SHARED_METHODS(CWebView)

CWebView *CWebView_new();

void CWebView_load_url(CWebView *self, const char *url);

void CWebView_load_html(CWebView *self, const char *html);

typedef struct CScrollView CScrollView;

DECLARE_SHARED_METHODS(CScrollView)

CScrollView *CScrollView_new(const CWidget *w);

#ifdef __cplusplus
}
#endif