X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=src%2Fgui-environment.cpp;fp=src%2Fgui-environment.cpp;h=0000000000000000000000000000000000000000;hp=c2e52726d5d516c589d45bcb6fb65d6375512690;hb=d392bfc335713faab44275624d8fd78139880975;hpb=3bb58c2b45af12c0f9c9eac648e67ac6fa90e104 diff --git a/src/gui-environment.cpp b/src/gui-environment.cpp deleted file mode 100644 index c2e5272..0000000 --- a/src/gui-environment.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine - - Copyright (C) 2020 Javier Sancho - - This file is part of guile-irrlicht. - - guile-irrlicht is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 3 of the - License, or (at your option) any later version. - - guile-irrlicht is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with guile-irrlicht. If not, see - . -*/ - -#include -#include -#include "gsubr.h" -#include "gui-environment.h" -#include "position2d.h" -#include "rect.h" -#include "wchar.h" -#include "wrapped.h" - -using namespace irr; - -template -SCM -IGUIEnvironment_addButton (SCM gui_environment, - SCM rectangle, - SCM parent, - SCM id, - SCM text, - SCM tooltiptext) -{ - wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); - wchar_t* wtooltiptext = (wchar_t*) scm_to_utf32_string (tooltiptext); - - gui::IGUIButton* button = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> - addButton (scm_to_rect_s32 (rectangle), - (TParent)scm_to_irr_pointer (parent), - scm_to_int32 (id), - wtext, - wtooltiptext); - - free (wtext); - free (wtooltiptext); - return scm_from_irr_pointer ("", (void*) button); -} - -template -SCM -IGUIEnvironment_addEditBox (SCM gui_environment, - SCM text, - SCM rectangle, - SCM border, - SCM parent, - SCM id) -{ - wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); - - gui::IGUIEditBox* editbox = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> - addEditBox (wtext, - scm_to_rect_s32 (rectangle), - scm_to_bool (border), - (TParent)scm_to_irr_pointer (parent), - scm_to_int32 (id)); - - free (wtext); - return scm_from_irr_pointer ("", (void*) editbox); -} - -template -SCM -IGUIEnvironment_addFileOpenDialog (SCM gui_environment, - SCM title, - SCM modal, - SCM parent, - SCM id, - SCM restore_cwd, - SCM start_dir) -{ - gui::IGUIEnvironment* guienv = (gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment); - wchar_t* wtitle = (wchar_t*) scm_to_utf32_string (title); - io::path::char_type* cstartDir = scm_to_utf8_string (start_dir); - - gui::IGUIFileOpenDialog* dialog = - guienv->addFileOpenDialog (wtitle, - scm_to_bool (modal), - (TParent)scm_to_irr_pointer (parent), - scm_to_int32 (id), - scm_to_bool (restore_cwd), - cstartDir); - - free (wtitle); - free (cstartDir); - return scm_from_irr_pointer ("", (void*) dialog); -} - -template -SCM -IGUIEnvironment_addImage (SCM gui_environment, - SCM image, - SCM position, - SCM use_alpha_channel, - SCM parent, - SCM id, - SCM text) -{ - gui::IGUIEnvironment* guienv = (gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment); - wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); - - gui::IGUIImage* new_image = - guienv->addImage ((video::ITexture*)scm_to_irr_pointer (image), - scm_to_position2d_s32 (position), - scm_to_bool (use_alpha_channel), - (TParent)scm_to_irr_pointer (parent), - scm_to_int32 (id), - wtext); - - free (wtext); - return scm_from_irr_pointer ("", (void*) new_image); -} - -template -SCM -IGUIEnvironment_addListBox (SCM gui_environment, - SCM rectangle, - SCM parent, - SCM id, - SCM draw_background) -{ - gui::IGUIListBox* listbox = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> - addListBox (scm_to_rect_s32 (rectangle), - (TParent)scm_to_irr_pointer (parent), - scm_to_int32 (id), - scm_to_bool (draw_background)); - return scm_from_irr_pointer ("", (void*) listbox); -} - -template -SCM -IGUIEnvironment_addScrollBar (SCM gui_environment, - SCM horizontal, - SCM rectangle, - SCM parent, - SCM id) -{ - gui::IGUIScrollBar* scrollbar = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> - addScrollBar (scm_to_bool (horizontal), - scm_to_rect_s32 (rectangle), - (TParent)scm_to_irr_pointer (parent), - scm_to_int32 (id)); - return scm_from_irr_pointer ("", (void*) scrollbar); -} - -template -SCM -IGUIEnvironment_addStaticText (SCM gui_environment, - SCM text, - SCM rectangle, - SCM border, - SCM word_wrap, - SCM parent, - SCM id, - SCM fill_background) -{ - wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); - - gui::IGUIStaticText* static_text = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> - addStaticText (wtext, - scm_to_rect_s32 (rectangle), - scm_to_bool (border), - scm_to_bool (word_wrap), - (TParent)scm_to_irr_pointer (parent), - scm_to_int32 (id), - scm_to_bool (fill_background)); - - free (wtext); - return scm_from_irr_pointer ("", (void*) static_text); -} - -template -SCM -IGUIEnvironment_addWindow (SCM gui_environment, - SCM rectangle, - SCM modal, - SCM text, - SCM parent, - SCM id) -{ - wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); - - gui::IGUIWindow* window = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))-> - addWindow (scm_to_rect_s32 (rectangle), - scm_to_bool (modal), - wtext, - (TParent)scm_to_irr_pointer (parent), - scm_to_int32 (id)); - - free (wtext); - return scm_from_irr_pointer ("", (void*) window); -} - -SCM -IGUIEnvironment_drawAll (SCM gui_environment) -{ - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->drawAll (); - return SCM_UNSPECIFIED; -} - -SCM -IGUIEnvironment_getBuiltInFont (SCM gui_environment) -{ - gui::IGUIFont* font = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getBuiltInFont (); - return scm_from_irr_pointer ("", (void*) font); -} - -SCM -IGUIEnvironment_getFont (SCM gui_environment, - SCM filename) -{ - char* cfilename = scm_to_utf8_string (filename); - gui::IGUIFont* font = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getFont (cfilename); - free (cfilename); - return scm_from_irr_pointer ("", (void*) font); -} - -SCM -IGUIEnvironment_getSkin (SCM gui_environment) -{ - gui::IGUISkin* skin = - ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getSkin (); - return scm_from_irr_pointer ("", (void*) skin); -} - -void -init_gui_environment (void) -{ - DEFINE_GSUBR ("IGUIEnvironment_addButton_IGUIElement", 6, 0, 0, - IGUIEnvironment_addButton); - DEFINE_GSUBR ("IGUIEnvironment_addEditBox_IGUIElement", 6, 0, 0, - IGUIEnvironment_addEditBox); - DEFINE_GSUBR ("IGUIEnvironment_addFileOpenDialog_IGUIElement", 7, 0, 0, - IGUIEnvironment_addFileOpenDialog); - DEFINE_GSUBR ("IGUIEnvironment_addImage_IGUIElement", 7, 0, 0, - IGUIEnvironment_addImage); - DEFINE_GSUBR ("IGUIEnvironment_addListBox_IGUIElement", 5, 0, 0, - IGUIEnvironment_addListBox); - DEFINE_GSUBR ("IGUIEnvironment_addScrollBar_IGUIElement", 5, 0, 0, - IGUIEnvironment_addScrollBar); - DEFINE_GSUBR ("IGUIEnvironment_addStaticText_IGUIElement", 8, 0, 0, - IGUIEnvironment_addStaticText); - DEFINE_GSUBR ("IGUIEnvironment_addStaticText_IGUIWindow", 8, 0, 0, - IGUIEnvironment_addStaticText); - DEFINE_GSUBR ("IGUIEnvironment_addWindow_IGUIElement", 6, 0, 0, - IGUIEnvironment_addWindow); - DEFINE_GSUBR ("IGUIEnvironment_drawAll", 1, 0, 0, IGUIEnvironment_drawAll); - DEFINE_GSUBR ("IGUIEnvironment_getBuiltInFont", 1, 0, 0, IGUIEnvironment_getBuiltInFont); - DEFINE_GSUBR ("IGUIEnvironment_getFont", 2, 0, 0, IGUIEnvironment_getFont); - DEFINE_GSUBR ("IGUIEnvironment_getSkin", 1, 0, 0, IGUIEnvironment_getSkin); -}