X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgui.cpp;h=c507f1d73f73c49f1bb836e1fa5603bf369f896c;hb=65527be1c7ad3f05ba651c25249fd8300f5f4fad;hp=6068f3a7eea71546811237d4dc7f20b1a92d7921;hpb=61aadd8525de89016f63572fd474547a1bb932de;p=guile-irrlicht.git diff --git a/src/gui.cpp b/src/gui.cpp index 6068f3a..c507f1d 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -59,6 +59,7 @@ extern "C" { DEFINE_GSUBR ("add-button!", 1, 1, 1, irr_gui_addButton); DEFINE_GSUBR ("get-color", 1, 1, 0, irr_gui_getColor); DEFINE_GSUBR ("get-font", 1, 1, 1, irr_gui_getFont); + DEFINE_GSUBR ("set-color!", 2, 1, 0, irr_gui_setColor); DEFINE_GSUBR ("set-max!", 2, 0, 0, irr_gui_setMax); DEFINE_GSUBR ("set-override-color!", 2, 0, 0, irr_gui_setOverrideColor); } @@ -128,6 +129,34 @@ extern "C" { } } + SCM + irr_gui_setColor (SCM wrapped_obj, + SCM color, + SCM dest_color) + { + if (gui_image_p (wrapped_obj)) + { + // Params: color + unwrap_gui_image (wrapped_obj)->setColor (scm_to_color (color)); + return SCM_UNSPECIFIED; + } + else if (gui_in_out_fader_p (wrapped_obj)) + { + // Params: color and dest_color (optional) + return irr_gui_IGUIInOutFader_setColor (wrapped_obj, color, dest_color); + } + else if (gui_skin_p (wrapped_obj) && !scm_is_false (dest_color)) + { + // Params: which and new_color + return irr_gui_IGUISkin_setColor (wrapped_obj, color, dest_color); + } + else + { + scm_error (scm_arg_type_key, NULL, "Cannot set color to object: ~S", + scm_list_1 (wrapped_obj), scm_list_1 (wrapped_obj)); + } + } + SCM irr_gui_setMax (SCM wrapped_obj, SCM max)