1 /* 2 Copyright (C) 2017-2018 the Battle for Wesnoth Project https://www.wesnoth.org/ 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 8 This program is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY. 10 11 See the COPYING file for more details. 12 */ 13 14 #pragma once 15 16 #include <SDL2/SDL_events.h> 17 18 #include <cstring> 19 20 namespace sdl 21 { 22 23 class UserEvent 24 { 25 public: UserEvent()26 UserEvent() 27 { 28 std::memset(&event_, 0, sizeof(event_)); 29 } 30 UserEvent(int type)31 UserEvent(int type) : UserEvent() 32 { 33 event_.type = type; 34 } 35 UserEvent(int type,int code)36 UserEvent(int type, int code) : UserEvent(type) 37 { 38 event_.code = code; 39 } 40 UserEvent(int type,int code,std::size_t data1,std::size_t data2)41 UserEvent(int type, int code, std::size_t data1, std::size_t data2) : UserEvent(type) 42 { 43 event_.code = code; 44 event_.data1 = reinterpret_cast<void*>(data1); 45 event_.data2 = reinterpret_cast<void*>(data2); 46 } 47 UserEvent(int type,void * data1)48 UserEvent(int type, void* data1) : UserEvent(type) 49 { 50 event_.data1 = data1; 51 } 52 operator SDL_UserEvent()53 operator SDL_UserEvent() 54 { 55 return event_; 56 } 57 58 private: 59 SDL_UserEvent event_; 60 }; 61 62 } 63