void AutoscrollController::updatePanScrollState(FrameView* view, const IntPoint& lastKnownMousePosition) { // At the original click location we draw a 4 arrowed icon. Over this icon there won't be any scroll // So we don't want to change the cursor over this area bool east = m_panScrollStartPos.x() < (lastKnownMousePosition.x() - noPanScrollRadius); bool west = m_panScrollStartPos.x() > (lastKnownMousePosition.x() + noPanScrollRadius); bool north = m_panScrollStartPos.y() > (lastKnownMousePosition.y() + noPanScrollRadius); bool south = m_panScrollStartPos.y() < (lastKnownMousePosition.y() - noPanScrollRadius); if (m_autoscrollType == AutoscrollForPan && (east || west || north || south)) m_autoscrollType = AutoscrollForPanCanStop; if (north) { if (east) view->setCursor(northEastPanningCursor()); else if (west) view->setCursor(northWestPanningCursor()); else view->setCursor(northPanningCursor()); } else if (south) { if (east) view->setCursor(southEastPanningCursor()); else if (west) view->setCursor(southWestPanningCursor()); else view->setCursor(southPanningCursor()); } else if (east) { view->setCursor(eastPanningCursor()); } else if (west) { view->setCursor(westPanningCursor()); } else { view->setCursor(middlePanningCursor()); } }
void AutoscrollController::updateMiddleClickAutoscrollState( FrameView* view, const IntPoint& lastKnownMousePosition) { DCHECK(RuntimeEnabledFeatures::middleClickAutoscrollEnabled()); // At the original click location we draw a 4 arrowed icon. Over this icon // there won't be any scroll, So don't change the cursor over this area. bool east = m_middleClickAutoscrollStartPos.x() < (lastKnownMousePosition.x() - noMiddleClickAutoscrollRadius); bool west = m_middleClickAutoscrollStartPos.x() > (lastKnownMousePosition.x() + noMiddleClickAutoscrollRadius); bool north = m_middleClickAutoscrollStartPos.y() > (lastKnownMousePosition.y() + noMiddleClickAutoscrollRadius); bool south = m_middleClickAutoscrollStartPos.y() < (lastKnownMousePosition.y() - noMiddleClickAutoscrollRadius); if (m_autoscrollType == AutoscrollForMiddleClick && (east || west || north || south)) m_autoscrollType = AutoscrollForMiddleClickCanStop; if (north) { if (east) view->setCursor(northEastPanningCursor()); else if (west) view->setCursor(northWestPanningCursor()); else view->setCursor(northPanningCursor()); } else if (south) { if (east) view->setCursor(southEastPanningCursor()); else if (west) view->setCursor(southWestPanningCursor()); else view->setCursor(southPanningCursor()); } else if (east) { view->setCursor(eastPanningCursor()); } else if (west) { view->setCursor(westPanningCursor()); } else { view->setCursor(middlePanningCursor()); } }
const Cursor& Cursor::fromType(Cursor::Type type) { switch (type) { case Cursor::Pointer: return pointerCursor(); case Cursor::Cross: return crossCursor(); case Cursor::Hand: return handCursor(); case Cursor::IBeam: return iBeamCursor(); case Cursor::Wait: return waitCursor(); case Cursor::Help: return helpCursor(); case Cursor::EastResize: return eastResizeCursor(); case Cursor::NorthResize: return northResizeCursor(); case Cursor::NorthEastResize: return northEastResizeCursor(); case Cursor::NorthWestResize: return northWestResizeCursor(); case Cursor::SouthResize: return southResizeCursor(); case Cursor::SouthEastResize: return southEastResizeCursor(); case Cursor::SouthWestResize: return southWestResizeCursor(); case Cursor::WestResize: return westResizeCursor(); case Cursor::NorthSouthResize: return northSouthResizeCursor(); case Cursor::EastWestResize: return eastWestResizeCursor(); case Cursor::NorthEastSouthWestResize: return northEastSouthWestResizeCursor(); case Cursor::NorthWestSouthEastResize: return northWestSouthEastResizeCursor(); case Cursor::ColumnResize: return columnResizeCursor(); case Cursor::RowResize: return rowResizeCursor(); case Cursor::MiddlePanning: return middlePanningCursor(); case Cursor::EastPanning: return eastPanningCursor(); case Cursor::NorthPanning: return northPanningCursor(); case Cursor::NorthEastPanning: return northEastPanningCursor(); case Cursor::NorthWestPanning: return northWestPanningCursor(); case Cursor::SouthPanning: return southPanningCursor(); case Cursor::SouthEastPanning: return southEastPanningCursor(); case Cursor::SouthWestPanning: return southWestPanningCursor(); case Cursor::WestPanning: return westPanningCursor(); case Cursor::Move: return moveCursor(); case Cursor::VerticalText: return verticalTextCursor(); case Cursor::Cell: return cellCursor(); case Cursor::ContextMenu: return contextMenuCursor(); case Cursor::Alias: return aliasCursor(); case Cursor::Progress: return progressCursor(); case Cursor::NoDrop: return noDropCursor(); case Cursor::Copy: return copyCursor(); case Cursor::None: return noneCursor(); case Cursor::NotAllowed: return notAllowedCursor(); case Cursor::ZoomIn: return zoomInCursor(); case Cursor::ZoomOut: return zoomOutCursor(); case Cursor::Grab: return grabCursor(); case Cursor::Grabbing: return grabbingCursor(); case Cursor::Custom: ASSERT_NOT_REACHED(); } return pointerCursor(); }