X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=src%2Fgui-environment.cpp;h=e7645176999d0523e62b75f054a58f155ecd394d;hp=ae2e087eaa5edf77d65a3132541878faa9735c70;hb=357f279e004c6257a160205835c06c283d317ef7;hpb=384a8fb56d8500dc3551085191a39c9da70e221c diff --git a/src/gui-environment.cpp b/src/gui-environment.cpp index ae2e087..e764517 100644 --- a/src/gui-environment.cpp +++ b/src/gui-environment.cpp @@ -39,13 +39,19 @@ 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_irr_pointer (gui_environment))-> addButton (scm_to_rect_s32 (rectangle), (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id), - scm_to_wide_char_string (text), - scm_to_wide_char_string (tooltiptext)); + wtext, + wtooltiptext); + + free (wtext); + free (wtooltiptext); return scm_from_pointer ((void*)button, NULL); } @@ -58,13 +64,17 @@ 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_irr_pointer (gui_environment))-> - addEditBox (scm_to_wide_char_string (text), + addEditBox (wtext, scm_to_rect_s32 (rectangle), scm_to_bool (border), (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id)); + + free (wtext); return scm_from_pointer ((void*)editbox, NULL); } @@ -79,13 +89,17 @@ IGUIEnvironment_addImage (SCM gui_environment, SCM text) { 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_irr_pointer (image), scm_to_position2d_s32 (position), scm_to_bool (use_alpha_channel), (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id), - scm_to_wide_char_string (text)); + wtext); + + free (wtext); return scm_from_pointer ((void*) new_image, NULL); } @@ -134,15 +148,19 @@ 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_irr_pointer (gui_environment))-> - addStaticText (scm_to_wide_char_string (text), + addStaticText (wtext, scm_to_rect_s32 (rectangle), scm_to_bool (border), scm_to_bool (word_wrap), (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id), scm_to_bool (fill_background)); + + free (wtext); return scm_from_pointer ((void*)static_text, NULL); } @@ -155,13 +173,17 @@ 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_irr_pointer (gui_environment))-> addWindow (scm_to_rect_s32 (rectangle), scm_to_bool (modal), - scm_to_wide_char_string (text), + wtext, (TParent)scm_to_irr_pointer (parent), scm_to_int32 (id)); + + free (wtext); return scm_from_pointer ((void*)window, NULL); } @@ -184,9 +206,10 @@ SCM IGUIEnvironment_getFont (SCM gui_environment, SCM filename) { + char* cfilename = scm_to_utf8_string (filename); gui::IGUIFont* font = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> - getFont (scm_to_utf8_string (filename)); + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getFont (cfilename); + free (cfilename); return scm_from_pointer ((void*)font, NULL); }