diff --git a/build/wxExtendLib.vcxproj b/build/wxExtendLib.vcxproj index ec8a8a8..a3045ec 100644 --- a/build/wxExtendLib.vcxproj +++ b/build/wxExtendLib.vcxproj @@ -39,6 +39,7 @@ + diff --git a/build/wxExtendLib.vcxproj.filters b/build/wxExtendLib.vcxproj.filters index 3c471d8..7e7b484 100644 --- a/build/wxExtendLib.vcxproj.filters +++ b/build/wxExtendLib.vcxproj.filters @@ -81,6 +81,9 @@ Header Files + + Header Files + diff --git a/include/wxex/object.h b/include/wxex/object.h new file mode 100644 index 0000000..a37dbbb --- /dev/null +++ b/include/wxex/object.h @@ -0,0 +1,55 @@ +/* + Copyright 2015-2016 Amebis + + This file is part of wxExtend. + + wxExtend is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + wxExtend 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 General Public License + along with wxExtend. If not, see . +*/ + +#pragma once + +#include "common.h" + +#include + + +/// +/// Helper template for event user data +/// +template +class wxObjectWithData : public wxObject +{ +public: + /// + /// Default constructor + /// + inline wxObjectWithData() {} + + /// + /// Construct object with data + /// + /// \param[in] data Data to initialize object with + /// + inline wxObjectWithData(const T &data) : m_data(data) {} + + /// + /// Construct object with data + /// + /// \param[in] data Data to move to object + /// + inline wxObjectWithData(T &&data) : m_data(std::move(data)) {} + +public: + T m_data; ///< Data +}; diff --git a/src/stdafx.h b/src/stdafx.h index 18cfab5..97e48fd 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -27,6 +27,7 @@ #include "../include/wxex/comutils.h" #include "../include/wxex/crypto.h" #include "../include/wxex/hex.h" +#include "../include/wxex/object.h" #include "../include/wxex/url.h" #include "../include/wxex/valhex.h" #include "../include/wxex/xml.h"