diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2025-01-15 23:52:50 +1300 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2025-01-15 23:52:50 +1300 |
commit | 106316bcedec72c5380a7544c27be6a5c117e57a (patch) | |
tree | 753709180c89063db53a774d3a0154c3d0e70ee5 /src/c_fl_menuitem.cpp | |
parent | 1ba99737bca1136170f04b3a46659deb042e3fcd (diff) |
Filled holes in Fl_Menu_ and Fl_Menu_Item bound APIs, fixed a few irritating bugs, damn the treacherous C++ APIHEADmaster
Diffstat (limited to 'src/c_fl_menuitem.cpp')
-rw-r--r-- | src/c_fl_menuitem.cpp | 158 |
1 files changed, 95 insertions, 63 deletions
diff --git a/src/c_fl_menuitem.cpp b/src/c_fl_menuitem.cpp index 217b3bd..cb4ebee 100644 --- a/src/c_fl_menuitem.cpp +++ b/src/c_fl_menuitem.cpp @@ -6,157 +6,189 @@ #include <FL/Fl_Menu_Item.H> #include <FL/Fl_Widget.H> +#include <FL/Fl_Image.H> #include "c_fl_menuitem.h" +// Exports from Ada + +extern "C" void menu_item_callback_hook(void * cobj, void * ud); + + + + +// Flattened C API + +void * null_fl_menu_item() { + Fl_Menu_Item *mi = new Fl_Menu_Item; + mi->label(0); + return mi; +} + void * new_fl_menu_item(char * t, void * c, unsigned long s, unsigned long f) { Fl_Menu_Item *mi = new Fl_Menu_Item; - mi->callback(reinterpret_cast<Fl_Callback*>(c)); + mi->callback(c==0?0:reinterpret_cast<Fl_Callback_p>(&menu_item_callback_hook), c); mi->flags = static_cast<int>(f); mi->shortcut(static_cast<int>(s)); mi->label(t); return mi; } -void free_fl_menu_item(MENU_ITEM mi) { - delete reinterpret_cast<Fl_Menu_Item*>(mi); +void free_fl_menu_item(MENUITEM mi) { + delete static_cast<Fl_Menu_Item*>(mi); } -void * fl_menu_item_get_user_data(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->user_data(); +void * fl_menu_item_get_user_data(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->user_data(); } -void fl_menu_item_set_user_data(MENU_ITEM mi, void * c) { - reinterpret_cast<Fl_Menu_Item*>(mi)->user_data(c); +void fl_menu_item_set_callback(MENUITEM mi, void * c) { + static_cast<Fl_Menu_Item*>(mi)->callback + (c==0?0:reinterpret_cast<Fl_Callback_p>(&menu_item_callback_hook), c); } -void fl_menu_item_do_callback(MENU_ITEM mi, void * w) { - reinterpret_cast<Fl_Menu_Item*>(mi)->do_callback(reinterpret_cast<Fl_Widget*>(w)); +void fl_menu_item_do_callback(MENUITEM mi, void * w) { + static_cast<Fl_Menu_Item*>(mi)->do_callback(static_cast<Fl_Widget*>(w)); } -int fl_menu_item_checkbox(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->checkbox(); +int fl_menu_item_checkbox(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->checkbox(); } -int fl_menu_item_radio(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->radio(); +int fl_menu_item_radio(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->radio(); } -int fl_menu_item_value(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->value(); +int fl_menu_item_submenu(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->submenu(); } -void fl_menu_item_set(MENU_ITEM mi) { - reinterpret_cast<Fl_Menu_Item*>(mi)->set(); +int fl_menu_item_value(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->value(); } -void fl_menu_item_clear(MENU_ITEM mi) { - reinterpret_cast<Fl_Menu_Item*>(mi)->clear(); +void fl_menu_item_set(MENUITEM mi) { + static_cast<Fl_Menu_Item*>(mi)->set(); } -void fl_menu_item_setonly(MENU_ITEM mi) { - reinterpret_cast<Fl_Menu_Item*>(mi)->setonly(); +void fl_menu_item_clear(MENUITEM mi) { + static_cast<Fl_Menu_Item*>(mi)->clear(); +} + +void fl_menu_item_setonly(MENUITEM mi) { + static_cast<Fl_Menu_Item*>(mi)->setonly(); } -const char * fl_menu_item_get_label(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->label(); +const char * fl_menu_item_get_label(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->label(); } -void fl_menu_item_set_label(MENU_ITEM mi, const char *t) { - reinterpret_cast<Fl_Menu_Item*>(mi)->label(t); +void fl_menu_item_set_label(MENUITEM mi, const char *t) { + static_cast<Fl_Menu_Item*>(mi)->label(t); } -unsigned int fl_menu_item_get_labelcolor(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->labelcolor(); +void fl_menu_item_set_label2(MENUITEM mi, int k, const char * t) { + static_cast<Fl_Menu_Item*>(mi)->label(static_cast<Fl_Labeltype>(k), t); } -void fl_menu_item_set_labelcolor(MENU_ITEM mi, unsigned int c) { - reinterpret_cast<Fl_Menu_Item*>(mi)->labelcolor(c); +unsigned int fl_menu_item_get_labelcolor(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->labelcolor(); } -int fl_menu_item_get_labelfont(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->labelfont(); +void fl_menu_item_set_labelcolor(MENUITEM mi, unsigned int c) { + static_cast<Fl_Menu_Item*>(mi)->labelcolor(c); } -void fl_menu_item_set_labelfont(MENU_ITEM mi, int f) { - reinterpret_cast<Fl_Menu_Item*>(mi)->labelfont(f); +int fl_menu_item_get_labelfont(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->labelfont(); } -int fl_menu_item_get_labelsize(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->labelsize(); +void fl_menu_item_set_labelfont(MENUITEM mi, int f) { + static_cast<Fl_Menu_Item*>(mi)->labelfont(f); } -void fl_menu_item_set_labelsize(MENU_ITEM mi, int s) { - reinterpret_cast<Fl_Menu_Item*>(mi)->labelsize(s); +int fl_menu_item_get_labelsize(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->labelsize(); } -int fl_menu_item_get_labeltype(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->labeltype(); +void fl_menu_item_set_labelsize(MENUITEM mi, int s) { + static_cast<Fl_Menu_Item*>(mi)->labelsize(s); } -void fl_menu_item_set_labeltype(MENU_ITEM mi, int t) { - reinterpret_cast<Fl_Menu_Item*>(mi)->labeltype(static_cast<Fl_Labeltype>(t)); +int fl_menu_item_get_labeltype(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->labeltype(); } +void fl_menu_item_set_labeltype(MENUITEM mi, int t) { + static_cast<Fl_Menu_Item*>(mi)->labeltype(static_cast<Fl_Labeltype>(t)); +} -int fl_menu_item_get_shortcut(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->shortcut(); + +int fl_menu_item_get_shortcut(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->shortcut(); } -void fl_menu_item_set_shortcut(MENU_ITEM mi, int s) { - reinterpret_cast<Fl_Menu_Item*>(mi)->shortcut(s); +void fl_menu_item_set_shortcut(MENUITEM mi, int s) { + static_cast<Fl_Menu_Item*>(mi)->shortcut(s); } -unsigned long fl_menu_item_get_flags(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->flags; +unsigned long fl_menu_item_get_flags(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->flags; } -void fl_menu_item_set_flags(MENU_ITEM mi, unsigned long f) { - reinterpret_cast<Fl_Menu_Item*>(mi)->flags = f; +void fl_menu_item_set_flags(MENUITEM mi, unsigned long f) { + static_cast<Fl_Menu_Item*>(mi)->flags = f; +} + + + + +void fl_menu_item_image(MENUITEM mi, void * i) { + static_cast<Fl_Menu_Item*>(mi)->image(static_cast<Fl_Image*>(i)); } -void fl_menu_item_activate(MENU_ITEM mi) { - reinterpret_cast<Fl_Menu_Item*>(mi)->activate(); +void fl_menu_item_activate(MENUITEM mi) { + static_cast<Fl_Menu_Item*>(mi)->activate(); } -void fl_menu_item_deactivate(MENU_ITEM mi) { - reinterpret_cast<Fl_Menu_Item*>(mi)->deactivate(); +void fl_menu_item_deactivate(MENUITEM mi) { + static_cast<Fl_Menu_Item*>(mi)->deactivate(); } -void fl_menu_item_show(MENU_ITEM mi) { - reinterpret_cast<Fl_Menu_Item*>(mi)->show(); +void fl_menu_item_show(MENUITEM mi) { + static_cast<Fl_Menu_Item*>(mi)->show(); } -void fl_menu_item_hide(MENU_ITEM mi) { - reinterpret_cast<Fl_Menu_Item*>(mi)->hide(); +void fl_menu_item_hide(MENUITEM mi) { + static_cast<Fl_Menu_Item*>(mi)->hide(); } -int fl_menu_item_active(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->active(); +int fl_menu_item_active(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->active(); } -int fl_menu_item_visible(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->visible(); +int fl_menu_item_visible(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->visible(); } -int fl_menu_item_activevisible(MENU_ITEM mi) { - return reinterpret_cast<Fl_Menu_Item*>(mi)->activevisible(); +int fl_menu_item_activevisible(MENUITEM mi) { + return static_cast<Fl_Menu_Item*>(mi)->activevisible(); } |