+ SCM
+ irr_gui_getSkinFont (SCM wrapped_gui_skin,
+ SCM rest)
+ {
+ SCM which = scm_from_utf8_symbol ("default");
+
+ scm_c_bind_keyword_arguments ("get-skin-font", rest, (scm_t_keyword_arguments_flags)0,
+ scm_from_utf8_keyword ("which"), &which,
+ SCM_UNDEFINED);
+
+ irr::gui::IGUISkin* skin = unwrap_gui_skin (wrapped_gui_skin);
+ irr::gui::IGUIFont* font = skin->getFont (scm_to_default_font (which));
+ return wrap_gui_font (font);
+ }
+
+ irr::gui::EGUI_DEFAULT_FONT
+ scm_to_default_font (SCM default_font)
+ {
+ char* font = scm_to_utf8_stringn (scm_symbol_to_string (default_font), NULL);
+ if (!strcmp (font, "default"))
+ {
+ return irr::gui::EGDF_DEFAULT;
+ }
+ else if (!strcmp (font, "button"))
+ {
+ return irr::gui::EGDF_BUTTON;
+ }
+ else if (!strcmp (font, "window"))
+ {
+ return irr::gui::EGDF_WINDOW;
+ }
+ else if (!strcmp (font, "menu"))
+ {
+ return irr::gui::EGDF_MENU;
+ }
+ else if (!strcmp (font, "tooltip"))
+ {
+ return irr::gui::EGDF_TOOLTIP;
+ }
+ else
+ {
+ scm_error (scm_arg_type_key, NULL, "Wrong default font: ~S",
+ scm_list_1 (default_font), scm_list_1 (default_font));
+ }
+ }