#include #include #include "c_fl_widget.h" #include "c_fl_type.h" class My_Widget : public Fl_Widget { public: using Fl_Widget::Fl_Widget; friend void widget_set_draw_hook(WIDGET w, void * d); friend void widget_set_handle_hook(WIDGET w, void * h); friend WIDGET new_fl_widget(int x, int y, int w, int h, char* label); protected: void draw(); int handle(int e); d_hook_p draw_hook; h_hook_p handle_hook; }; void My_Widget::draw() { (*draw_hook)(this->user_data()); } int My_Widget::handle(int e) { return (*handle_hook)(this->user_data(), e); } void widget_set_draw_hook(WIDGET w, void * d) { reinterpret_cast(w)->draw_hook = reinterpret_cast(d); } void widget_set_handle_hook(WIDGET w, void * h) { reinterpret_cast(w)->handle_hook = reinterpret_cast(h); } WIDGET new_fl_widget(int x, int y, int w, int h, char* label) { My_Widget *wd = new My_Widget(x, y, w, h, label); return wd; } void free_fl_widget(WIDGET w) { delete reinterpret_cast(w); } void * fl_widget_get_user_data(WIDGET w) { return reinterpret_cast(w)->user_data(); } void fl_widget_set_user_data(WIDGET w, void * d) { reinterpret_cast(w)->user_data(d); } void fl_widget_activate(WIDGET w) { reinterpret_cast(w)->activate(); } void fl_widget_deactivate(WIDGET w) { reinterpret_cast(w)->deactivate(); } int fl_widget_active(WIDGET w) { return reinterpret_cast(w)->active(); } int fl_widget_active_r(WIDGET w) { return reinterpret_cast(w)->active_r(); } void fl_widget_clear_active(WIDGET w) { reinterpret_cast(w)->clear_active(); } unsigned int fl_widget_changed(WIDGET w) { return reinterpret_cast(w)->changed(); } void fl_widget_clear_changed(WIDGET w) { reinterpret_cast(w)->clear_changed(); } void * fl_widget_get_parent(WIDGET w) { return reinterpret_cast(w)->parent(); } int fl_widget_contains(WIDGET w, WIDGET i) { return reinterpret_cast(w)->contains(reinterpret_cast(i)); } unsigned int fl_widget_get_align(WIDGET w) { return reinterpret_cast(w)->align(); } void fl_widget_set_align(WIDGET w, unsigned int a) { reinterpret_cast(w)->align(a); } int fl_widget_get_box(WIDGET w) { return reinterpret_cast(w)->box(); } void fl_widget_set_box(WIDGET w, int b) { reinterpret_cast(w)->box(static_cast(b)); } const char* fl_widget_get_label(WIDGET w) { return reinterpret_cast(w)->label(); } void fl_widget_set_label(WIDGET w, const char* t) { reinterpret_cast(w)->copy_label(t); } int fl_widget_get_label_font(WIDGET w) { return reinterpret_cast(w)->labelfont(); } void fl_widget_set_label_font(WIDGET w, int f) { reinterpret_cast(w)->labelfont(static_cast(f)); } int fl_widget_get_label_size(WIDGET w) { return reinterpret_cast(w)->labelsize(); } void fl_widget_set_label_size(WIDGET w, int s) { reinterpret_cast(w)->labelsize(static_cast(s)); } int fl_widget_get_label_type(WIDGET w) { return reinterpret_cast(w)->labeltype(); } void fl_widget_set_label_type(WIDGET w, int l) { reinterpret_cast(w)->labeltype(static_cast(l)); } void fl_widget_set_callback(WIDGET w, void * cb) { reinterpret_cast(w)->callback(reinterpret_cast(cb)); } int fl_widget_get_x(WIDGET w) { return reinterpret_cast(w)->x(); } int fl_widget_get_y(WIDGET w) { return reinterpret_cast(w)->y(); } int fl_widget_get_w(WIDGET w) { return reinterpret_cast(w)->w(); } int fl_widget_get_h(WIDGET w) { return reinterpret_cast(w)->h(); } void fl_widget_size(WIDGET w, int d, int h) { reinterpret_cast(w)->size(d, h); } void fl_widget_position(WIDGET w, int x, int y) { reinterpret_cast(w)->position(x, y); } void fl_widget_set_image(WIDGET w, void * img) { reinterpret_cast(w)->image(reinterpret_cast(img)); } void fl_widget_redraw(WIDGET w) { reinterpret_cast(w)->redraw(); } void fl_widget_redraw_label(WIDGET w) { reinterpret_cast(w)->redraw_label(); }