D:/Programming/GUI Editor (Source)/EventHandler.cpp
00001 #include "StdAfx.h"
00002 #include "EventHandler.h"
00003
00004 CEventHandler::CEventHandler()
00005 {
00006 m_uiMessageCount = MAX_MESSAGES;
00007 m_pMessages = NULL;
00008 m_uiLastUnusedMessage = 0;
00009 }
00010
00011 CEventHandler::CEventHandler(UINT MaxMessages)
00012 {
00013 m_uiMessageCount = MaxMessages;
00014 m_pMessages = NULL;
00015 m_uiLastUnusedMessage = 0;
00016 }
00017
00018 CEventHandler::~CEventHandler()
00019 {
00020 Destroy();
00021 }
00022
00023 int CEventHandler::PostMessage(UINT uiMessage, DWORD lParam, DWORD wParam, UINT uiTimeoutMs)
00024 {
00025 tMessage *NewMessage = NULL;
00026 UINT NewUnusedMessage = 0;
00027
00028
00029 for (UINT i=0; i<m_uiMessageCount; i++)
00030 {
00031 if(m_pMessages[i].bUsed == false && NewMessage != NULL)
00032 {
00033 m_uiLastUnusedMessage = i;
00034 break;
00035 }
00036
00037 if(m_pMessages[i].bUsed == false && NewMessage == NULL)
00038 NewMessage = &m_pMessages[i];
00039 }
00040
00041 if(NewMessage !=NULL)
00042 {
00043
00044 NewMessage->uiMessage = uiMessage;
00045 NewMessage->dwTimeout = uiTimeoutMs;
00046 NewMessage->dwCreateTime = m_Timer.GetAbsoluteTime();
00047 NewMessage->dwParam[0] = lParam;
00048 NewMessage->dwParam[1] = wParam;
00049 NewMessage->bUsed = true;
00050
00051 return 1;
00052 }
00053
00054 return 0;
00055 }
00056
00057 void CEventHandler::Dispatch(bool bOnce)
00058 {
00059
00060 }
00061
00062 tMessage *CEventHandler::GetMessage(UINT uiIndex)
00063 {
00064 if(uiIndex >=0 && uiIndex < m_uiMessageCount)
00065 return &m_pMessages[uiIndex];
00066
00067 return NULL;
00068 }
00069
00070 UINT CEventHandler::GetMessageCount()
00071 {
00072 return m_uiMessageCount;
00073 }
00074
00075 void CEventHandler::Flush()
00076 {
00077 for (int i=0; i<m_uiMessageCount; i++)
00078 m_pMessages[i].bUsed = false;
00079 }
00080
00081 void CEventHandler::Destroy()
00082 {
00083 SAFEDEL_ARRAY(m_pMessages)
00084 }
Generated on Sun Jul 17 21:34:26 2005 for OpenGL GUI by
1.3.8