///////////////////////////////////////////////////////////////////////////// // Name: gameevent.h // tag: a convenient game event for passing messages // Author: David Roundy // Modified by: // Created: 3/2002 // Copyright: (c) 2002 David Roundy // Licence: GPL /* This program 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 2 of the License, or (at your option) any later version. This program 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 this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ ///////////////////////////////////////////////////////////////////////////// #ifndef _GAMEEVENT_H_ #define _GAMEEVENT_H_ BEGIN_DECLARE_EVENT_TYPES() DECLARE_EVENT_TYPE(wxEVT_COMMAND_GAME, 4) END_DECLARE_EVENT_TYPES() class GameEvent : public wxCommandEvent { DECLARE_DYNAMIC_CLASS( GameEvent ) public: GameEvent( wxWindow* win = (wxWindow*) NULL, const wxString& type = "TEST", const wxString& message = "TEST"); #if wxCHECK_VERSION(2, 3, 0) wxEvent *Clone() const { return new GameEvent(*this); }; #else void CopyObject( wxObject& obj ) const; #endif const wxString GetType() { return m_type; }; const wxString GetMyMessage() { return m_message; }; private: wxString m_type, m_message; }; typedef void (wxEvtHandler::*GameEventFunction)(GameEvent&); #define EVT_GAME(fn) DECLARE_EVENT_TABLE_ENTRY( \ wxEVT_COMMAND_GAME, \ -1, \ -1, \ (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) \ (GameEventFunction) &fn, \ (wxObject *)NULL ), #endif