X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=src%2Fgui-toolbar.cpp;h=1f38bdbcdcba46fc6e8622cb8456645b4e08962e;hp=eec05c71a3714c4fbaa93fb93440ab2dc35c2ef2;hb=19663b6c5766b06c73148fdf803ce3555052a23e;hpb=a079c41de6a7504e579b425820beef21579e530e diff --git a/src/gui-toolbar.cpp b/src/gui-toolbar.cpp index eec05c7..1f38bdb 100644 --- a/src/gui-toolbar.cpp +++ b/src/gui-toolbar.cpp @@ -21,57 +21,43 @@ #include #include - -#include "gui-button.h" +#include "gsubr.h" #include "gui-toolbar.h" -#include "texture.h" #include "wchar.h" -#include "wrapped.h" + + +using namespace irr; + + +SCM +irr_gui_IGUIToolBar_addButton (SCM gui_toolbar, + SCM id, + SCM text, + SCM tooltiptext, + SCM img, + SCM pressedimg, + SCM is_push_button, + SCM use_alpha_channel) +{ + gui::IGUIToolBar* toolbar = (gui::IGUIToolBar*) scm_to_pointer (gui_toolbar); + gui::IGUIButton* button = + toolbar->addButton (scm_to_int32 (id), + scm_to_wide_char_string (text), + scm_to_wide_char_string (tooltiptext), + (video::ITexture*) scm_to_pointer (img), + (video::ITexture*) scm_to_pointer (pressedimg), + scm_to_bool (is_push_button), + scm_to_bool (use_alpha_channel)); + return scm_from_pointer ((void*) button, NULL); +} + extern "C" { void init_gui_toolbar (void) { - init_gui_toolbar_type (); - } - - DEFINE_WRAPPED_TYPE (irr::gui::IGUIToolBar*, "gui-toolbar", - init_gui_toolbar_type, gui_toolbar_p, - wrap_gui_toolbar, unwrap_gui_toolbar); - - SCM - irr_gui_IGUIToolBar_addButton (SCM wrapped_gui_toolbar, - SCM rest) - { - SCM id = scm_from_int32 (-1); - SCM text = SCM_UNDEFINED; - SCM tooltiptext = SCM_UNDEFINED; - SCM img = SCM_UNDEFINED; - SCM pressedimg = SCM_UNDEFINED; - SCM is_push_button = SCM_BOOL_F; - SCM use_alpha_channel = SCM_BOOL_F; - - scm_c_bind_keyword_arguments ("add-button!", rest, (scm_t_keyword_arguments_flags)0, - scm_from_utf8_keyword ("id"), &id, - scm_from_utf8_keyword ("text"), &text, - scm_from_utf8_keyword ("tooltiptext"), &tooltiptext, - scm_from_utf8_keyword ("img"), &img, - scm_from_utf8_keyword ("pressedimg"), &pressedimg, - scm_from_utf8_keyword ("is_push_button"), &is_push_button, - scm_from_utf8_keyword ("use_alpha_channel"), &use_alpha_channel, - SCM_UNDEFINED); - - irr::gui::IGUIToolBar* toolbar = unwrap_gui_toolbar (wrapped_gui_toolbar); - irr::gui::IGUIButton* button = - toolbar->addButton (scm_to_int32 (id), - text == SCM_UNDEFINED ? 0 : scm_to_wide_char_string (text), - tooltiptext == SCM_UNDEFINED ? 0 : scm_to_wide_char_string (tooltiptext), - img == SCM_UNDEFINED ? 0 : unwrap_texture (img), - pressedimg == SCM_UNDEFINED ? 0 : unwrap_texture (pressedimg), - scm_to_bool (is_push_button), - scm_to_bool (use_alpha_channel)); - return wrap_gui_button (button); + DEFINE_GSUBR ("irr_gui_IGUIToolBar_addButton", 8, 0, 0, irr_gui_IGUIToolBar_addButton); } }