X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgui-environment.cpp;h=d29750ffa88e3a0c5be0d3bb92baa9124f7d5752;hb=79e12d94cc21232477796a4e76fc2ddb5d88f9dc;hp=9c45b3574aac9058947a7ffe97b217eefa9f6363;hpb=41a6ad96e81a8d8153c54877c4c12f61100677a9;p=guile-irrlicht.git diff --git a/src/gui-environment.cpp b/src/gui-environment.cpp index 9c45b35..d29750f 100644 --- a/src/gui-environment.cpp +++ b/src/gui-environment.cpp @@ -26,6 +26,7 @@ #include "position2d.h" #include "rect.h" #include "wchar.h" +#include "wrapped.h" using namespace irr; @@ -38,14 +39,20 @@ IGUIEnvironment_addButton (SCM gui_environment, SCM text, SCM tooltiptext) { + wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); + wchar_t* wtooltiptext = (wchar_t*) scm_to_utf32_string (tooltiptext); + gui::IGUIButton* button = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))-> + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> addButton (scm_to_rect_s32 (rectangle), - (TParent)scm_to_pointer (parent), + (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id), - scm_to_wide_char_string (text), - scm_to_wide_char_string (tooltiptext)); - return scm_from_pointer ((void*)button, NULL); + wtext, + wtooltiptext); + + free (wtext); + free (wtooltiptext); + return scm_from_irr_pointer ("", (void*) button); } template @@ -57,14 +64,18 @@ IGUIEnvironment_addEditBox (SCM gui_environment, SCM parent, SCM id) { + wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); + gui::IGUIEditBox* editbox = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))-> - addEditBox (scm_to_wide_char_string (text), + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> + addEditBox (wtext, scm_to_rect_s32 (rectangle), scm_to_bool (border), - (TParent)scm_to_pointer (parent), + (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id)); - return scm_from_pointer ((void*)editbox, NULL); + + free (wtext); + return scm_from_irr_pointer ("", (void*) editbox); } template @@ -77,15 +88,19 @@ IGUIEnvironment_addImage (SCM gui_environment, SCM id, SCM text) { - gui::IGUIEnvironment* guienv = (gui::IGUIEnvironment*)scm_to_pointer (gui_environment); + gui::IGUIEnvironment* guienv = (gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment); + wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); + gui::IGUIImage* new_image = - guienv->addImage ((video::ITexture*)scm_to_pointer (image), + guienv->addImage ((video::ITexture*)scm_to_irr_pointer (image), scm_to_position2d_s32 (position), scm_to_bool (use_alpha_channel), - (TParent)scm_to_pointer (parent), + (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id), - scm_to_wide_char_string (text)); - return scm_from_pointer ((void*) new_image, NULL); + wtext); + + free (wtext); + return scm_from_irr_pointer ("", (void*) new_image); } template @@ -97,12 +112,12 @@ IGUIEnvironment_addListBox (SCM gui_environment, SCM draw_background) { gui::IGUIListBox* listbox = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))-> + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> addListBox (scm_to_rect_s32 (rectangle), - (TParent)scm_to_pointer (parent), + (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id), scm_to_bool (draw_background)); - return scm_from_pointer ((void*)listbox, NULL); + return scm_from_irr_pointer ("", (void*) listbox); } template @@ -114,12 +129,12 @@ IGUIEnvironment_addScrollBar (SCM gui_environment, SCM id) { gui::IGUIScrollBar* scrollbar = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))-> + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> addScrollBar (scm_to_bool (horizontal), scm_to_rect_s32 (rectangle), - (TParent)scm_to_pointer (parent), + (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id)); - return scm_from_pointer ((void*)scrollbar, NULL); + return scm_from_irr_pointer ("", (void*) scrollbar); } template @@ -133,16 +148,20 @@ IGUIEnvironment_addStaticText (SCM gui_environment, SCM id, SCM fill_background) { + wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); + gui::IGUIStaticText* static_text = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))-> - addStaticText (scm_to_wide_char_string (text), + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> + addStaticText (wtext, scm_to_rect_s32 (rectangle), scm_to_bool (border), scm_to_bool (word_wrap), - (TParent)scm_to_pointer (parent), + (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id), scm_to_bool (fill_background)); - return scm_from_pointer ((void*)static_text, NULL); + + free (wtext); + return scm_from_irr_pointer ("", (void*) static_text); } template @@ -154,20 +173,24 @@ IGUIEnvironment_addWindow (SCM gui_environment, SCM parent, SCM id) { + wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); + gui::IGUIWindow* window = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))-> + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> addWindow (scm_to_rect_s32 (rectangle), scm_to_bool (modal), - scm_to_wide_char_string (text), - (TParent)scm_to_pointer (parent), + wtext, + (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id)); - return scm_from_pointer ((void*)window, NULL); + + free (wtext); + return scm_from_irr_pointer ("", (void*) window); } SCM IGUIEnvironment_drawAll (SCM gui_environment) { - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->drawAll (); + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->drawAll (); return SCM_UNSPECIFIED; } @@ -175,26 +198,27 @@ SCM IGUIEnvironment_getBuiltInFont (SCM gui_environment) { gui::IGUIFont* font = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->getBuiltInFont (); - return scm_from_pointer ((void*)font, NULL); + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getBuiltInFont (); + return scm_from_irr_pointer ("", (void*) font); } SCM IGUIEnvironment_getFont (SCM gui_environment, SCM filename) { + char* cfilename = scm_to_utf8_string (filename); gui::IGUIFont* font = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))-> - getFont (scm_to_utf8_stringn (filename, NULL)); - return scm_from_pointer ((void*)font, NULL); + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getFont (cfilename); + free (cfilename); + return scm_from_irr_pointer ("", (void*) font); } SCM IGUIEnvironment_getSkin (SCM gui_environment) { gui::IGUISkin* skin = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->getSkin (); - return scm_from_pointer ((void*)skin, NULL); + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getSkin (); + return scm_from_irr_pointer ("", (void*) skin); } void