00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "CEvent.h"
00020 #include "CEventQueue.h"
00021
00022
00023
00024
00025
00026 CEvent::CEvent() :
00027 m_type(kUnknown),
00028 m_target(NULL),
00029 m_data(NULL),
00030 m_flags(0),
00031 m_dataObject(nullptr)
00032 {
00033
00034 }
00035
00036 CEvent::CEvent(Type type, void* target, void* data, Flags flags) :
00037 m_type(type),
00038 m_target(target),
00039 m_data(data),
00040 m_flags(flags),
00041 m_dataObject(nullptr)
00042 {
00043
00044 }
00045
00046 CEvent::Type
00047 CEvent::getType() const
00048 {
00049 return m_type;
00050 }
00051
00052 void*
00053 CEvent::getTarget() const
00054 {
00055 return m_target;
00056 }
00057
00058 void*
00059 CEvent::getData() const
00060 {
00061 return m_data;
00062 }
00063
00064 CEventData*
00065 CEvent::getDataObject() const
00066 {
00067 return m_dataObject;
00068 }
00069
00070 CEvent::Flags
00071 CEvent::getFlags() const
00072 {
00073 return m_flags;
00074 }
00075
00076 void
00077 CEvent::deleteData(const CEvent& event)
00078 {
00079 switch (event.getType()) {
00080 case kUnknown:
00081 case kQuit:
00082 case kSystem:
00083 case kTimer:
00084 break;
00085
00086 default:
00087 if ((event.getFlags() & kDontFreeData) == 0) {
00088 free(event.getData());
00089 delete event.getDataObject();
00090 }
00091 break;
00092 }
00093 }
00094
00095 void
00096 CEvent::setDataObject(CEventData* dataObject)
00097 {
00098 assert(m_dataObject == nullptr);
00099 m_dataObject = dataObject;
00100 }