From: Javier Sancho Date: Tue, 28 Apr 2020 06:27:32 +0000 (+0200) Subject: add-listbox-item! X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=commitdiff_plain;h=f800b6da773b92fad5ebf3db07b8efa2e4e1b46f add-listbox-item! --- diff --git a/src/gui-listbox.cpp b/src/gui-listbox.cpp index 1c81998..599eca7 100644 --- a/src/gui-listbox.cpp +++ b/src/gui-listbox.cpp @@ -23,6 +23,8 @@ #include #include "gui-listbox.h" +#include "gsubr.h" +#include "wchar.h" #include "wrapped.h" extern "C" { @@ -31,10 +33,30 @@ extern "C" { init_gui_listbox (void) { init_gui_listbox_type (); + DEFINE_GSUBR ("add-listbox-item!", 2, 1, 0, irr_gui_IGUIListBox_addItem); } DEFINE_WRAPPED_TYPE (irr::gui::IGUIListBox*, "gui-listbox", init_gui_listbox_type, gui_listbox_p, wrap_gui_listbox, unwrap_gui_listbox); + SCM + irr_gui_IGUIListBox_addItem (SCM wrapped_gui_listbox, + SCM text, + SCM icon) + { + irr::gui::IGUIListBox* listbox = unwrap_gui_listbox (wrapped_gui_listbox); + irr::u32 item_id; + if (icon == SCM_UNDEFINED) + { + item_id = listbox->addItem (scm_to_wide_char_string (text)); + } + else + { + item_id = listbox->addItem (scm_to_wide_char_string (text), + scm_to_int32 (icon)); + } + return scm_from_uint32 (item_id); + } + } diff --git a/src/gui-listbox.h b/src/gui-listbox.h index 9e2baf3..23da332 100644 --- a/src/gui-listbox.h +++ b/src/gui-listbox.h @@ -34,6 +34,11 @@ extern "C" { DECLARE_WRAPPED_TYPE (irr::gui::IGUIListBox*, init_gui_listbox_type, gui_listbox_p, wrap_gui_listbox, unwrap_gui_listbox); + SCM + irr_gui_IGUIListBox_addItem (SCM wrapped_gui_listbox, + SCM text, + SCM icon); + } #endif