X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgui-skin.cpp;h=06242ddebec7fab5f344dd920847cf13eafff45a;hb=357f279e004c6257a160205835c06c283d317ef7;hp=b6e0ae1dfcb71f3d5d7fff6a84f83c2f94b83a79;hpb=79089024921211289013205616d5706eb0132981;p=guile-irrlicht.git diff --git a/src/gui-skin.cpp b/src/gui-skin.cpp index b6e0ae1..06242dd 100644 --- a/src/gui-skin.cpp +++ b/src/gui-skin.cpp @@ -24,207 +24,207 @@ #include "color.h" #include "gsubr.h" #include "gui-skin.h" - +#include "wrapped.h" using namespace irr; - SCM -irr_gui_IGUISkin_getColor (SCM gui_skin, - SCM color) +IGUISkin_getColor (SCM gui_skin, + SCM color) { - gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_pointer (gui_skin); + gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_irr_pointer (gui_skin); video::SColor scolor = skin->getColor (scm_to_default_color (color)); return scm_from_color (scolor); } - SCM -irr_gui_IGUISkin_getFont (SCM gui_skin, - SCM which) +IGUISkin_getFont (SCM gui_skin, + SCM which) { - gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_pointer (gui_skin); + gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_irr_pointer (gui_skin); gui::IGUIFont* font = skin->getFont (scm_to_default_font (which)); return scm_from_pointer ((void*) font, NULL); } - SCM -irr_gui_IGUISkin_setColor (SCM gui_skin, - SCM which, - SCM new_color) +IGUISkin_setColor (SCM gui_skin, + SCM which, + SCM new_color) { - gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_pointer (gui_skin); + gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_irr_pointer (gui_skin); skin->setColor (scm_to_default_color (which), scm_to_color (new_color)); return SCM_UNSPECIFIED; } - SCM -irr_gui_IGUISkin_setFont (SCM gui_skin, - SCM font, - SCM which) +IGUISkin_setFont (SCM gui_skin, + SCM font, + SCM which) { - gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_pointer (gui_skin); - skin->setFont ((gui::IGUIFont*) scm_to_pointer (font), + gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_irr_pointer (gui_skin); + skin->setFont ((gui::IGUIFont*) scm_to_irr_pointer (font), scm_to_default_font (which)); return SCM_UNSPECIFIED; } - -extern "C" { - - void - init_gui_skin (void) - { - DEFINE_GSUBR ("irr_gui_IGUISkin_getColor", 2, 0, 0, irr_gui_IGUISkin_getColor); - DEFINE_GSUBR ("irr_gui_IGUISkin_getFont", 2, 0, 0, irr_gui_IGUISkin_getFont); - DEFINE_GSUBR ("irr_gui_IGUISkin_setColor", 3, 0, 0, irr_gui_IGUISkin_setColor); - DEFINE_GSUBR ("irr_gui_IGUISkin_setFont", 3, 0, 0, irr_gui_IGUISkin_setFont); - } - +void +init_gui_skin (void) +{ + DEFINE_GSUBR ("IGUISkin_getColor", 2, 0, 0, IGUISkin_getColor); + DEFINE_GSUBR ("IGUISkin_getFont", 2, 0, 0, IGUISkin_getFont); + DEFINE_GSUBR ("IGUISkin_setColor", 3, 0, 0, IGUISkin_setColor); + DEFINE_GSUBR ("IGUISkin_setFont", 3, 0, 0, IGUISkin_setFont); } gui::EGUI_DEFAULT_COLOR scm_to_default_color (SCM default_color) { - char* color = scm_to_utf8_stringn (scm_symbol_to_string (default_color), NULL); - if (!strcmp (color, "3d-dark-shadow")) + char* color_name = scm_to_utf8_string (scm_symbol_to_string (default_color)); + gui::EGUI_DEFAULT_COLOR color; + + if (!strcmp (color_name, "3d-dark-shadow")) { - return gui::EGDC_3D_DARK_SHADOW; + color = gui::EGDC_3D_DARK_SHADOW; } - else if (!strcmp (color, "3d-shadow")) + else if (!strcmp (color_name, "3d-shadow")) { - return gui::EGDC_3D_SHADOW; + color = gui::EGDC_3D_SHADOW; } - else if (!strcmp (color, "3d-face")) + else if (!strcmp (color_name, "3d-face")) { - return gui::EGDC_3D_FACE; + color = gui::EGDC_3D_FACE; } - else if (!strcmp (color, "3d-high-light")) + else if (!strcmp (color_name, "3d-high-light")) { - return gui::EGDC_3D_HIGH_LIGHT; + color = gui::EGDC_3D_HIGH_LIGHT; } - else if (!strcmp (color, "3d-light")) + else if (!strcmp (color_name, "3d-light")) { - return gui::EGDC_3D_LIGHT; + color = gui::EGDC_3D_LIGHT; } - else if (!strcmp (color, "active-border")) + else if (!strcmp (color_name, "active-border")) { - return gui::EGDC_ACTIVE_BORDER; + color = gui::EGDC_ACTIVE_BORDER; } - else if (!strcmp (color, "active-caption")) + else if (!strcmp (color_name, "active-caption")) { - return gui::EGDC_ACTIVE_CAPTION; + color = gui::EGDC_ACTIVE_CAPTION; } - else if (!strcmp (color, "app-workspace")) + else if (!strcmp (color_name, "app-workspace")) { - return gui::EGDC_APP_WORKSPACE; + color = gui::EGDC_APP_WORKSPACE; } - else if (!strcmp (color, "button-text")) + else if (!strcmp (color_name, "button-text")) { - return gui::EGDC_BUTTON_TEXT; + color = gui::EGDC_BUTTON_TEXT; } - else if (!strcmp (color, "gray-text")) + else if (!strcmp (color_name, "gray-text")) { - return gui::EGDC_GRAY_TEXT; + color = gui::EGDC_GRAY_TEXT; } - else if (!strcmp (color, "high-light")) + else if (!strcmp (color_name, "high-light")) { - return gui::EGDC_HIGH_LIGHT; + color = gui::EGDC_HIGH_LIGHT; } - else if (!strcmp (color, "high-light-text")) + else if (!strcmp (color_name, "high-light-text")) { - return gui::EGDC_HIGH_LIGHT_TEXT; + color = gui::EGDC_HIGH_LIGHT_TEXT; } - else if (!strcmp (color, "inactive-border")) + else if (!strcmp (color_name, "inactive-border")) { - return gui::EGDC_INACTIVE_BORDER; + color = gui::EGDC_INACTIVE_BORDER; } - else if (!strcmp (color, "inactive-caption")) + else if (!strcmp (color_name, "inactive-caption")) { - return gui::EGDC_INACTIVE_CAPTION; + color = gui::EGDC_INACTIVE_CAPTION; } - else if (!strcmp (color, "tooltip")) + else if (!strcmp (color_name, "tooltip")) { - return gui::EGDC_TOOLTIP; + color = gui::EGDC_TOOLTIP; } - else if (!strcmp (color, "tooltip-background")) + else if (!strcmp (color_name, "tooltip-background")) { - return gui::EGDC_TOOLTIP_BACKGROUND; + color = gui::EGDC_TOOLTIP_BACKGROUND; } - else if (!strcmp (color, "scrollbar")) + else if (!strcmp (color_name, "scrollbar")) { - return gui::EGDC_SCROLLBAR; + color = gui::EGDC_SCROLLBAR; } - else if (!strcmp (color, "window")) + else if (!strcmp (color_name, "window")) { - return gui::EGDC_WINDOW; + color = gui::EGDC_WINDOW; } - else if (!strcmp (color, "window-symbol")) + else if (!strcmp (color_name, "window-symbol")) { - return gui::EGDC_WINDOW_SYMBOL; + color = gui::EGDC_WINDOW_SYMBOL; } - else if (!strcmp (color, "icon")) + else if (!strcmp (color_name, "icon")) { - return gui::EGDC_ICON; + color = gui::EGDC_ICON; } - else if (!strcmp (color, "icon-high-light")) + else if (!strcmp (color_name, "icon-high-light")) { - return gui::EGDC_ICON_HIGH_LIGHT; + color = gui::EGDC_ICON_HIGH_LIGHT; } - else if (!strcmp (color, "gray-window-symbol")) + else if (!strcmp (color_name, "gray-window-symbol")) { - return gui::EGDC_GRAY_WINDOW_SYMBOL; + color = gui::EGDC_GRAY_WINDOW_SYMBOL; } - else if (!strcmp (color, "editable")) + else if (!strcmp (color_name, "editable")) { - return gui::EGDC_EDITABLE; + color = gui::EGDC_EDITABLE; } - else if (!strcmp (color, "gray-editable")) + else if (!strcmp (color_name, "gray-editable")) { - return gui::EGDC_GRAY_EDITABLE; + color = gui::EGDC_GRAY_EDITABLE; } - else if (!strcmp (color, "focused-editable")) + else if (!strcmp (color_name, "focused-editable")) { - return gui::EGDC_FOCUSED_EDITABLE; + color = gui::EGDC_FOCUSED_EDITABLE; } else { scm_error (scm_arg_type_key, NULL, "Wrong default color: ~S", scm_list_1 (default_color), scm_list_1 (default_color)); } -} + free (color_name); + return color; +} 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")) + char* font_name = scm_to_utf8_string (scm_symbol_to_string (default_font)); + gui::EGUI_DEFAULT_FONT font; + + if (!strcmp (font_name, "default")) { - return gui::EGDF_DEFAULT; + font = gui::EGDF_DEFAULT; } - else if (!strcmp (font, "button")) + else if (!strcmp (font_name, "button")) { - return gui::EGDF_BUTTON; + font = gui::EGDF_BUTTON; } - else if (!strcmp (font, "window")) + else if (!strcmp (font_name, "window")) { - return gui::EGDF_WINDOW; + font = gui::EGDF_WINDOW; } - else if (!strcmp (font, "menu")) + else if (!strcmp (font_name, "menu")) { - return gui::EGDF_MENU; + font = gui::EGDF_MENU; } - else if (!strcmp (font, "tooltip")) + else if (!strcmp (font_name, "tooltip")) { - return gui::EGDF_TOOLTIP; + font = 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)); } + + free (font_name); + return font; }