]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/gui.cpp
add-button!
[guile-irrlicht.git] / src / gui.cpp
index 313a83b2ef34487db5f5626fc821fca5d57bb511..2f7044bb437dea04b7fa807a2fd366dce7e6c7e0 100644 (file)
@@ -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)