summaryrefslogtreecommitdiff
path: root/src/c_fl_menuitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/c_fl_menuitem.cpp')
-rw-r--r--src/c_fl_menuitem.cpp158
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();
}