]> git.jsancho.org Git - guile-irrlicht.git/commitdiff
set-override-color!
authorJavier Sancho <jsf@jsancho.org>
Sun, 12 Apr 2020 16:15:45 +0000 (18:15 +0200)
committerJavier Sancho <jsf@jsancho.org>
Sun, 12 Apr 2020 16:15:45 +0000 (18:15 +0200)
Makefile.am
src/gui-edit-box.cpp [new file with mode: 0644]
src/gui-edit-box.h [new file with mode: 0644]
src/gui.cpp [new file with mode: 0644]
src/gui.h [new file with mode: 0644]
src/guile-irrlicht.cpp

index 7f906627361e45ef3b604ad7e067451427916ad5..c99cd472d8a7b96f2665220c76b249b6ff74d4f1 100644 (file)
@@ -36,6 +36,8 @@ libguile_irrlicht_la_SOURCES = \
   src/event-receiver.cpp \
   src/file-archive.cpp \
   src/file-system.cpp \
+  src/gui.cpp \
+  src/gui-edit-box.cpp \
   src/gui-element.cpp \
   src/gui-environment.cpp \
   src/gui-image.cpp \
diff --git a/src/gui-edit-box.cpp b/src/gui-edit-box.cpp
new file mode 100644 (file)
index 0000000..f924440
--- /dev/null
@@ -0,0 +1,39 @@
+/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
+
+   Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
+
+   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
+   <http://www.gnu.org/licenses/>.
+*/
+
+#include <irrlicht/irrlicht.h>
+#include <libguile.h>
+#include "gui-edit-box.h"
+#include "wrapped.h"
+
+extern "C" {
+
+  void
+  init_gui_edit_box (void)
+  {
+    init_gui_edit_box_type ();
+  }
+
+  DEFINE_WRAPPED_TYPE (irr::gui::IGUIEditBox*, "gui-edit-box",
+                       init_gui_edit_box_type, gui_edit_box_p,
+                       wrap_gui_edit_box, unwrap_gui_edit_box);
+
+}
diff --git a/src/gui-edit-box.h b/src/gui-edit-box.h
new file mode 100644 (file)
index 0000000..47497cd
--- /dev/null
@@ -0,0 +1,38 @@
+/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
+
+   Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
+
+   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
+   <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __GUILE_IRRLICHT_GUI_EDIT_BOX_H_INCLUDED__
+#define __GUILE_IRRLICHT_GUI_EDIT_BOX_H_INCLUDED__
+
+#include <irrlicht/irrlicht.h>
+#include <libguile.h>
+#include "wrapped.h"
+
+extern "C" {
+
+  void
+  init_gui_edit_box (void);
+
+  DECLARE_WRAPPED_TYPE (irr::gui::IGUIEditBox*, init_gui_edit_box_type,
+                        gui_edit_box_p, wrap_gui_edit_box, unwrap_gui_edit_box);
+}
+
+#endif
diff --git a/src/gui.cpp b/src/gui.cpp
new file mode 100644 (file)
index 0000000..bb4f9e9
--- /dev/null
@@ -0,0 +1,61 @@
+/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
+
+   Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
+
+   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
+   <http://www.gnu.org/licenses/>.
+*/
+
+#include <irrlicht/irrlicht.h>
+#include <libguile.h>
+
+#include "color.h"
+#include "gsubr.h"
+#include "gui.h"
+#include "gui-edit-box.h"
+#include "gui-static-text.h"
+
+extern "C" {
+
+  void
+  init_gui (void)
+  {
+    DEFINE_GSUBR ("set-override-color!", 2, 0, 0, irr_gui_setOverrideColor);
+  }
+
+  SCM
+  irr_gui_setOverrideColor (SCM wrapped_obj,
+                            SCM color)
+  {
+#define SET_OVERRIDE_COLOR(OBJ) OBJ->setOverrideColor (scm_to_color (color));
+
+    if (gui_edit_box_p (wrapped_obj))
+      {
+        SET_OVERRIDE_COLOR (unwrap_gui_edit_box (wrapped_obj));
+      }
+    else if (gui_static_text_p (wrapped_obj))
+      {
+        SET_OVERRIDE_COLOR (unwrap_gui_static_text (wrapped_obj));
+      }
+    else
+      {
+        scm_error (scm_arg_type_key, NULL, "Cannot set override color to object: ~S",
+                   scm_list_1 (wrapped_obj), scm_list_1 (wrapped_obj));
+      }
+    return SCM_UNSPECIFIED;
+  }
+
+}
diff --git a/src/gui.h b/src/gui.h
new file mode 100644 (file)
index 0000000..aac54a5
--- /dev/null
+++ b/src/gui.h
@@ -0,0 +1,39 @@
+/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
+
+   Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
+
+   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
+   <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __GUILE_IRRLICHT_GUI_H_INCLUDED__
+#define __GUILE_IRRLICHT_GUI_H_INCLUDED__
+
+#include <irrlicht/irrlicht.h>
+#include <libguile.h>
+
+extern "C" {
+
+  void
+  init_gui (void);
+
+  SCM
+  irr_gui_setOverrideColor (SCM wrapped_obj,
+                            SCM color);
+
+}
+
+#endif
index d0560c11caebf4f5982a07c83b22916e08ec4c3e..99b9928d837e911d35d8cf1c6777a1b876d39737 100644 (file)
@@ -31,6 +31,8 @@
 #include "file-archive.h"
 #include "file-system.h"
 #include "gsubr.h"
+#include "gui.h"
+#include "gui-edit-box.h"
 #include "gui-element.h"
 #include "gui-environment.h"
 #include "gui-image.h"
@@ -64,6 +66,8 @@ extern "C" {
     init_event_receiver ();
     init_file_archive ();
     init_file_system ();
+    init_gui ();
+    init_gui_edit_box ();
     init_gui_element ();
     init_gui_environment ();
     init_gui_image ();