codespawn 0.1.2

C++ and Rust code generator. Supports XML and JSON for API definitions.
Documentation
struct PDUI {
    void set_title(void* private_data, const char* title);
    PDVec2 get_window_size();
    PDVec2 get_window_pos();
    void begin_child(const char* stringId, PDVec2 size, int border, int extraFlags);
    void end_child();
    float get_scroll_y();
    float get_scroll_max_y();
    void set_scroll_y(float scrollY);
    void set_scroll_here(float centerYratio);
    void set_scroll_from_pos_y(float posY, float centerYratio);
    void set_keyboard_focus_here(int offset);
    void push_font(PDUIFont font);
    void pop_font();
    void push_style_color(PDUICol idx, PDColor col);
    void pop_style_color(int count);
    void push_style_var(PDUIStyleVar idx, float val);
    void push_style_varVec(PDUIStyleVar idx, PDVec2 val);
    void pop_style_var(int count);
    float get_font_size();
    void push_item_width(float item_width);
    void pop_item_width();
    float calc_item_width();
    void push_allow_keyboard_focus(int v);
    void pop_allow_keyboard_focus();
    void push_text_wrap_pos(float wrapPosX);
    void pop_text_wrap_pos();
    void push_button_repeat(int repeat);
    void pop_button_repeat();
    void begin_group();
    void end_group();
    void separator();
    void same_line(int columnX, int spacingW);
    void spacing();
    void dummy(PDVec2 size);
    void indent();
    void un_indent();
    void columns(int count, const char* id, int border);
    void next_column();
    int get_column_index();
    float get_column_offset(int column_index);
    void set_column_offset(int column_index, float offset_x);
    float get_column_width(int column_index);
    int get_columns_count();
    PDVec2 get_cursor_pos();
    float get_cursor_pos_x();
    float get_cursor_pos_y();
    void set_cursor_pos(PDVec2 pos);
    void set_cursor_pos_x(float x);
    void set_cursor_pos_y(float y);
    PDVec2 get_cursor_screen_pos();
    void set_cursor_screen_pos(PDVec2 pos);
    void align_first_text_height_to_widgets();
    float get_text_line_height();
    float get_text_line_height_with_spacing();
    float get_items_line_height_with_spacing();
    void push_id_str(const char* strId);
    void push_id_str_range(const char* strBegin, const char* strEnd);
    void push_id_ptr(const void* ptrId);
    void push_id_int(const int intId);
    void pop_id();
    PDID get_id_str(const char* strId);
    PDID get_id_str_range(const char* strBegin, const char* strEnd);
    PDID get_id_ptr(const void* ptrId);
    void text(const char* fmt, ...);
    void text_v(const char* fmt, va_list args);
    void text_colored(const PDColor col, const char* fmt, ...);
    void text_colored_v(const PDColor col, const char* fmt, va_list args);
    void text_disabled(const char* fmt, ...);
    void text_disabled_v(const char* fmt, va_list args);
    void text_wrapped(const char* fmt, ...);
    void text_wrapped_v(const char* fmt, va_list args);
    void text_unformatted(const char* text, const char* text_end);
    void label_text(const char* label, const char* fmt, ...);
    void label_text_v(const char* label, const char* fmt, va_list args);
    void bullet();
    void bullet_text(const char* fmt, ...);
    void bullet_text_v(const char* fmt, va_list args);
    int button(const char* label, const PDVec2 size);
    int small_button(const char* label);
    int invisible_button(const char* strId, const PDVec2 size);
    void image(PDUITextureID user_texture_id, const PDVec2 size, const PDVec2 uv0, const PDVec2 uv1, const PDColor tintColor, const PDColor borderColor);
    int image_button(PDUITextureID user_texture_id, const PDVec2 size, const PDVec2 uv0, const PDVec2 uv1, int framePadding, const PDColor bgColor, const PDColor tintCol);
    int collapsing_header(const char* label, const char* strId, int displayFrame, int defaultOpen);
    int checkbox(const char* label, int* v);
    int checkbox_flags(const char* label, unsigned int* flags, unsigned int flagsValue);
    int radio_buttonBool(const char* label, int active);
    int radio_button(const char* label, int* v, int v_button);
    int combo(const char* label, int* currentItem, const char** items, int itemsCount, int heightInItems);
    int combo2(const char* label, int* currentItem, const char* itemsSeparatedByZeros, int heightInItems);
    int combo3(const char* label, int* currentItem, boolitemsGetter(void* data, int idx, const char** out_text), void* data, int itemsCount, int heightInItems);
    int color_button(const PDColor col, int smallHeight, int outlineBorder);
    int color_edit3(const char* label, float col[3]);
    int color_edit4(const char* label, float col[4], int showAlpha);
    void color_edit_mode(PDUIColorEditMode mode);
    void plot_lines(const char* label, const float* values, int valuesCount, int valuesOffset, const char* overlayText, float scaleMin, float scaleMax, PDVec2 graphSize, size_t stride);
    void plot_lines2(const char* label, floatvaluesGetter(void* data, int idx), void* data, int valuesCount, int valuesOffset, const char* overlayText, float scaleMin, float scaleMax, PDVec2 graphSize);
    void plot_histogram(const char* label, const float* values, int valuesCount, int valuesOffset, const char* overlayText, float scaleMin, float scaleMax, PDVec2 graphSize, size_t stride);
    void plot_histogram2(const char* label, floatvaluesGetter(void* data, int idx), void* data, int valuesCount, int valuesOffset, const char* overlayText, float scaleMin, float scaleMax, PDVec2 graphSize);
    PDUISCInterface* sc_input_text(const char* label, float xSize, float ySize, void callback(void*), void* user_data);
    int slider_float(const char* label, float* v, float vMin, float vMax, const char* displayFormat, float power);
    int slider_float2(const char* label, float v[2], float vMin, float vMax, const char* displayFormat, float power);
    int slider_float3(const char* label, float v[3], float vMin, float vMax, const char* displayFormat, float power);
    int slider_float4(const char* label, float v[4], float vMin, float vMax, const char* displayFormat, float power);
    int slider_angle(const char* label, float* v_rad, float vDegreesMin, float vDegreesMax);
    int slider_int(const char* label, int* v, int vMin, int vMax, const char* displayFormat);
    int slider_int2(const char* label, int v[2], int vMin, int vMax, const char* displayFormat);
    int slider_int3(const char* label, int v[3], int vMin, int vMax, const char* displayFormat);
    int slider_int4(const char* label, int v[4], int vMin, int vMax, const char* displayFormat);
    int vslider_float(const char* label, const PDVec2 size, float* v, float vMin, float vMax, const char* displayFormat, float power);
    int vslider_int(const char* label, const PDVec2 size, int* v, int vMin, int vMax, const char* displayFormat);
    int drag_float(const char* label, float* v, float vSpeed, float vMin, float vMax, const char* displayFormat, float power);
    int drag_float2(const char* label, float v[2], float vSpeed, float vMin, float vMax, const char* displayFormat, float power);
    int drag_float3(const char* label, float v[3], float vSpeed, float vMin, float vMax, const char* displayFormat, float power);
    int drag_float4(const char* label, float v[4], float vSpeed, float vMin, float vMax, const char* displayFormat, float power);
    int drag_int(const char* label, int* v, float vSpeed, int vMin, int vMax, const char* displayFormat);
    int drag_int2(const char* label, int v[2], float vSpeed, int vMin, int vMax, const char* displayFormat);
    int drag_int3(const char* label, int v[3], float vSpeed, int vMin, int vMax, const char* displayFormat);
    int drag_int4(const char* label, int v[4], float vSpeed, int vMin, int vMax, const char* displayFormat);
    int input_text(const char* label, char* buf, int buf_size, int flags, void callback(PDUIInputTextCallbackData*), void* user_data);
    int input_text_multiline(const char* label, char* buf, size_t buf_size, const PDVec2 size, PDUIInputTextFlags flags, void callback(PDUIInputTextCallbackData*), void* user_data);
    int input_float(const char* label, float* v, float step, float step_fast, int decimal_precision, PDUIInputTextFlags extraFlags);
    int input_float2(const char* label, float v[2], int decimal_precision, PDUIInputTextFlags extraFlags);
    int input_float3(const char* label, float v[3], int decimal_precision, PDUIInputTextFlags extraFlags);
    int input_float4(const char* label, float v[4], int decimal_precision, PDUIInputTextFlags extraFlags);
    int input_int(const char* label, int* v, int step, int step_fast, PDUIInputTextFlags extraFlags);
    int input_int2(const char* label, int v[2], PDUIInputTextFlags extraFlags);
    int input_int3(const char* label, int v[3], PDUIInputTextFlags extraFlags);
    int input_int4(const char* label, int v[4], PDUIInputTextFlags extraFlags);
    int tree_node(const char* str_label_id);
    int tree_node_str(const char* strId, const char* fmt, ...);
    int tree_node_ptr(const void* ptrId, const char* fmt, ...);
    int tree_node_str_v(const char* strId, const char* fmt, va_list args);
    int tree_node_ptr_v(const void* ptrId, const char* fmt, va_list args);
    void tree_push_str(const char* strId);
    void tree_push_ptr(const void* ptrId);
    void tree_pop();
    void set_next_tree_node_opened(int opened, PDUISetCond cond);
    int selectable(const char* label, int selected, PDUISelectableFlags flags, const PDVec2 size);
    int selectable_ex(const char* label, int* p_selected, PDUISelectableFlags flags, const PDVec2 size);
    int list_box(const char* label, int* currentItem, const char** items, int itemsCount, int heightInItems);
    int list_box2(const char* label, int* currentItem, boolitemsGetter(void* data, int idx, const char** out_text), void* data, int itemsCount, int heightInItems);
    int list_box_header(const char* label, const PDVec2 size);
    int list_box_header2(const char* label, int itemsCount, int heightInItems);
    void list_box_footer();
    void set_tooltip(const char* fmt, ...);
    void set_tooltip_v(const char* fmt, va_list args);
    void begin_tooltip();
    void end_tooltip();
    int begin_main_menu_bar();
    void end_main_menu_bar();
    int begin_menuBar();
    void end_menu_bar();
    int begin_menu(const char* label, int enabled);
    void end_menu();
    int menu_item(const char* label, const char* shortcut, int selected, int enabled);
    int menu_itemPtr(const char* label, const char* shortcut, int* p_selected, int enabled);
    void open_popup(const char* strId);
    int begin_popup(const char* strId);
    int begin_popup_modal(const char* name, int* p_opened, PDUIWindowFlags extraFlags);
    int begin_popup_context_item(const char* strId, int mouse_button);
    int begin_popup_context_window(int also_over_items, const char* strId, int mouse_button);
    int begin_popupContext_void(const char* strId, int mouse_button);
    void end_popup();
    void close_current_popup();
    int begin_popup_context(void* priv_data);
    void end_popup_context(void* priv_data);
    void value_bool(const char* prefix, int b);
    void value_int(const char* prefix, int v);
    void value_u_int(const char* prefix, unsigned int v);
    void value_float(const char* prefix, float v, const char* float_format);
    void color(const char* prefix, const PDColor col);
    void log_to_tty(int maxDepth);
    void log_to_file(int maxDepth, const char* filename);
    void log_to_clipboard(int maxDepth);
    void log_finish();
    void log_buttons();
    int is_item_hovered();
    int is_item_hovered_rect();
    int is_item_active();
    int is_item_visible();
    int is_any_item_hovered();
    int is_any_item_active();
    PDVec2 get_item_rect_min();
    PDVec2 get_item_rect_max();
    PDVec2 get_item_rect_size();
    int is_window_hovered();
    int is_window_focused();
    int is_root_window_focused();
    int is_root_window_or_any_child_focused();
    int is_rect_visible(const PDVec2 itemSize);
    int is_pos_hovering_any_window(const PDVec2 pos);
    float get_time();
    int get_frame_count();
    const char* get_style_col_name(PDUICol idx);
    PDVec2 calc_item_rect_closest_point(const PDVec2 pos, int on_edge, float outward);
    PDVec2 calc_text_size(const char* text, const char* text_end, int hide_text_after_double_hash, float wrap_width);
    void calc_list_clipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end);
    int begin_childFrame(PDID id, const struct PDVec2 size);
    void end_child_frame();
    void color_convert_rg_bto_hsv(float r, float g, float b, float* out_h, float* out_s, float* out_v);
    void color_convert_hs_vto_rgb(float h, float s, float v, float* out_r, float* out_g, float* out_b);
    int is_key_down(int key_index);
    int is_key_pressed(int key_index, int repeat);
    int is_key_released(int key_index);
    int is_key_down_id(uint32_t keyId, int repeat);
    int is_mouse_down(int button);
    int is_mouse_clicked(int button, int repeat);
    int is_mouse_double_clicked(int button);
    int is_mouse_released(int button);
    int is_mouse_hovering_window();
    int is_mouse_hovering_any_window();
    int is_mouse_hovering_rect(const PDVec2 rectMin, const PDVec2 rectMax);
    int is_mouse_dragging(int button, float lockThreshold);
    PDVec2 get_mouse_pos();
    PDVec2 get_mouse_drag_delta(int button, float lockThreshold);
    void reset_mouse_drag_delta(int button);
    PDUIMouseCursor get_mouse_cursor();
    void set_mouse_cursor(PDUIMouseCursor type);
    void fill_rect(PDRect rect, unsigned int color);
    void fill_convex_poly(void* verts, int count, PDColor color, int aa);
    void fill_circle(PDVec2 pos, float radius, PDColor color, int num_seg, int aa);
    void* image_create_rgba(int width, int height);
    void image_update(void* dest, const void* src, int size);
    void* private_data;
};