X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=src%2Fgui-skin.cpp;h=cfc9edb7064719ef2224a0de773c4b9ffa8377b5;hp=6dc61399811615f85716e46ff8484aff339952ff;hb=55e6476fba279b10b7732170a72b31426f973ef5;hpb=60376e14c4cc35b3c8d7e069b083881b5ffe9032 diff --git a/src/gui-skin.cpp b/src/gui-skin.cpp index 6dc6139..cfc9edb 100644 --- a/src/gui-skin.cpp +++ b/src/gui-skin.cpp @@ -22,6 +22,8 @@ #include #include +#include "gsubr.h" +#include "gui-font.h" #include "gui-skin.h" #include "wrapped.h" @@ -31,10 +33,56 @@ extern "C" { init_gui_skin (void) { init_gui_skin_type (); + DEFINE_GSUBR ("get-skin-font", 1, 0, 1, irr_gui_getSkinFont); } DEFINE_WRAPPED_TYPE (irr::gui::IGUISkin*, "gui-skin", init_gui_skin_type, gui_skin_p, wrap_gui_skin, unwrap_gui_skin); + 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)); + } + } }