X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=src%2Fgui.cpp;h=2f7044bb437dea04b7fa807a2fd366dce7e6c7e0;hp=313a83b2ef34487db5f5626fc821fca5d57bb511;hb=da89e12dbf35ce6452e6a6e2eeb3f83eaeb94c97;hpb=5780991d786b994724112c97f691d9e2b9f2f1c5 diff --git a/src/gui.cpp b/src/gui.cpp index 313a83b..2f7044b 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -25,6 +25,7 @@ #include "color.h" #include "gsubr.h" #include "gui.h" +#include "gui-button.h" #include "gui-edit-box.h" #include "gui-element.h" #include "gui-environment.h" @@ -32,6 +33,7 @@ #include "gui-image.h" #include "gui-skin.h" #include "gui-static-text.h" +#include "gui-toolbar.h" extern "C" { @@ -39,6 +41,7 @@ extern "C" { init_gui (void) { // Init objects + init_gui_button (); init_gui_edit_box (); init_gui_element (); init_gui_environment (); @@ -46,11 +49,33 @@ extern "C" { init_gui_image (); init_gui_skin (); init_gui_static_text (); + init_gui_toolbar (); // Shared procedures (used by two or more objects) + DEFINE_GSUBR ("add-button!", 1, 1, 1, irr_gui_addButton); DEFINE_GSUBR ("set-override-color!", 2, 0, 0, irr_gui_setOverrideColor); } + SCM + irr_gui_addButton (SCM wrapped_obj, + SCM rectangle, + SCM rest) + { + if (gui_toolbar_p (wrapped_obj)) + { + return irr_gui_IGUIToolBar_addButton (wrapped_obj, rest); + } + else if (gui_environment_p (wrapped_obj)) + { + return irr_gui_IGUIEnvironment_addButton (wrapped_obj, rectangle, rest); + } + else + { + scm_error (scm_arg_type_key, NULL, "Cannot add button to object: ~S", + scm_list_1 (wrapped_obj), scm_list_1 (wrapped_obj)); + } + } + SCM irr_gui_setOverrideColor (SCM wrapped_obj, SCM color)