rute 0.0.6

UI library implemented on top of Qt
Documentation
// This file is auto-generated by rute_gen. DO NOT EDIT!
#pragma once

#include <stdint.h>
#include <stdbool.h>

#include "../rute_base.h"

#ifdef __cplusplus
extern "C" {
#endif
#include "painter_path_ffi.h"
#include "point_f_ffi.h"
#include "polygon_f_ffi.h"
#include "rect_f_ffi.h"

struct RUPainterPathFuncs;
struct RUPainterPath;

typedef struct RUPainterPathFuncs {
    void (*destroy)(struct RUBase* self);
    void (*swap)(struct RUBase* self_c, struct RUBase* other);
    void (*close_subpath)(struct RUBase* self_c);
    void (*move_to)(struct RUBase* self_c, struct RUBase* p);
    void (*move_to)(struct RUBase* self_c, float x, float y);
    void (*line_to)(struct RUBase* self_c, struct RUBase* p);
    void (*line_to)(struct RUBase* self_c, float x, float y);
    void (*arc_move_to)(struct RUBase* self_c, struct RUBase* rect, float angle);
    void (*arc_move_to)(struct RUBase* self_c, float x, float y, float w, float h, float angle);
    void (*arc_to)(struct RUBase* self_c, struct RUBase* rect, float start_angle, float arc_length);
    void (*arc_to)(struct RUBase* self_c, float x, float y, float w, float h, float start_angle, float arc_length);
    void (*cubic_to)(struct RUBase* self_c, struct RUBase* ctrl_pt1, struct RUBase* ctrl_pt2, struct RUBase* end_pt);
    void (*cubic_to)(struct RUBase* self_c, float ctrl_pt1x, float ctrl_pt1y, float ctrl_pt2x, float ctrl_pt2y, float end_ptx, float end_pty);
    void (*quad_to)(struct RUBase* self_c, struct RUBase* ctrl_pt, struct RUBase* end_pt);
    void (*quad_to)(struct RUBase* self_c, float ctrl_ptx, float ctrl_pty, float end_ptx, float end_pty);
    struct RUPointF (*current_position)(struct RUBase* self_c);
    void (*add_rect)(struct RUBase* self_c, struct RUBase* rect);
    void (*add_rect)(struct RUBase* self_c, float x, float y, float w, float h);
    void (*add_ellipse)(struct RUBase* self_c, struct RUBase* rect);
    void (*add_ellipse)(struct RUBase* self_c, float x, float y, float w, float h);
    void (*add_ellipse)(struct RUBase* self_c, struct RUBase* center, float rx, float ry);
    void (*add_polygon)(struct RUBase* self_c, struct RUBase* polygon);
    void (*add_text)(struct RUBase* self_c, struct RUBase* point, struct RUBase* f, const char* text);
    void (*add_text)(struct RUBase* self_c, float x, float y, struct RUBase* f, const char* text);
    void (*add_path)(struct RUBase* self_c, struct RUBase* path);
    void (*add_region)(struct RUBase* self_c, struct RUBase* region);
    void (*add_rounded_rect)(struct RUBase* self_c, struct RUBase* rect, float x_radius, float y_radius, int mode);
    void (*add_rounded_rect)(struct RUBase* self_c, float x, float y, float w, float h, float x_radius, float y_radius, int mode);
    void (*add_round_rect)(struct RUBase* self_c, struct RUBase* rect, int x_rnd, int y_rnd);
    void (*add_round_rect)(struct RUBase* self_c, float x, float y, float w, float h, int x_rnd, int y_rnd);
    void (*add_round_rect)(struct RUBase* self_c, struct RUBase* rect, int roundness);
    void (*add_round_rect)(struct RUBase* self_c, float x, float y, float w, float h, int roundness);
    void (*connect_path)(struct RUBase* self_c, struct RUBase* path);
    bool (*contains)(struct RUBase* self_c, struct RUBase* pt);
    bool (*contains)(struct RUBase* self_c, struct RUBase* rect);
    bool (*intersects)(struct RUBase* self_c, struct RUBase* rect);
    struct RURectF (*bounding_rect)(struct RUBase* self_c);
    int (*fill_rule)(struct RUBase* self_c);
    void (*set_fill_rule)(struct RUBase* self_c, int fill_rule);
    bool (*is_empty)(struct RUBase* self_c);
    struct RUPainterPath (*to_reversed)(struct RUBase* self_c);
    struct RUArray (*to_subpath_polygons)(struct RUBase* self_c, struct RUBase* matrix);
    struct RUArray (*to_fill_polygons)(struct RUBase* self_c, struct RUBase* matrix);
    struct RUPolygonF (*to_fill_polygon)(struct RUBase* self_c, struct RUBase* matrix);
    struct RUArray (*to_subpath_polygons)(struct RUBase* self_c, struct RUBase* matrix);
    struct RUArray (*to_fill_polygons)(struct RUBase* self_c, struct RUBase* matrix);
    struct RUPolygonF (*to_fill_polygon)(struct RUBase* self_c, struct RUBase* matrix);
    int (*element_count)(struct RUBase* self_c);
    int (*element_at)(struct RUBase* self_c, int i);
    void (*set_element_position_at)(struct RUBase* self_c, int i, float x, float y);
    float (*length)(struct RUBase* self_c);
    float (*percent_at_length)(struct RUBase* self_c, float t);
    struct RUPointF (*point_at_percent)(struct RUBase* self_c, float t);
    float (*angle_at_percent)(struct RUBase* self_c, float t);
    float (*slope_at_percent)(struct RUBase* self_c, float t);
    bool (*intersects)(struct RUBase* self_c, struct RUBase* p);
    bool (*contains)(struct RUBase* self_c, struct RUBase* p);
    struct RUPainterPath (*united)(struct RUBase* self_c, struct RUBase* r);
    struct RUPainterPath (*intersected)(struct RUBase* self_c, struct RUBase* r);
    struct RUPainterPath (*simplified)(struct RUBase* self_c);
} RUPainterPathFuncs;

typedef struct RUPainterPathAllFuncs {
    struct RUPainterPathFuncs* painter_path_funcs;
} RUPainterPathAllFuncs;

typedef struct RUPainterPath {
    RUBase* qt_data;
    RUBase* host_data;
    struct RUPainterPathAllFuncs* all_funcs;
} RUPainterPath;

extern RUPainterPathFuncs s_painter_path_funcs;
extern RUPainterPathAllFuncs s_painter_path_all_funcs;

#ifdef __cplusplus
}
#endif