#include <irrlicht/irrlicht.h>
#include <libguile.h>
#include "cursor-control.h"
+#include "gsubr.h"
#include "position2d.h"
-#include "wrapped.h"
+
+
+using namespace irr;
+
+
+SCM
+gui_ICursorControl_getPosition (SCM cursor_control)
+{
+ return scm_from_position2d_s32
+ (((gui::ICursorControl*)scm_to_pointer (cursor_control))->getPosition ());
+}
+
+
+SCM
+gui_ICursorControl_setPosition (SCM cursor_control,
+ SCM position)
+{
+ ((gui::ICursorControl*)scm_to_pointer (cursor_control))->
+ setPosition (scm_to_position2d_s32 (position));
+ return SCM_UNSPECIFIED;
+}
+
extern "C" {
void
init_cursor_control (void)
{
- init_cursor_control_type ();
- }
-
- DEFINE_WRAPPED_TYPE (irr::gui::ICursorControl*, "cursor-control",
- init_cursor_control_type, cursor_control_p,
- wrap_cursor_control, unwrap_cursor_control);
-
- SCM
- irr_gui_setPosition (SCM wrapped_cursor_control,
- SCM position)
- {
- irr::gui::ICursorControl* control = unwrap_cursor_control (wrapped_cursor_control);
- if (scm_is_integer (scm_car (position)) && scm_is_integer (scm_cadr (position)))
- {
- control->setPosition (scm_to_position2d_s32 (position));
- }
- else
- {
- control->setPosition (scm_to_position2d_f32 (position));
- }
- return SCM_UNSPECIFIED;
+ DEFINE_GSUBR ("gui_ICursorControl_getPosition", 1, 0, 0,
+ gui_ICursorControl_getPosition);
+ DEFINE_GSUBR ("gui_ICursorControl_setPosition", 2, 0, 0,
+ gui_ICursorControl_setPosition);
}
}