X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgui-environment.cpp;h=c2e52726d5d516c589d45bcb6fb65d6375512690;hb=3bb58c2b45af12c0f9c9eac648e67ac6fa90e104;hp=e7645176999d0523e62b75f054a58f155ecd394d;hpb=357f279e004c6257a160205835c06c283d317ef7;p=guile-irrlicht.git diff --git a/src/gui-environment.cpp b/src/gui-environment.cpp index e764517..c2e5272 100644 --- a/src/gui-environment.cpp +++ b/src/gui-environment.cpp @@ -52,7 +52,7 @@ IGUIEnvironment_addButton (SCM gui_environment, free (wtext); free (wtooltiptext); - return scm_from_pointer ((void*)button, NULL); + return scm_from_irr_pointer ("", (void*) button); } template @@ -75,7 +75,34 @@ IGUIEnvironment_addEditBox (SCM gui_environment, scm_to_int32 (id)); free (wtext); - return scm_from_pointer ((void*)editbox, NULL); + return scm_from_irr_pointer ("", (void*) editbox); +} + +template +SCM +IGUIEnvironment_addFileOpenDialog (SCM gui_environment, + SCM title, + SCM modal, + SCM parent, + SCM id, + SCM restore_cwd, + SCM start_dir) +{ + gui::IGUIEnvironment* guienv = (gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment); + wchar_t* wtitle = (wchar_t*) scm_to_utf32_string (title); + io::path::char_type* cstartDir = scm_to_utf8_string (start_dir); + + gui::IGUIFileOpenDialog* dialog = + guienv->addFileOpenDialog (wtitle, + scm_to_bool (modal), + (TParent)scm_to_irr_pointer (parent), + scm_to_int32 (id), + scm_to_bool (restore_cwd), + cstartDir); + + free (wtitle); + free (cstartDir); + return scm_from_irr_pointer ("", (void*) dialog); } template @@ -100,7 +127,7 @@ IGUIEnvironment_addImage (SCM gui_environment, wtext); free (wtext); - return scm_from_pointer ((void*) new_image, NULL); + return scm_from_irr_pointer ("", (void*) new_image); } template @@ -117,7 +144,7 @@ IGUIEnvironment_addListBox (SCM gui_environment, (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 @@ -134,7 +161,7 @@ IGUIEnvironment_addScrollBar (SCM gui_environment, scm_to_rect_s32 (rectangle), (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 @@ -161,7 +188,7 @@ IGUIEnvironment_addStaticText (SCM gui_environment, scm_to_bool (fill_background)); free (wtext); - return scm_from_pointer ((void*)static_text, NULL); + return scm_from_irr_pointer ("", (void*) static_text); } template @@ -184,7 +211,7 @@ IGUIEnvironment_addWindow (SCM gui_environment, scm_to_int32 (id)); free (wtext); - return scm_from_pointer ((void*)window, NULL); + return scm_from_irr_pointer ("", (void*) window); } SCM @@ -199,7 +226,7 @@ IGUIEnvironment_getBuiltInFont (SCM gui_environment) { gui::IGUIFont* font = ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getBuiltInFont (); - return scm_from_pointer ((void*)font, NULL); + return scm_from_irr_pointer ("", (void*) font); } SCM @@ -210,7 +237,7 @@ IGUIEnvironment_getFont (SCM gui_environment, gui::IGUIFont* font = ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getFont (cfilename); free (cfilename); - return scm_from_pointer ((void*)font, NULL); + return scm_from_irr_pointer ("", (void*) font); } SCM @@ -218,7 +245,7 @@ IGUIEnvironment_getSkin (SCM gui_environment) { gui::IGUISkin* skin = ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getSkin (); - return scm_from_pointer ((void*)skin, NULL); + return scm_from_irr_pointer ("", (void*) skin); } void @@ -228,6 +255,8 @@ init_gui_environment (void) IGUIEnvironment_addButton); DEFINE_GSUBR ("IGUIEnvironment_addEditBox_IGUIElement", 6, 0, 0, IGUIEnvironment_addEditBox); + DEFINE_GSUBR ("IGUIEnvironment_addFileOpenDialog_IGUIElement", 7, 0, 0, + IGUIEnvironment_addFileOpenDialog); DEFINE_GSUBR ("IGUIEnvironment_addImage_IGUIElement", 7, 0, 0, IGUIEnvironment_addImage); DEFINE_GSUBR ("IGUIEnvironment_addListBox_IGUIElement", 5, 0, 0, @@ -236,6 +265,8 @@ init_gui_environment (void) IGUIEnvironment_addScrollBar); DEFINE_GSUBR ("IGUIEnvironment_addStaticText_IGUIElement", 8, 0, 0, IGUIEnvironment_addStaticText); + DEFINE_GSUBR ("IGUIEnvironment_addStaticText_IGUIWindow", 8, 0, 0, + IGUIEnvironment_addStaticText); DEFINE_GSUBR ("IGUIEnvironment_addWindow_IGUIElement", 6, 0, 0, IGUIEnvironment_addWindow); DEFINE_GSUBR ("IGUIEnvironment_drawAll", 1, 0, 0, IGUIEnvironment_drawAll);