]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/gui-environment.cpp
<gui-file-open-dialog> add-file-open-dialog! get-file-name
[guile-irrlicht.git] / src / gui-environment.cpp
index 33a03e4dfb8d276e3e0046aa0342f1a763141ecd..c2e52726d5d516c589d45bcb6fb65d6375512690 100644 (file)
@@ -78,6 +78,33 @@ IGUIEnvironment_addEditBox (SCM gui_environment,
   return scm_from_irr_pointer ("<gui-editbox>", (void*) editbox);
 }
 
+template <typename TParent>
+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 ("<gui-file-open-dialog>", (void*) dialog);
+}
+
 template <typename TParent>
 SCM
 IGUIEnvironment_addImage (SCM gui_environment,
@@ -228,6 +255,8 @@ init_gui_environment (void)
                 IGUIEnvironment_addButton<gui::IGUIElement*>);
   DEFINE_GSUBR ("IGUIEnvironment_addEditBox_IGUIElement", 6, 0, 0,
                 IGUIEnvironment_addEditBox<gui::IGUIElement*>);
+  DEFINE_GSUBR ("IGUIEnvironment_addFileOpenDialog_IGUIElement", 7, 0, 0,
+                IGUIEnvironment_addFileOpenDialog<gui::IGUIElement*>);
   DEFINE_GSUBR ("IGUIEnvironment_addImage_IGUIElement", 7, 0, 0,
                 IGUIEnvironment_addImage<gui::IGUIElement*>);
   DEFINE_GSUBR ("IGUIEnvironment_addListBox_IGUIElement", 5, 0, 0,