]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/gui-scrollbar.cpp
cursor-control
[guile-irrlicht.git] / src / gui-scrollbar.cpp
index fe7c3b0d34c5069aae02458bf61124c69a7e6f6c..c5dbc8add31071e3c7e814bd147f189131a73942 100644 (file)
@@ -22,7 +22,9 @@
 #include <irrlicht/irrlicht.h>
 #include <libguile.h>
 
+#include "gui-element.h"
 #include "gui-scrollbar.h"
+#include "gsubr.h"
 #include "wrapped.h"
 
 extern "C" {
@@ -31,10 +33,42 @@ extern "C" {
   init_gui_scrollbar (void)
   {
     init_gui_scrollbar_type ();
+    DEFINE_GSUBR ("get-pos", 1, 0, 0, irr_gui_getPos);
+    DEFINE_GSUBR ("set-pos!", 2, 0, 0, irr_gui_setPos);
   }
 
   DEFINE_WRAPPED_TYPE (irr::gui::IGUIScrollBar*, "gui-scrollbar",
                        init_gui_scrollbar_type, gui_scrollbar_p,
                        wrap_gui_scrollbar, unwrap_gui_scrollbar);
 
+  SCM
+  irr_gui_getPos (SCM wrapped_scrollbar)
+  {
+    irr::gui::IGUIScrollBar* scrollbar;
+    if (gui_element_p (wrapped_scrollbar))
+      {
+        scrollbar = (irr::gui::IGUIScrollBar*)unwrap_gui_element (wrapped_scrollbar);
+      }
+    else {
+      scrollbar = unwrap_gui_scrollbar (wrapped_scrollbar);
+    }
+    return scm_from_int32 (scrollbar->getPos ());
+  }
+
+  SCM
+  irr_gui_setPos (SCM wrapped_scrollbar,
+                  SCM pos)
+  {
+    irr::gui::IGUIScrollBar* scrollbar;
+    if (gui_element_p (wrapped_scrollbar))
+      {
+        scrollbar = (irr::gui::IGUIScrollBar*)unwrap_gui_element (wrapped_scrollbar);
+      }
+    else {
+      scrollbar = unwrap_gui_scrollbar (wrapped_scrollbar);
+    }
+    scrollbar->setPos (scm_to_int32 (pos));
+    return SCM_UNSPECIFIED;
+  }
+
 }