X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fevent-receiver.cpp;h=1d8e09722e887d784f3bef4e707ca12123fc3d05;hb=43b3e4fbfc4a80af937ba223dfa15ee8b6b8e736;hp=3f2e6839ade8f84d31894bf015b6a3df0808787b;hpb=d78951bd91783c61b312451198beb31f70b0f8b2;p=guile-irrlicht.git diff --git a/src/event-receiver.cpp b/src/event-receiver.cpp index 3f2e683..1d8e097 100644 --- a/src/event-receiver.cpp +++ b/src/event-receiver.cpp @@ -24,13 +24,12 @@ #include "event-receiver.h" #include "gsubr.h" #include "keycodes.h" - +#include "wrapped.h" using namespace irr; - SCM -IEventRecevier_make (SCM proc_on_event) +IEventReceiver_make (SCM proc_on_event) { class CustomReceiver : public IEventReceiver { @@ -44,69 +43,60 @@ IEventRecevier_make (SCM proc_on_event) virtual bool OnEvent (const SEvent& event) { - return scm_to_bool (scm_call_1 (scm_on_event, scm_from_pointer ((void*)&event, NULL))); + SCM wrapped_event = scm_from_irr_pointer ("", (void*) &event); + return scm_to_bool (scm_call_1 (scm_on_event, wrapped_event)); } }; CustomReceiver* receiver = new CustomReceiver (proc_on_event); - return scm_from_pointer ((void*)receiver, NULL); + return scm_from_irr_pointer ("", (void*) receiver); } - SCM SEvent_EventType (SCM event) { return scm_from_event_type - (((SEvent*)scm_to_pointer (event))->EventType); + (((SEvent*)scm_to_irr_pointer (event))->EventType); } - SCM SEvent_SGUIEvent_Caller (SCM event) { gui::IGUIElement* caller = - ((SEvent*)scm_to_pointer (event))->GUIEvent.Caller; - return scm_from_pointer ((void*)caller, NULL); + ((SEvent*)scm_to_irr_pointer (event))->GUIEvent.Caller; + return scm_from_irr_pointer ("", (void*) caller); } - SCM SEvent_SGUIEvent_EventType (SCM event) { return scm_from_gui_event_type - (((SEvent*)scm_to_pointer (event))->GUIEvent.EventType); + (((SEvent*)scm_to_irr_pointer (event))->GUIEvent.EventType); } - SCM SEvent_SKeyInput_Key (SCM event) { return scm_from_key_code - (((SEvent*)scm_to_pointer (event))->KeyInput.Key); + (((SEvent*)scm_to_irr_pointer (event))->KeyInput.Key); } - SCM SEvent_SKeyInput_PressedDown (SCM event) { - return scm_from_key_code - (((SEvent*)scm_to_pointer (event))->KeyInput.PressedDown); + return scm_from_bool + (((SEvent*)scm_to_irr_pointer (event))->KeyInput.PressedDown); } - -extern "C" { - - void - init_event_receiver (void) - { - DEFINE_GSUBR ("IEventRecevier_make", 1, 0, 0, IEventRecevier_make); - DEFINE_GSUBR ("SEvent_EventType", 1, 0, 0, SEvent_EventType); - DEFINE_GSUBR ("SEvent_SGUIEvent_Caller", 1, 0, 0, SEvent_SGUIEvent_Caller); - DEFINE_GSUBR ("SEvent_SGUIEvent_EventType", 1, 0, 0, SEvent_SGUIEvent_EventType); - DEFINE_GSUBR ("SEvent_SKeyInput_Key", 1, 0, 0, SEvent_SKeyInput_Key); - DEFINE_GSUBR ("SEvent_SKeyInput_PressedDown", 1, 0, 0, SEvent_SKeyInput_PressedDown); - } - +void +init_event_receiver (void) +{ + DEFINE_GSUBR ("IEventReceiver_make", 1, 0, 0, IEventReceiver_make); + DEFINE_GSUBR ("SEvent_EventType", 1, 0, 0, SEvent_EventType); + DEFINE_GSUBR ("SEvent_SGUIEvent_Caller", 1, 0, 0, SEvent_SGUIEvent_Caller); + DEFINE_GSUBR ("SEvent_SGUIEvent_EventType", 1, 0, 0, SEvent_SGUIEvent_EventType); + DEFINE_GSUBR ("SEvent_SKeyInput_Key", 1, 0, 0, SEvent_SKeyInput_Key); + DEFINE_GSUBR ("SEvent_SKeyInput_PressedDown", 1, 0, 0, SEvent_SKeyInput_PressedDown); } SCM @@ -145,7 +135,6 @@ scm_from_event_type (EEVENT_TYPE event_type) } } - SCM scm_from_gui_event_type (gui::EGUI_EVENT_TYPE gui_event_type) {