blob: 76664e19f5331e42fde98d4f106a3d631e61720f [file] [log] [blame]
The Android Open Source Project52d4c302009-03-03 19:29:09 -08001//
2// Copyright 2005 The Android Open Source Project
3//
4// A "user event" for wxWidgets.
5//
6#ifndef _SIM_USER_EVENT_H
7#define _SIM_USER_EVENT_H
8
9/*
10 * Event declaration. The book says to use DECLARE_EVENT_TYPE, but that
11 * causes a compiler warning and a link failure with gcc under MinGW.
12 *
13 * It looks like the "magic number", in this case 12345, is just picked
14 * by hand. There may be a better mechanism in this version of
15 * wxWidgets, but the documentation and sample code doesn't reflect it.
16 */
17BEGIN_DECLARE_EVENT_TYPES()
18 DECLARE_LOCAL_EVENT_TYPE(wxEVT_USER_EVENT, 12345)
19END_DECLARE_EVENT_TYPES()
20
21/*
22 * A "user event" class. This can be used like any other wxWidgets
23 * event, but we get to stuff anything we want to in it.
24 */
25class UserEvent : public wxEvent {
26public:
27 UserEvent(int id = 0, void* data = (void*) 0)
28 : wxEvent(id, wxEVT_USER_EVENT), mData(data)
29 {}
30 UserEvent(const UserEvent& event)
31 : wxEvent(event), mData(event.mData)
32 {}
33
34 virtual wxEvent* Clone() const {
35 return new UserEvent(*this);
36 }
37
38 void* GetData(void) const { return mData; }
39
40 DECLARE_DYNAMIC_CLASS(UserEvent);
41
42private:
43 UserEvent& operator=(const UserEvent&); // not implemented
44 void* mData;
45};
46
47typedef void (wxEvtHandler::*UserEventFunction)(UserEvent&);
48
49#define EVT_USER_EVENT(fn) \
50 DECLARE_EVENT_TABLE_ENTRY(wxEVT_USER_EVENT, wxID_ANY, wxID_ANY, \
51 (wxObjectEventFunction)(wxEventFunction)(UserEventFunction)&fn, \
52 (wxObject*) NULL ),
53
54#endif // _SIM_USER_EVENT_H