diff --git a/CMakeLists.txt b/CMakeLists.txt index c09e687..723c373 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -161,8 +161,6 @@ SET(LIBRARY_HEADERS SDL2pp/Window.hh SDL2pp/Private/EventDispatching.hh SDL2pp/Private/EventHandler.hh - SDL2pp/Private/EventHandlerFunctor.hh - SDL2pp/Private/EventHandlerObject.hh SDL2pp/Private/EventTypeFilters.hh SDL2pp/Private/Utility.hh ) diff --git a/SDL2pp/Private/EventHandler.hh b/SDL2pp/Private/EventHandler.hh index 9ca240d..fc673c7 100644 --- a/SDL2pp/Private/EventHandler.hh +++ b/SDL2pp/Private/EventHandler.hh @@ -22,10 +22,9 @@ #ifndef SDL2PP_PRIVATE_EVENTHANDLER_HH #define SDL2PP_PRIVATE_EVENTHANDLER_HH -#include -#include #include +#include #include #include @@ -66,6 +65,50 @@ namespace Private { SDL_WindowEvent >; + /* + * Templated class to identify a class that is not an event handler functor. + */ + template + struct IsEventHandlerFunctor : std::false_type { }; + + /* + * Templated class to identify a class that is an event handler functor, the + * way this is done is by verifying if the functor is assignable to the + * expected signature. + */ + template + struct IsEventHandlerFunctor< + EventHandlerType, + EventType, + typename std::enable_if< + std::is_convertible>::value + >::type + > : std::true_type { }; + + /* + * Templated class to identify a class that is not an event handler object. + */ + template + struct IsEventHandlerObject : std::false_type { }; + + /* + * Templated class to identify a class that is an event handler object, the + * way this is done is by verifying that an instance of EventHandlerType has + * the "HandleEvent" member function which received a "EventType" and + * returns void. + */ + template + struct IsEventHandlerObject< + EventHandlerType, + EventType, + typename std::enable_if< + std::is_same< + decltype(std::declval().HandleEvent(std::declval())), + void + >::value + >::type + > : std::true_type { }; + /* * Templated class to identify a class that is not an event handler. */ diff --git a/SDL2pp/Private/EventHandlerFunctor.hh b/SDL2pp/Private/EventHandlerFunctor.hh deleted file mode 100644 index e8daed9..0000000 --- a/SDL2pp/Private/EventHandlerFunctor.hh +++ /dev/null @@ -1,55 +0,0 @@ -/* - libSDL2pp - C++11 bindings/wrapper for SDL2 - Copyright (C) 2017 Vraiment - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL2PP_PRIVATE_EVENTHANDLERFUNCTOR_HH -#define SDL2PP_PRIVATE_EVENTHANDLERFUNCTOR_HH - -#include -#include - -namespace SDL2pp { -/* - * This is code not to be used directly by users of SDL2pp. - */ -namespace Private { - /* - * Templated class to identify a class that is not an event handler functor. - */ - template - struct IsEventHandlerFunctor : std::false_type { }; - - /* - * Templated class to identify a class that is an event handler functor, the - * way this is done is by verifying if the functor is assignable to the - * expected signature. - */ - template - struct IsEventHandlerFunctor< - EventHandlerType, - EventType, - typename std::enable_if< - std::is_convertible>::value - >::type - > : std::true_type { }; -} -} - -#endif diff --git a/SDL2pp/Private/EventHandlerObject.hh b/SDL2pp/Private/EventHandlerObject.hh deleted file mode 100644 index 2e55000..0000000 --- a/SDL2pp/Private/EventHandlerObject.hh +++ /dev/null @@ -1,58 +0,0 @@ -/* - libSDL2pp - C++11 bindings/wrapper for SDL2 - Copyright (C) 2017 Vraiment - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL2PP_PRIVATE_EVENTHANDLEROBJECT_HH -#define SDL2PP_PRIVATE_EVENTHANDLEROBJECT_HH - -#include - -namespace SDL2pp { -/* - * This is code not to be used directly by users of SDL2pp. - */ -namespace Private { - /* - * Templated class to identify a class that is not an event handler object. - */ - template - struct IsEventHandlerObject : std::false_type { }; - - /* - * Templated class to identify a class that is an event handler object, the - * way this is done is by verifying that an instance of EventHandlerType has - * the "HandleEvent" member function which received a "EventType" and - * returns void. - */ - template - struct IsEventHandlerObject< - EventHandlerType, - EventType, - typename std::enable_if< - std::is_same< - decltype(std::declval().HandleEvent(std::declval())), - void - >::value - >::type - > : std::true_type { }; -} -} - -#endif