#include <irrlicht/irrlicht.h>
#include <libguile.h>
+#include "gui-element.h"
#include "gui-scrollbar.h"
#include "gsubr.h"
#include "wrapped.h"
init_gui_scrollbar_type, gui_scrollbar_p,
wrap_gui_scrollbar, unwrap_gui_scrollbar);
+ SCM
+ irr_gui_setMax (SCM wrapped_obj,
+ SCM max)
+ {
+#define SET_MAX(OBJ) OBJ->setMax (scm_to_int32 (max));
+
+ if (gui_editbox_p (wrapped_obj))
+ {
+ SET_MAX (unwrap_gui_editbox (wrapped_obj));
+ }
+ else if (gui_scrollbar_p (wrapped_obj))
+ {
+ SET_MAX (unwrap_gui_scrollbar (wrapped_obj));
+ }
+ else
+ {
+ scm_error (scm_arg_type_key, NULL, "Cannot set max to object: ~S",
+ scm_list_1 (wrapped_obj), scm_list_1 (wrapped_obj));
+ }
+ return SCM_UNSPECIFIED;
+ }
+
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 ());
}
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;
}