generic type defs that can be used without #including a more specific header

typedef int mbtk_bool_t; typedef struct mbtk_backend_s mbtk_backend_t; typedef struct mbtk_widget_s mbtk_widget_t; typedef struct mbtk_window_s mbtk_window_t; typedef struct mbtk_display_s mbtk_display_t; typedef struct mbtk_style_s mbtk_style_t; typedef struct mbtk_styleprop_s mbtk_styleprop_t; /* Opaque, declared within the style code */ typedef struct mbtk_widget_imp_s mbtk_widget_imp_t; typedef struct mbtk_event_s mbtk_event_t; typedef struct mbtk_handler_s mbtk_handler_t; typedef struct mbtk_htcb_s mbtk_callbacks_t; typedef struct mbtk_pixmap_s mbtk_pixmap_t; typedef struct mbtk_px_id_s { void *p; long l; } mbtk_px_id_t; typedef int mbtk_kw_t; #define mbtk_kw_invalid ((mbtk_kw_t)0) typedef union mbtk_font_id_u { long l; void *p; } mbtk_font_id_t; extern mbtk_font_id_t mbtk_invalid_font_id; #define mbtk_is_font_id_invalid(fid) ((fid).l == -1) /* opaque, backend-specific cursor handle type, used only as pointer */ typedef struct mbtk_mocu_s mbtk_mocu_t; typedef enum mbtk_mocu_named_e { MBTK_MOCU_ARROW, /* standard arrow */ MBTK_MOCU_IBEAM, /* I-beam, normally text editing */ MBTK_MOCU_CROSSHAIR, MBTK_MOCU_HAND, MBTK_MOCU_HARROW, /* horizontal arrow */ MBTK_MOCU_VARROW /* vertical arrow */ } mbtk_mocu_named_t; typedef enum mbtk_event_handled_e { MBTK_EVENT_NOT_HANDLED = 0, MBTK_EVENT_HANDLED = 1 } mbtk_event_handled_t;