void duLEDTimer::OnTimer(UINT nEventId) { if (nEventId != m_nTimerID) return; if (!Plugin_IsVisible(this)) return; TCHAR szTime[MAX_NAME]; ZeroMemory(szTime, MAX_NAME *sizeof(TCHAR)); _tstrtime(szTime); SetText(szTime); Plugin_Redraw(this, TRUE); }
LRESULT WINAPI duAnimation::OnWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (!Plugin_IsVisible(this)) return 0; if (uMsg == WM_ANIMATION_TIMER) { if ((duAnimation *)wParam == this) { Plugin_Redraw(this, TRUE); } } return 0; }
void WINAPI duListBox::OnMouseMove(POINT pt) { duRect rcListBox; Plugin_GetRect(this, &rcListBox); pt.x -= rcListBox.left; pt.y -= rcListBox.top; duPlugin *pScroll = GetPluginByName(m_szVertScroll); duRect rcItem; rcItem.SetRectEmpty(); if(pScroll != NULL && Plugin_IsVisible(pScroll)) rcItem.right = rcListBox.Width() - pScroll->GetPosWidth(); else rcItem.right = rcListBox.Width(); rcItem.OffsetRect(0, -m_nYOffset); int i; int nItemCount = GetItemCount(); ListBoxItem *pItem = NULL; for (i = 0;i < nItemCount; i++) { rcItem.top = rcItem.bottom; rcItem.bottom = rcItem.top + m_nItemHeight; pItem = m_vtItem[i]; if (rcItem.PtInRect(pt) && m_pHotItem != pItem) { if (pItem->fDisable) { m_pHotItem = NULL; Plugin_Redraw(this, TRUE); } else { m_pHotItem = pItem; if (m_pHotItem != m_pSelItem) FadeRedraw(); } break; } } }
void duGifCtrl::OnTimer(UINT nEventId) { if (nEventId != m_nTimerId) return; if (!Plugin_IsVisible(this)) return; Plugin_KillTimer(this, m_nTimerId); duImage *pImage = (duImage *)GetResObj(m_szGifName, DU_RES_IMAGE); if (pImage == NULL) return; int nFrameCount = pImage->GetFrameCount(); if (nFrameCount <= 1) return; int nFrameDelay = pImage->GetFrameDelay(m_nCurFrame); Plugin_SetTimer(this, m_nTimerId, nFrameDelay); Plugin_Redraw(this, TRUE); m_nCurFrame = (m_nCurFrame + 1) % nFrameCount; }
LRESULT WINAPI duListCtrl::OnWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (!Plugin_IsVisible(this)) { m_fDispMouseWheel = FALSE; return 0; } if (uMsg == WM_LBUTTONDOWN) { POINT pointClient; pointClient.x = GET_X_LPARAM(lParam); pointClient.y = GET_Y_LPARAM(lParam); duRect rcListCtrl; GetRect(&rcListCtrl); if (!rcListCtrl.PtInRect(pointClient)) { m_fDispMouseWheel = FALSE; return 0; } m_fDispMouseWheel = TRUE; //pointClient.Offset(-rcListCtrl.left, -rcListCtrl.top); duScroll *pVertScroll = (duScroll *)GetPluginByName(m_szVertScroll); if (pVertScroll && pVertScroll->IsVisible()) { duRect rcVertScroll; pVertScroll->GetRect(&rcVertScroll); if (rcVertScroll.PtInRect(pointClient)) { m_fDispMouseWheel = FALSE; return 0; } } duScroll *pHorzScroll = (duScroll *)GetPluginByName(m_szHorzScroll); if (pHorzScroll && pHorzScroll->IsVisible()) { duRect rcHorzScroll; pHorzScroll->GetRect(&rcHorzScroll); if (rcHorzScroll.PtInRect(pointClient)) { m_fDispMouseWheel = FALSE; return 0; } } int nHeight = rcListCtrl.Height(); int i; int nLineCount = GetLineCount(); for (i = m_nFirstLine;i < nLineCount; i++) { duPlugin *pTemp = m_vtLines[i]; if (pTemp) { duRect rc; pTemp->GetRect(&rc); if (rc.PtInRect(pointClient)) { if (m_pSel != pTemp) { if (Plugin_IsValid(m_pSel)) { m_pSel->SetState(DU_STATE_NORMAL); Plugin_Redraw(m_pSel, TRUE); } pTemp->SetState(DU_STATE_PRESS); m_pSel = pTemp; Plugin_Redraw(pTemp, TRUE); } break; } if (rc.top >= rcListCtrl.bottom) break; } } } else if (uMsg == WM_MOUSEWHEEL) { POINT pt; pt.x = GET_X_LPARAM(lParam); pt.y = GET_Y_LPARAM(lParam); UINT fwKeys = (UINT)(short)LOWORD(wParam); int zDelta = (int)(short)HIWORD(wParam); duScroll *pVertScrollBar = (duScroll *)GetPluginByName(m_szVertScroll); if (Plugin_IsValid(pVertScrollBar) && pVertScrollBar->IsVisible() && m_fDispMouseWheel) pVertScrollBar->OnMouseWheel(fwKeys, zDelta, pt); } else if (uMsg == WM_MOUSEMOVE) { POINT pointClient; pointClient.x = GET_X_LPARAM(lParam); pointClient.y = GET_Y_LPARAM(lParam); duRect rcListCtrl; GetRect(&rcListCtrl); if (!rcListCtrl.PtInRect(pointClient)) { if (Plugin_IsValid(m_pHot)) { if (m_pHot != m_pSel) { m_pHot->SetState(DU_STATE_NORMAL); Plugin_Redraw(m_pHot, TRUE); m_pHot = NULL; } } return 0; } duScroll *pVertScroll = (duScroll *)GetPluginByName(m_szVertScroll); if (pVertScroll && pVertScroll->IsVisible()) { duRect rcVertScroll; pVertScroll->GetRect(&rcVertScroll); if (rcVertScroll.PtInRect(pointClient)) { if (Plugin_IsValid(m_pHot)) { if (m_pHot != m_pSel) { m_pHot->SetState(DU_STATE_NORMAL); Plugin_Redraw(m_pHot, TRUE); m_pHot = NULL; } } return 0; } } duScroll *pHorzScroll = (duScroll *)GetPluginByName(m_szHorzScroll); if (pHorzScroll && pHorzScroll->IsVisible()) { duRect rcHorzScroll; pHorzScroll->GetRect(&rcHorzScroll); if (rcHorzScroll.PtInRect(pointClient)) { if (Plugin_IsValid(m_pHot)) { if (m_pHot != m_pSel) { m_pHot->SetState(DU_STATE_NORMAL); Plugin_Redraw(m_pHot, TRUE); m_pHot = NULL; } } return 0; } } BOOL fNeedRedraw = FALSE; BOOL fMouseIn = FALSE; int nHeight = rcListCtrl.Height(); int i; int nLineCount = GetLineCount(); for (i = m_nFirstLine;i < nLineCount; i++) { duPlugin *pTemp = m_vtLines[i]; if (pTemp) { duRect rc; pTemp->GetRect(&rc); if (rc.PtInRect(pointClient)) { fMouseIn = TRUE; if (pTemp == m_pSel) { if (Plugin_IsValid(m_pHot)) { if (m_pHot == m_pSel) break; m_pHot->SetState(DU_STATE_NORMAL); m_pHot = NULL; fNeedRedraw = TRUE; } m_pHot = NULL; } else { if (m_pHot != pTemp) { if (Plugin_IsValid(m_pHot)) { if (m_pHot != m_pSel) { m_pHot->SetState(DU_STATE_NORMAL); m_pHot = NULL; fNeedRedraw = TRUE; } } pTemp->SetState(DU_STATE_OVER); m_pHot = pTemp; fNeedRedraw = TRUE; } } break; } if (rc.top >= rcListCtrl.bottom) break; } } if (!fMouseIn) { if (Plugin_IsValid(m_pHot)) { if (m_pHot != m_pSel) { m_pHot->SetState(DU_STATE_NORMAL); m_pHot = NULL; fNeedRedraw = TRUE; } } } if (fNeedRedraw) Plugin_Redraw(this, TRUE); } return 0; }