Files
TransPyC/includes/fltk/cfltk/include/cfltk2/cfl.h
T
TermiNexus 6892183cc9 feat(fltk): 新增 FLTK 1.4 纯 extern FFI 绑定库(对接 cfltk C API)
- 生成 24 个 _cfl*.vp(10327 条 extern 声明)+ _types/_enums 常量

- __init__.vp 提供 Fl/Fl_Widget/Fl_Window/Fl_Button/Fl_Input/Fl_Text_Buffer/Fl_Group/Fl_Menu_Bar/Fl_Native_File_Chooser 等包装类

- 回调(Fl_Callback)按 bytes 不透明处理,菜单回调位传 t.CPtr(0)

- 新增 examples/hello.vp、dialog.vp 冒烟样例,26 个 .vp 全部通过 vast parse

- 内嵌 cfltk(C API 封装)与 FLTK 1.4 完整源码,构建目标 cfltk2
2026-09-01 19:53:54 +08:00

401 lines
7.5 KiB
C

#ifndef __CFL_H__
#define __CFL_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef struct Fl_Widget Fl_Widget;
typedef struct Fl_Widget_Tracker Fl_Widget_Tracker;
typedef void (*Fl_Awake_Handler)(void *data);
int Fl_run(void);
int Fl_check(void);
int Fl_ready(void);
int Fl_reload_scheme(void);
int Fl_menu_linespacing(void);
void Fl_set_menu_linespacing(int H);
int Fl_lock(void);
void Fl_unlock(void);
int Fl_awake_callback(Fl_Awake_Handler handler, void *data);
void Fl_awake(void);
void Fl_set_scrollbar_size(int);
int Fl_scrollbar_size(void);
int Fl_event(void);
int Fl_event_key(void);
int Fl_event_original_key(void);
int Fl_event_key_down(int);
const char *Fl_event_text(void);
int Fl_event_button(void);
int Fl_event_clicks(void);
int Fl_event_x(void);
int Fl_event_y(void);
int Fl_event_x_root(void);
int Fl_event_y_root(void);
int Fl_event_dx(void);
int Fl_event_dy(void);
void Fl_get_mouse(int *, int *);
int Fl_event_is_click(void);
int Fl_event_length(void);
int Fl_event_state(void);
int Fl_w(void);
int Fl_h(void);
int Fl_screen_x(void);
int Fl_screen_y(void);
int Fl_screen_h(void);
int Fl_screen_w(void);
int Fl_compose(int *del);
void Fl_compose_reset(void);
int Fl_compose_state(void);
void Fl_copy(const char *stuff, int len, int destination);
void Fl_paste_text(Fl_Widget *, int src);
void Fl_paste_image(Fl_Widget *widget, int src);
int Fl_set_scheme(const char *scheme);
int Fl_scheme(void);
const char *Fl_scheme_string(void);
int Fl_visible_focus(void);
void Fl_set_visible_focus(int);
void Fl_set_box_type(int, int);
int Fl_box_shadow_width(void);
void Fl_set_box_shadow_width(int W);
int Fl_box_border_radius_max(void);
void Fl_set_box_border_radius_max(int R);
unsigned int
Fl_get_rgb_color(unsigned char r, unsigned char g, unsigned char b);
void Fl_set_color(
unsigned int c, unsigned char r, unsigned char g, unsigned char b
);
void Fl_set_color_with_alpha(
unsigned int c,
unsigned char r,
unsigned char g,
unsigned char b,
unsigned char a
);
const char *Fl_get_font(int idx);
const char *Fl_get_font_name(int idx);
const char *Fl_get_font_name_with_attr(int idx, int *attributes);
int Fl_get_font_sizes(int font, int **sizep);
int Fl_set_fonts(const char *c);
void Fl_set_font(int, int);
void Fl_set_font_by_name(int, const char *);
void Fl_set_font_size(int);
int Fl_font_size(void);
void Fl_add_handler(int (*ev_handler)(int ev));
int Fl_wait(void);
double Fl_wait_for(double);
void Fl_add_timeout(double t, void (*)(void *), void *);
void Fl_repeat_timeout(double t, void (*)(void *), void *);
void Fl_remove_timeout(void (*)(void *), void *);
int Fl_has_timeout(void (*)(void *), void *);
int Fl_dnd(void);
void *Fl_grab(void);
void Fl_set_grab(void *);
void *Fl_first_window(void);
void *Fl_next_window(const void *);
void *Fl_modal(void);
int Fl_should_program_quit(void);
void Fl_program_should_quit(int flag);
int Fl_event_inside(int, int, int, int);
Fl_Widget *Fl_belowmouse(void);
void Fl_set_belowmouse(Fl_Widget *w);
void Fl_delete_widget(Fl_Widget *w);
Fl_Widget_Tracker *Fl_Widget_Tracker_new(Fl_Widget *w);
int Fl_Widget_Tracker_deleted(Fl_Widget_Tracker *self);
void Fl_Widget_Tracker_delete(Fl_Widget_Tracker *self);
void Fl_init_all(void);
void Fl_redraw(void);
int Fl_event_shift(void);
int Fl_event_ctrl(void);
int Fl_event_command(void);
int Fl_event_alt(void);
void Fl_set_damage(int flag);
int Fl_damage(void);
int Fl_visual(int);
void Fl_own_colormap(void);
Fl_Widget *Fl_pushed(void);
Fl_Widget *Fl_focus(void);
void Fl_set_focus(void *);
double Fl_version(void);
int Fl_api_version(void);
int Fl_abi_version(void);
int Fl_load_font(const char *path);
void Fl_unload_font(const char *path);
void Fl_foreground(unsigned char r, unsigned char g, unsigned char b);
void Fl_background(unsigned char r, unsigned char g, unsigned char b);
void Fl_background2(unsigned char r, unsigned char g, unsigned char b);
void Fl_selection_color(unsigned char r, unsigned char g, unsigned char b);
void Fl_inactive_color(unsigned char r, unsigned char g, unsigned char b);
void Fl_get_system_colors(void);
int Fl_handle(int, void *);
int Fl_handle_(int, void *);
void Fl_add_idle(void (*)(void *), void *);
int Fl_has_idle(void (*)(void *), void *);
void Fl_remove_idle(void (*)(void *), void *);
void Fl_add_check(void (*)(void *), void *);
int Fl_has_check(void (*)(void *), void *);
void Fl_remove_check(void (*)(void *), void *);
void Fl_flush(void);
void Fl_set_screen_scale(int n, float val);
float Fl_screen_scale(int n);
int Fl_screen_scaling_supported(void);
int Fl_screen_count(void);
int Fl_screen_num(int x, int y);
int Fl_screen_num_inside(int x, int y, int w, int h);
void Fl_screen_xywh(int *X, int *Y, int *W, int *H, int n);
void Fl_screen_xywh_at(int *X, int *Y, int *W, int *H, int mx, int my);
void Fl_screen_xywh_inside(
int *X, int *Y, int *W, int *H, int mx, int my, int mw, int mh
);
void Fl_screen_xywh_mouse(int *X, int *Y, int *W, int *H);
void Fl_screen_dpi(float *h, float *v, int n);
void Fl_screen_work_area(int *X, int *Y, int *W, int *H, int n);
void Fl_screen_work_area_at(int *X, int *Y, int *W, int *H, int mx, int my);
void Fl_screen_work_area_mouse(int *X, int *Y, int *W, int *H);
void Fl_keyboard_screen_scaling(int value);
void Fl_open_display(void);
void Fl_close_display(void);
int Fl_box_dx(int boxtype);
int Fl_box_dy(int boxtype);
int Fl_box_dw(int boxtype);
int Fl_box_dh(int boxtype);
int Fl_mac_os_version(void);
void *Fl_event_clipboard(void);
const char *Fl_event_clipboard_type(void);
int Fl_clipboard_contains(const char *type);
void Fl_event_dispatch(int (*cb)(int event, void *));
unsigned int Fl_inactive(unsigned int c);
unsigned int Fl_lighter(unsigned int c);
unsigned int Fl_darker(unsigned int c);
void Fl_set_box_type_cb(
int, void (*cb)(int, int, int, int, unsigned int), int, int, int, int
);
int Fl_draw_box_active(void);
unsigned int Fl_gray_ramp(int i);
unsigned int Fl_color_average(unsigned int, unsigned int, float f);
unsigned int Fl_contrast(unsigned int c1, unsigned int c2);
unsigned int Fl_rgb_color(unsigned char r, unsigned char g, unsigned char b);
unsigned int Fl_rgb_color_grayscale(unsigned char g);
unsigned int Fl_cmap(unsigned int c);
unsigned int Fl_box_color(unsigned int c);
void Fl_set_box_color(unsigned int c);
void Fl_add_system_handler(int (*)(void *, void *), void *);
void Fl_remove_system_handler(int (*)(void *, void *));
int Fl_gl_visual(int mode);
void Fl_add_clipboard_notify(void (*cb)(int source, void *data), void *data);
void Fl_remove_clipboard_notify(void (*cb)(int source, void *data));
void Fl_open_callback(void (*cb)(const char *));
void Fl_disable_wayland(void);
Fl_Widget *Fl_Widget_Tracker_widget(Fl_Widget_Tracker *t);
int Fl_Widget_Tracker_exists(Fl_Widget_Tracker *t);
void Fl_get_color_rgb(
unsigned int col, unsigned char *r, unsigned char *g, unsigned char *b
);
int Fl_callback_reason(void);
void *Fl_get_fl_msg(void);
void *Fl_cairo_make_current(Fl_Widget *w);
void Fl_set_cairo_autolink_context(int alink);
int Fl_cairo_autolink_context(void);
void *Fl_cairo_cc(void);
void Fl_set_cairo_cc(void *c, int own);
void Fl_cairo_flush(void *c);
int Fl_option(int opt);
void Fl_set_option(int opt, int val);
void Fl_load_system_icons(void);
void Fl_set_contrast_level(int level);
int Fl_contrast_level(void);
void Fl_set_contrast_mode(int mode);
int Fl_contrast_mode(void);
void Fl_set_contrast_function(unsigned int (*f)(unsigned int, unsigned int, int, int));
int Fl_using_wayland(void);
#ifdef __cplusplus
}
#endif
#endif