LRESULT CAnimMixer::OnFrameChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { if (m_flags & 8) // follow mode { RECT rc; sInt mapped = mapTime(m_curFrame); GetClientRect(&rc); if (mapped >= rc.right * 7 / 8) // need to scroll right processScroll(mapped - rc.right / 8, sTRUE); else if (mapped < 0) // need to scroll left processScroll(mapped - rc.right * 7 / 8, sTRUE); } m_curFrame = lParam; drawBar(); return 0; }
LRESULT CAnimMixer::OnRuleMouseInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { sInt buttons, dx, dy; ruleMousePoll(buttons, dx, dy); m_ruleMouseCoord.x += dx; m_ruleMouseCoord.y += dy; if (m_mbDown) processScroll(m_ruleMouseCoord.x); return 0; }
LRESULT CAnimMixer::OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { CPoint ptCursor(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); if (::GetCapture() != m_hWnd) { m_oldFocusWin = ::GetFocus(); SetCapture(); SetFocus(); m_useRuleMouse = ruleMouseSetTarget(m_hWnd); sInt buttons, dx, dy; ruleMousePoll(buttons, dx, dy); // to clear accumulated deltas m_ruleMouseCoord = ptCursor; } else { CRect rc; GetClientRect(&rc); rc.top += 40; if (!::PtInRect(&rc, ptCursor) && !m_lbDown && !m_mbDown) { ::ReleaseCapture(); ::SetFocus(m_oldFocusWin); if (ruleMouseGetTarget() == (void *) m_hWnd) ruleMouseSetTarget(0); } } if (m_lbDown) // Move processMove(ptCursor.x, ptCursor.y); if (m_mbDown && !m_useRuleMouse) // Scroll processScroll(ptCursor.x); return 0; }
void Camera::update(bool keys[1024], glm::vec2 mouse, glm::vec2 scroll, GLfloat deltaTime) { processKeyboard(keys, deltaTime); processMouse(mouse); processScroll(scroll); }