]> git.jsancho.org Git - guile-irrlicht.git/commitdiff
Scrollbars are GUI elements too
authorJavier Sancho <jsf@jsancho.org>
Mon, 27 Apr 2020 06:44:22 +0000 (08:44 +0200)
committerJavier Sancho <jsf@jsancho.org>
Mon, 27 Apr 2020 06:44:22 +0000 (08:44 +0200)
src/gui-scrollbar.cpp

index 9a71d788c082c4290afa7bfce7a0323609cfbef6..c5dbc8add31071e3c7e814bd147f189131a73942 100644 (file)
@@ -22,6 +22,7 @@
 #include <irrlicht/irrlicht.h>
 #include <libguile.h>
 
+#include "gui-element.h"
 #include "gui-scrollbar.h"
 #include "gsubr.h"
 #include "wrapped.h"
@@ -43,7 +44,14 @@ extern "C" {
   SCM
   irr_gui_getPos (SCM wrapped_scrollbar)
   {
-    irr::gui::IGUIScrollBar* scrollbar = unwrap_gui_scrollbar (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 ());
   }
 
@@ -51,7 +59,14 @@ extern "C" {
   irr_gui_setPos (SCM wrapped_scrollbar,
                   SCM pos)
   {
-    irr::gui::IGUIScrollBar* scrollbar = unwrap_gui_scrollbar (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);
+    }
     scrollbar->setPos (scm_to_int32 (pos));
     return SCM_UNSPECIFIED;
   }