From 3c6f05ad0b0efa2a787e25db274ef67c1a29b4fd Mon Sep 17 00:00:00 2001 From: Javier Sancho Date: Sun, 20 Oct 2019 18:46:00 +0200 Subject: [PATCH] ICursorControl --- Makefile.am | 2 ++ include/ICursorControl.h | 39 +++++++++++++++++++++++++++++++++++++++ include/IrrlichtDevice.h | 4 ++++ include/cirrlicht.h | 1 + src/ICursorControl.cpp | 34 ++++++++++++++++++++++++++++++++++ src/IrrlichtDevice.cpp | 6 ++++++ 6 files changed, 86 insertions(+) create mode 100644 include/ICursorControl.h create mode 100644 src/ICursorControl.cpp diff --git a/Makefile.am b/Makefile.am index 98935f0..35fdb74 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,6 +3,7 @@ lib_LTLIBRARIES = libCIrrlicht.la libCIrrlicht_la_SOURCES = \ src/CIrrlicht.cpp \ src/IAnimatedMeshSceneNode.cpp \ + src/ICursorControl.cpp \ src/IFileSystem.cpp \ src/IGUIEnvironment.cpp \ src/IrrlichtDevice.cpp \ @@ -20,6 +21,7 @@ pkginclude_HEADERS = \ include/IAnimatedMeshMD2.h \ include/IAnimatedMeshSceneNode.h \ include/ICameraSceneNode.h \ + include/ICursorControl.h \ include/IFileArchive.h \ include/IFileSystem.h \ include/IGUIElement.h \ diff --git a/include/ICursorControl.h b/include/ICursorControl.h new file mode 100644 index 0000000..f2afcf6 --- /dev/null +++ b/include/ICursorControl.h @@ -0,0 +1,39 @@ +/* c-irrlicht --- C bindings for Irrlicht Engine + + Copyright (C) 2019 Javier Sancho + + This file is part of c-irrlicht. + + c-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. + + c-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 + . +*/ + +#ifndef __C_I_CURSOR_CONTROL_H_INCLUDED__ +#define __C_I_CURSOR_CONTROL_H_INCLUDED__ + +typedef void irr_gui_ICursorControl; + +#ifdef __cplusplus +extern "C" { +#endif + + void + irr_gui_setVisibleCursor(irr_gui_ICursorControl* cursorControl, + int visible); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/IrrlichtDevice.h b/include/IrrlichtDevice.h index 72620c6..3f74464 100644 --- a/include/IrrlichtDevice.h +++ b/include/IrrlichtDevice.h @@ -22,6 +22,7 @@ #ifndef __C_IRRLICHT_DEVICE_H_INCLUDED__ #define __C_IRRLICHT_DEVICE_H_INCLUDED__ +#include "ICursorControl.h" #include "IFileSystem.h" #include "IGUIEnvironment.h" #include "ISceneManager.h" @@ -33,6 +34,9 @@ typedef void irr_IrrlichtDevice; extern "C" { #endif + irr_gui_ICursorControl* + irr_getCursorControl(irr_IrrlichtDevice* device); + irr_io_IFileSystem* irr_getFileSystem(irr_IrrlichtDevice* device); diff --git a/include/cirrlicht.h b/include/cirrlicht.h index ed0819a..a40c33a 100644 --- a/include/cirrlicht.h +++ b/include/cirrlicht.h @@ -28,6 +28,7 @@ #include "IAnimatedMeshMD2.h" #include "IAnimatedMeshSceneNode.h" #include "ICameraSceneNode.h" +#include "ICursorControl.h" #include "IFileArchive.h" #include "IFileSystem.h" #include "IGUIEnvironment.h" diff --git a/src/ICursorControl.cpp b/src/ICursorControl.cpp new file mode 100644 index 0000000..a07c05b --- /dev/null +++ b/src/ICursorControl.cpp @@ -0,0 +1,34 @@ +/* c-irrlicht --- C bindings for Irrlicht Engine + + Copyright (C) 2019 Javier Sancho + + This file is part of c-irrlicht. + + c-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. + + c-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 "ICursorControl.h" + +extern "C" { + void + irr_gui_setVisibleCursor(irr_gui_ICursorControl* cursorControl, + int visible) + { + ((irr::gui::ICursorControl*)cursorControl) + ->setVisible(visible); + } + +} diff --git a/src/IrrlichtDevice.cpp b/src/IrrlichtDevice.cpp index 98c4afb..ff416ce 100644 --- a/src/IrrlichtDevice.cpp +++ b/src/IrrlichtDevice.cpp @@ -24,6 +24,12 @@ #include "IrrlichtDevice.h" extern "C" { + irr_gui_ICursorControl* + irr_getCursorControl(irr_IrrlichtDevice* device) + { + return ((irr::IrrlichtDevice*)device)->getCursorControl(); + } + irr_io_IFileSystem* irr_getFileSystem(irr_IrrlichtDevice* device) { -- 2.39.5