]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/cursor-control.cpp
cursor-control
[guile-irrlicht.git] / src / cursor-control.cpp
index 4a870e81029f47ee7974e0d711ce5fd5b325229f..fba412c0f4092df9926d0a9fcf0409296460673b 100644 (file)
 #include <irrlicht/irrlicht.h>
 #include <libguile.h>
 #include "cursor-control.h"
+#include "gsubr.h"
 #include "position2d.h"
-#include "wrapped.h"
+
+
+using namespace irr;
+
+
+SCM
+irr_gui_ICursorControl_getPosition (SCM cursor_control)
+{
+  return scm_from_position2d_s32
+    (((gui::ICursorControl*)scm_to_pointer (cursor_control))->getPosition ());
+}
+
+
+SCM
+irr_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 ("irr_gui_ICursorControl_getPosition", 1, 0, 0,
+                  irr_gui_ICursorControl_getPosition);
+    DEFINE_GSUBR ("irr_gui_ICursorControl_setPosition", 2, 0, 0,
+                  irr_gui_ICursorControl_setPosition);
   }
 
 }