Main Page | Class Hierarchy | Class List | File List | Class Members | Related Pages

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 doxygen 1.3.8