X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fcursor-control.cpp;h=4efe056d14627248c4a2e2a76de6f5e57711fdad;hb=9a416429869edc1b8a57c69f34008e067874cb82;hp=4a870e81029f47ee7974e0d711ce5fd5b325229f;hpb=2cdd08f70b0a58b2f00b341df5b73704d3febd47;p=guile-irrlicht.git diff --git a/src/cursor-control.cpp b/src/cursor-control.cpp index 4a870e8..4efe056 100644 --- a/src/cursor-control.cpp +++ b/src/cursor-control.cpp @@ -22,35 +22,40 @@ #include #include #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); } }