#include <irrlicht/irrlicht.h>
#include <libguile.h>
+#include "gsubr.h"
#include "gui-element.h"
#include "wrapped.h"
-extern "C" {
+using namespace irr;
- void
- init_gui_element (void)
- {
- init_gui_element_type ();
- }
-
- DEFINE_WRAPPED_TYPE (irr::gui::IGUIElement*, "gui-element",
- init_gui_element_type, gui_element_p,
- wrap_gui_element, unwrap_gui_element);
+template <typename T>
+SCM
+IGUIElement_getID (SCM gui_element)
+{
+ T element = (T) scm_to_irr_pointer (gui_element);
+ return scm_from_int32 (element->getID ());
+}
+void
+init_gui_element (void)
+{
+ DEFINE_GSUBR ("IGUIButton_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIButton*>);
+ DEFINE_GSUBR ("IGUIEditBox_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIEditBox*>);
+ DEFINE_GSUBR ("IGUIElement_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIElement*>);
+ DEFINE_GSUBR ("IGUIFileOpenDialog_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIFileOpenDialog*>);
+ DEFINE_GSUBR ("IGUIImage_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIImage*>);
+ DEFINE_GSUBR ("IGUIListBox_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIListBox*>);
+ DEFINE_GSUBR ("IGUIScrollBar_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIScrollBar*>);
+ DEFINE_GSUBR ("IGUIStaticText_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIStaticText*>);
+ DEFINE_GSUBR ("IGUIWindow_getID", 1, 0, 0, IGUIElement_getID<gui::IGUIWindow*>);
}