X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgui-scrollbar.cpp;h=c5dbc8add31071e3c7e814bd147f189131a73942;hb=e475a79b29e679e6378f871f236ba44ec6a4ae12;hp=fe7c3b0d34c5069aae02458bf61124c69a7e6f6c;hpb=272a4db4154e3970be1f0c619fa592d7b6b89f74;p=guile-irrlicht.git diff --git a/src/gui-scrollbar.cpp b/src/gui-scrollbar.cpp index fe7c3b0..c5dbc8a 100644 --- a/src/gui-scrollbar.cpp +++ b/src/gui-scrollbar.cpp @@ -22,7 +22,9 @@ #include #include +#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; + } + }