void CFadeButtonUI::DoEvent(TEventUI& event) { if( event.Type == UIEVENT_MOUSEENTER && !IsAnimationRunning( FADE_IN_ID ) ) { m_bFadeAlpha = 0; m_bMouseHove = TRUE; StopAnimation( FADE_OUT_ID ); StartAnimation( FADE_ELLAPSE, FADE_FRAME_COUNT, FADE_IN_ID ); Invalidate(); return; } if( event.Type == UIEVENT_MOUSELEAVE && !IsAnimationRunning( FADE_OUT_ID ) ) { m_bFadeAlpha = 0; m_bMouseLeave = TRUE; StopAnimation(FADE_IN_ID); StartAnimation(FADE_ELLAPSE, FADE_FRAME_COUNT, FADE_OUT_ID); Invalidate(); return; } if( event.Type == UIEVENT_TIMER ) { OnTimer( event.wParam ); } CButtonUI::DoEvent( event ); }
void CFadeAnimation::PaintAnimationStatusImage(HDC hDC,LPCTSTR lpszNormalImage,LPCTSTR lpszHotImage,UINT nState) { ASSERT(hDC); ASSERT(lpszNormalImage); if(!lpszNormalImage || !m_pControl) return; if( IsAnimationing()) { // if( m_bMouseHove ) // { // m_bMouseHove = FALSE; // //m_sLastImage = lpszHotImage; // m_pControl->DrawImage(hDC, (LPCTSTR)lpszNormalImage); // return; // } // // if( m_bMouseLeave ) // { // m_bMouseLeave = FALSE; // //m_sLastImage = lpszNormalImage; // m_pControl->DrawImage(hDC, (LPCTSTR)lpszHotImage); // return; // } LPCTSTR pOldImage = lpszNormalImage; LPCTSTR pNewImage = lpszHotImage; // m_sOldImage = lpszNormalImage; // m_sNewImage = lpszHotImage; if( IsAnimationRunning(FADE_OUT_ID) ) { // m_sOldImage = lpszHotImage; // m_sNewImage = lpszNormalImage; pOldImage = lpszHotImage; pNewImage = lpszNormalImage; } m_pControl->DrawImage(hDC, pOldImage, NULL, true, 255 - m_bFadeAlpha ); m_pControl->DrawImage(hDC, pNewImage, NULL, true, m_bFadeAlpha ); } else { if(0 != (nState&UISTATE_HOT)) m_pControl->DrawImage(hDC,lpszHotImage); else m_pControl->DrawImage(hDC,lpszNormalImage); // if(m_sLastImage.IsEmpty()) // m_sLastImage = lpszNormalImage; // m_pControl->DrawImage(hDC, (LPCTSTR)m_sLastImage); } }
BOOL CFadeAnimation::EnterFadeOut() { if (!IsAnimationRunning( FADE_OUT_ID )) { StopAnimation(FADE_IN_ID); m_bFadeAlpha = 0; m_bMouseLeave = TRUE; StartAnimation(FADE_ELAPSE, FADE_FRAME_COUNT, FADE_OUT_ID); UpdateAnimation(); return TRUE; } return FALSE; }
void CFadeButtonUI::PaintStatusImage(HDC hDC) { if( IsFocused() ) m_uButtonState |= UISTATE_FOCUSED; else m_uButtonState &= ~ UISTATE_FOCUSED; if( !IsEnabled() ) m_uButtonState |= UISTATE_DISABLED; else m_uButtonState &= ~ UISTATE_DISABLED; if( (m_uButtonState & UISTATE_DISABLED) != 0 ) { if( !m_sDisabledImage.IsEmpty() ) { if( !DrawImage(hDC, (LPCTSTR)m_sDisabledImage) ) m_sDisabledImage.Empty(); else return; } } else if( (m_uButtonState & UISTATE_PUSHED) != 0 ) { if( !m_sPushedImage.IsEmpty() ) { if( !DrawImage(hDC, (LPCTSTR)m_sPushedImage) ) m_sPushedImage.Empty(); else return; } } else if( (m_uButtonState & UISTATE_FOCUSED) != 0 ) { if( !m_sFocusedImage.IsEmpty() ) { if( !DrawImage(hDC, (LPCTSTR)m_sFocusedImage) ) m_sFocusedImage.Empty(); else return; } } if( !m_sNormalImage.IsEmpty() ) { if( IsAnimationRunning(FADE_IN_ID) || IsAnimationRunning(FADE_OUT_ID)) { if( m_bMouseHove ) { m_bMouseHove = FALSE; m_sLastImage = m_sHotImage; if( !DrawImage(hDC, (LPCTSTR)m_sNormalImage) ) m_sNormalImage.Empty(); return; } if( m_bMouseLeave ) { m_bMouseLeave = FALSE; m_sLastImage = m_sNormalImage; if( !DrawImage(hDC, (LPCTSTR)m_sHotImage) ) m_sHotImage.Empty(); return; } m_sOldImage = m_sNormalImage; m_sNewImage = m_sHotImage; if( IsAnimationRunning(FADE_OUT_ID) ) { m_sOldImage = m_sHotImage; m_sNewImage = m_sNormalImage; } if( !DrawImage(hDC, (LPCTSTR)m_sOldImage, NULL, true, 255 - m_bFadeAlpha ) ) m_sOldImage.Empty(); if( !DrawImage(hDC, (LPCTSTR)m_sNewImage, NULL, true, m_bFadeAlpha ) ) m_sNewImage.Empty(); return; } else { if( !DrawImage(hDC, (LPCTSTR)m_sLastImage) ) m_sLastImage.Empty(); return; } } }
BOOL CAnimControlUI::IsRunning() const { return IsAnimationRunning(ANIMATION_ID); }
BOOL CFadeAnimation::IsAnimationing() const { return (IsAnimationRunning(FADE_IN_ID) || IsAnimationRunning(FADE_OUT_ID)); }