X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgui-environment.cpp;h=e7645176999d0523e62b75f054a58f155ecd394d;hb=357f279e004c6257a160205835c06c283d317ef7;hp=9c45b3574aac9058947a7ffe97b217eefa9f6363;hpb=41a6ad96e81a8d8153c54877c4c12f61100677a9;p=guile-irrlicht.git diff --git a/src/gui-environment.cpp b/src/gui-environment.cpp index 9c45b35..e764517 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,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_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)); + wtext, + wtooltiptext); + + free (wtext); + free (wtooltiptext); return scm_from_pointer ((void*)button, NULL); } @@ -57,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_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)); + + free (wtext); return scm_from_pointer ((void*)editbox, NULL); } @@ -77,14 +88,18 @@ 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)); + wtext); + + free (wtext); return scm_from_pointer ((void*) new_image, NULL); } @@ -97,9 +112,9 @@ 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); @@ -114,10 +129,10 @@ 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); } @@ -133,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_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)); + + free (wtext); return scm_from_pointer ((void*)static_text, NULL); } @@ -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)); + + free (wtext); return scm_from_pointer ((void*)window, NULL); } 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,7 +198,7 @@ SCM IGUIEnvironment_getBuiltInFont (SCM gui_environment) { gui::IGUIFont* font = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->getBuiltInFont (); + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getBuiltInFont (); return scm_from_pointer ((void*)font, NULL); } @@ -183,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_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); } @@ -193,7 +217,7 @@ SCM IGUIEnvironment_getSkin (SCM gui_environment) { gui::IGUISkin* skin = - ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->getSkin (); + ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getSkin (); return scm_from_pointer ((void*)skin, NULL); }