// // Copyright 2005 The Android Open Source Project // // A "user event" for wxWidgets. // #ifndef _SIM_USER_EVENT_H #define _SIM_USER_EVENT_H /* * Event declaration. The book says to use DECLARE_EVENT_TYPE, but that * causes a compiler warning and a link failure with gcc under MinGW. * * It looks like the "magic number", in this case 12345, is just picked * by hand. There may be a better mechanism in this version of * wxWidgets, but the documentation and sample code doesn't reflect it. */ BEGIN_DECLARE_EVENT_TYPES() DECLARE_LOCAL_EVENT_TYPE(wxEVT_USER_EVENT, 12345) END_DECLARE_EVENT_TYPES() /* * A "user event" class. This can be used like any other wxWidgets * event, but we get to stuff anything we want to in it. */ class UserEvent : public wxEvent { public: UserEvent(int id = 0, void* data = (void*) 0) : wxEvent(id, wxEVT_USER_EVENT), mData(data) {} UserEvent(const UserEvent& event) : wxEvent(event), mData(event.mData) {} virtual wxEvent* Clone() const { return new UserEvent(*this); } void* GetData(void) const { return mData; } DECLARE_DYNAMIC_CLASS(UserEvent); private: UserEvent& operator=(const UserEvent&); // not implemented void* mData; }; typedef void (wxEvtHandler::*UserEventFunction)(UserEvent&); #define EVT_USER_EVENT(fn) \ DECLARE_EVENT_TABLE_ENTRY(wxEVT_USER_EVENT, wxID_ANY, wxID_ANY, \ (wxObjectEventFunction)(wxEventFunction)(UserEventFunction)&fn, \ (wxObject*) NULL ), #endif // _SIM_USER_EVENT_H