55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
//
|
|
// 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
|