#pragma once
#include <stdbool.h>
#include <stdint.h>
#include "../rute_base.h"
#include "application_ffi.h"
#include "backing_store_ffi.h"
#include "bitmap_ffi.h"
#include "brush_ffi.h"
#include "close_event_ffi.h"
#include "color_ffi.h"
#include "context_menu_event_ffi.h"
#include "cursor_ffi.h"
#include "drag_enter_event_ffi.h"
#include "drag_leave_event_ffi.h"
#include "drag_move_event_ffi.h"
#include "drop_event_ffi.h"
#include "event_ffi.h"
#include "expose_event_ffi.h"
#include "focus_event_ffi.h"
#include "font_ffi.h"
#include "font_info_ffi.h"
#include "gradient_ffi.h"
#include "hide_event_ffi.h"
#include "icon_ffi.h"
#include "image_ffi.h"
#include "input_event_ffi.h"
#include "key_event_ffi.h"
#include "key_sequence_ffi.h"
#include "layout_ffi.h"
#include "layout_item_ffi.h"
#include "line_f_ffi.h"
#include "line_ffi.h"
#include "list_widget_ffi.h"
#include "list_widget_item_ffi.h"
#include "margins_ffi.h"
#include "matrix_ffi.h"
#include "mime_data_ffi.h"
#include "mouse_event_ffi.h"
#include "move_event_ffi.h"
#include "object_ffi.h"
#include "paint_device_ffi.h"
#include "paint_engine_ffi.h"
#include "paint_engine_state_ffi.h"
#include "paint_event_ffi.h"
#include "painter_ffi.h"
#include "palette_ffi.h"
#include "pen_ffi.h"
#include "pixel_format_ffi.h"
#include "pixmap_ffi.h"
#include "point_f_ffi.h"
#include "point_ffi.h"
#include "polygon_f_ffi.h"
#include "polygon_ffi.h"
#include "push_button_ffi.h"
#include "rect_f_ffi.h"
#include "rect_ffi.h"
#include "region_ffi.h"
#include "resize_event_ffi.h"
#include "screen_ffi.h"
#include "show_event_ffi.h"
#include "size_f_ffi.h"
#include "size_ffi.h"
#include "size_policy_ffi.h"
#include "spacer_item_ffi.h"
#include "style_ffi.h"
#include "surface_ffi.h"
#include "surface_format_ffi.h"
#include "tablet_event_ffi.h"
#include "touch_event_ffi.h"
#include "transform_ffi.h"
#include "wheel_event_ffi.h"
#include "widget_ffi.h"
#include "window_ffi.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct RuteFFI {
struct RUApplication (*create_application)(struct RUBase* priv_data);
struct RUApplication (*get_application)(struct RUBase* priv_data);
struct RUBitmap (*create_bitmap)(struct RUBase* priv_data);
struct RUBitmap (*get_bitmap)(struct RUBase* priv_data);
struct RUBrush (*create_brush)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUColor (*create_color)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUColor (*get_color)(struct RUBase* priv_data);
struct RUCursor (*create_cursor)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUCursor (*get_cursor)(struct RUBase* priv_data);
struct RUFont (*create_font)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUFont (*get_font)(struct RUBase* priv_data);
struct RUGradient (*create_gradient)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUIcon (*create_icon)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUIcon (*get_icon)(struct RUBase* priv_data);
struct RUImage (*create_image)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUImage (*get_image)(struct RUBase* priv_data);
struct RUKeySequence (*create_key_sequence)(
struct RUBase* priv_data, RUDeleteCallback delete_callback,
void* host_data);
struct RUKeySequence (*get_key_sequence)(struct RUBase* priv_data);
struct RULine (*create_line)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RULineF (*create_line_f)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RULineF (*get_line_f)(struct RUBase* priv_data);
struct RUListWidget (*create_list_widget)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUListWidgetItem (*create_list_widget_item)(
struct RUBase* priv_data, RUDeleteCallback delete_callback,
void* host_data);
struct RUMargins (*create_margins)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUMatrix (*create_matrix)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUMimeData (*create_mime_data)(struct RUBase* priv_data);
struct RUObject (*create_object)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPaintEngineState (*create_paint_engine_state)(
struct RUBase* priv_data, RUDeleteCallback delete_callback,
void* host_data);
struct RUPainter (*create_painter)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPainter (*get_painter)(struct RUBase* priv_data);
struct RUPalette (*create_palette)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPen (*create_pen)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPixelFormat (*create_pixel_format)(
struct RUBase* priv_data, RUDeleteCallback delete_callback,
void* host_data);
struct RUPixmap (*create_pixmap)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPixmap (*get_pixmap)(struct RUBase* priv_data);
struct RUPoint (*create_point)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPoint (*get_point)(struct RUBase* priv_data);
struct RUPointF (*create_point_f)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPointF (*get_point_f)(struct RUBase* priv_data);
struct RUPolygon (*create_polygon)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPolygonF (*create_polygon_f)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUPushButton (*create_push_button)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RURect (*create_rect)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RURectF (*create_rect_f)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RURegion (*create_region)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUSize (*create_size)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUSizeF (*create_size_f)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUSizePolicy (*create_size_policy)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUSurfaceFormat (*create_surface_format)(
struct RUBase* priv_data, RUDeleteCallback delete_callback,
void* host_data);
struct RUSurfaceFormat (*get_surface_format)(struct RUBase* priv_data);
struct RUTransform (*create_transform)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUTransform (*get_transform)(struct RUBase* priv_data);
struct RUWidget (*create_widget)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUWidget (*get_widget)(struct RUBase* priv_data);
struct RUWindow (*create_window)(struct RUBase* priv_data,
RUDeleteCallback delete_callback,
void* host_data);
struct RUWindow (*get_window)(struct RUBase* priv_data);
} RuteFFI;
extern RuteFFI* rute_static_ffi_get();
#ifdef __cplusplus
}
#endif