X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgui-environment.cpp;h=e7645176999d0523e62b75f054a58f155ecd394d;hb=357f279e004c6257a160205835c06c283d317ef7;hp=1ee3e5d9212c18009efab2fbdc222fbc5e04dee1;hpb=c4d9e46f268b4f7f738dd77685c632991125cec9;p=guile-irrlicht.git diff --git a/src/gui-environment.cpp b/src/gui-environment.cpp index 1ee3e5d..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_stringn (filename, NULL)); + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getFont (cfilename); + free (cfilename); return scm_from_pointer ((void*)font, NULL); }