#include "stdafx.h" #include "CEventLog.h" #include "CConfig.h" #include "CAppletManager.h" //************************************************************************ // constructor //************************************************************************ CEventLog::CEventLog() { m_dwLastScroll = 0; } //************************************************************************ // destructor //************************************************************************ CEventLog::~CEventLog() { } //************************************************************************ // deinitializes the list //************************************************************************ bool CEventLog::Shutdown() { if(!CLCDList::Shutdown()) return false; return true; } //************************************************************************ // initializes the list //************************************************************************ bool CEventLog::Initialize() { if(!CLCDList::Initialize()) return false; return true; } //************************************************************************ // Called to set the objects font //************************************************************************ bool CEventLog::SetFont(LOGFONT &lf) { if(!CLCDList::SetFont(lf)) return false; SetEntryHeight(m_iFontHeight<6?6:m_iFontHeight); return true; } //************************************************************************ // adds an entry to the list //************************************************************************ CListItem *CEventLog::AddItem(CEventLogEntry *pEntry) { CListItem *pItem = CLCDList::AddItem(pEntry); if(GetEntryCount() > CConfig::GetIntSetting(NOTIFY_LOGSIZE)) RemoveItem(((CListItem*)GetFirstEntry())->GetItemData()); if(GetTickCount() - m_dwLastScroll > 10000) SetPosition(pItem); return pItem; } //************************************************************************ // Called to delete the specified entry //************************************************************************ void CEventLog::DeleteEntry(CEventLogEntry *pEntry) { delete pEntry; } //************************************************************************ // Called to draw the specified entry //************************************************************************ void CEventLog::DrawEntry(CLCDGfx *pGfx,CEventLogEntry *pEntry,bool bSelected) { SelectObject(pGfx->GetHDC(),m_hFont); bool bLargeIcons = GetEntryHeight() > 8; int iOffset = (m_iFontHeight-(bLargeIcons?8:6))/2; HBITMAP hBitmap = CAppletManager::GetInstance()->GetEventBitmap(pEntry->eType,bLargeIcons); pGfx->DrawBitmap(0,iOffset<0?0:iOffset,bLargeIcons?8:6,bLargeIcons?8:6,hBitmap); iOffset = bLargeIcons?10:7; if(CConfig::GetBoolSetting(NOTIFY_TIMESTAMPS)) pGfx->DrawText(iOffset,0,pGfx->GetClipWidth()-iOffset,pEntry->strTimestamp + pEntry->strValue); else pGfx->DrawText(iOffset,0,pGfx->GetClipWidth()-iOffset,pEntry->strValue); if(bSelected && GetTickCount() - m_dwLastScroll < 1000) { RECT invert = { 0,0,GetWidth(),m_iFontHeight}; InvertRect(pGfx->GetHDC(),&invert); } } void CEventLog::SetPosition(CListEntry *pEntry) { CLCDList::SetPosition(pEntry); } bool CEventLog::ScrollUp() { m_dwLastScroll = GetTickCount(); return CLCDList::ScrollUp(); } bool CEventLog::ScrollDown() { m_dwLastScroll = GetTickCount(); return CLCDList::ScrollDown(); }