#include <irrlicht/irrlicht.h>
#include <libguile.h>
+#include "IGUIElement.h"
#include "IGUIEnvironment.h"
+#include "IGUIStaticText.h"
+#include "rect.h"
+#include "wchar.h"
+#include "wrapped.h"
extern "C" {
init_gui_environment (void)
{
init_gui_environment_type ();
+ scm_c_define_gsubr ("add-static-text!", 8, 0, 0, (scm_t_subr)irr_gui_addStaticText);
}
- static SCM gui_environment_type;
-
- void
- init_gui_environment_type (void)
- {
- SCM name, slots;
- scm_t_struct_finalize finalizer;
-
- name = scm_from_utf8_symbol ("gui_environment");
- slots = scm_list_1 (scm_from_utf8_symbol ("data"));
- finalizer = NULL;
-
- gui_environment_type =
- scm_make_foreign_object_type (name, slots, finalizer);
- }
+ DEFINE_WRAPPED_TYPE (irr::gui::IGUIEnvironment*, "gui-environment",
+ init_gui_environment_type, gui_environment_p,
+ wrap_gui_environment, unwrap_gui_environment);
SCM
- wrap_gui_environment (irr::gui::IGUIEnvironment* gui_environment)
- {
- return scm_make_foreign_object_1 (gui_environment_type, gui_environment);
- }
-
- irr::gui::IGUIEnvironment*
- unwrap_gui_environment (SCM gui_environment_obj)
+ irr_gui_addStaticText (SCM wrappedGUIEnvironment,
+ SCM text,
+ SCM rectangle,
+ SCM border,
+ SCM wordWrap,
+ SCM parent,
+ SCM id,
+ SCM fillBackground)
{
- scm_assert_foreign_object_type (gui_environment_type, gui_environment_obj);
- return (irr::gui::IGUIEnvironment*)scm_foreign_object_ref (gui_environment_obj, 0);
+ irr::gui::IGUIEnvironment* guienv = unwrap_gui_environment (wrappedGUIEnvironment);
+ irr::gui::IGUIStaticText* staticText =
+ guienv->addStaticText (scm_to_wide_char_string (text),
+ scm_to_rect_s32 (rectangle),
+ scm_to_bool (border),
+ scm_to_bool (wordWrap),
+ scm_is_false (parent) ? 0 : unwrap_gui_element (parent),
+ scm_to_int32 (id),
+ scm_to_bool (fillBackground));
+ return wrap_gui_static_text (staticText);
}
}