]> git.jsancho.org Git - guile-irrlicht.git/commitdiff
gui-listbox
authorJavier Sancho <jsf@jsancho.org>
Sat, 9 May 2020 12:02:13 +0000 (14:02 +0200)
committerJavier Sancho <jsf@jsancho.org>
Sat, 9 May 2020 12:02:13 +0000 (14:02 +0200)
src/gui-listbox.cpp
src/gui-listbox.h

index 599eca70a0f29408cfc3712d97df0d765be16130..ee82efface87ed52538933acc89f931c71fbfea9 100644 (file)
 
 #include <irrlicht/irrlicht.h>
 #include <libguile.h>
-
 #include "gui-listbox.h"
 #include "gsubr.h"
 #include "wchar.h"
-#include "wrapped.h"
+
+
+using namespace irr;
+
+
+SCM
+gui_IGUIListBox_addItem (SCM gui_listbox,
+                         SCM text,
+                         SCM icon)
+{
+  gui::IGUIListBox* listbox = (gui::IGUIListBox*)scm_to_pointer (gui_listbox);
+  u32 item_id;
+  if (icon == SCM_UNDEFINED)
+    {
+      item_id = listbox->addItem (scm_to_wide_char_string (text));
+    }
+  else
+    {
+      item_id = listbox->addItem (scm_to_wide_char_string (text),
+                                  scm_to_int32 (icon));
+    }
+  return scm_from_uint32 (item_id);
+}
+
 
 extern "C" {
 
   void
   init_gui_listbox (void)
   {
-    init_gui_listbox_type ();
-    DEFINE_GSUBR ("add-listbox-item!", 2, 1, 0, irr_gui_IGUIListBox_addItem);
-  }
-
-  DEFINE_WRAPPED_TYPE (irr::gui::IGUIListBox*, "gui-listbox",
-                       init_gui_listbox_type, gui_listbox_p,
-                       wrap_gui_listbox, unwrap_gui_listbox);
-
-  SCM
-  irr_gui_IGUIListBox_addItem (SCM wrapped_gui_listbox,
-                               SCM text,
-                               SCM icon)
-  {
-    irr::gui::IGUIListBox* listbox = unwrap_gui_listbox (wrapped_gui_listbox);
-    irr::u32 item_id;
-    if (icon == SCM_UNDEFINED)
-      {
-        item_id = listbox->addItem (scm_to_wide_char_string (text));
-      }
-    else
-      {
-        item_id = listbox->addItem (scm_to_wide_char_string (text),
-                                    scm_to_int32 (icon));
-      }
-    return scm_from_uint32 (item_id);
+    DEFINE_GSUBR ("gui_IGUIListBox_addItem", 2, 1, 0, gui_IGUIListBox_addItem);
   }
 
 }
index 23da3322d28d541fa688793a4783f5be75d44376..f4e1ff73783a4e0637bc6f132e4aa99218c47c8c 100644 (file)
 
 #include <irrlicht/irrlicht.h>
 #include <libguile.h>
-#include "wrapped.h"
 
-extern "C" {
+SCM
+gui_IGUIListBox_addItem (SCM gui_listbox,
+                         SCM text,
+                         SCM icon);
 
+extern "C" {
   void
   init_gui_listbox (void);
-
-  DECLARE_WRAPPED_TYPE (irr::gui::IGUIListBox*, init_gui_listbox_type,
-                        gui_listbox_p, wrap_gui_listbox, unwrap_gui_listbox);
-
-  SCM
-  irr_gui_IGUIListBox_addItem (SCM wrapped_gui_listbox,
-                               SCM text,
-                               SCM icon);
-
 }
 
 #endif