From: Javier Sancho Date: Sun, 10 May 2020 07:10:39 +0000 (+0200) Subject: gui-toolbar X-Git-Url: https://git.jsancho.org/?a=commitdiff_plain;h=63b5eb2539286acf8f8961c342363f7e14319c89;p=guile-irrlicht.git gui-toolbar --- diff --git a/src/gui-toolbar.cpp b/src/gui-toolbar.cpp index eec05c7..3eac377 100644 --- a/src/gui-toolbar.cpp +++ b/src/gui-toolbar.cpp @@ -21,57 +21,42 @@ #include #include - -#include "gui-button.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); } } diff --git a/src/gui-toolbar.h b/src/gui-toolbar.h index 4d09b6c..e40a96f 100644 --- a/src/gui-toolbar.h +++ b/src/gui-toolbar.h @@ -24,20 +24,10 @@ #include #include -#include "wrapped.h" extern "C" { - void init_gui_toolbar (void); - - DECLARE_WRAPPED_TYPE (irr::gui::IGUIToolBar*, init_gui_toolbar_type, - gui_toolbar_p, wrap_gui_toolbar, unwrap_gui_toolbar); - - SCM - irr_gui_IGUIToolBar_addButton (SCM wrapped_gui_toolbar, - SCM rest); - } #endif