message: Refactor to extract integer `startPoint`
diff: @@ -104,7 +104,8 @@ void IconGrid::onMouseDown(EventHandler::MouseButton button, int x, int y)
  return;
  }
  - if (mIconItemList.empty() || !NAS2D::Rectangle{static_cast<int>(rect().x()), static_cast<int>(rect().y()), mGridSize.x() * (mIconSize + mIconMargin), mGridSize.y() * (mIconSize + mIconMargin)}.contains(NAS2D::Point{x, y}))
  + auto startPoint = mRect.startPoint().to<int>();
  + if (mIconItemList.empty() || !NAS2D::Rectangle{startPoint.x(), startPoint.y(), mGridSize.x() * (mIconSize + mIconMargin), mGridSize.y() * (mIconSize + mIconMargin)}.contains(NAS2D::Point{x, y}))
  {
  return;
  }
  @@ -133,14 +134,15 @@ void IconGrid::onMouseMotion(int x, int y, int /*dX*/, int /*dY*/)
  {
  if (!visible() || !hasFocus()) { return; }
  - if (mIconItemList.empty() || !NAS2D::Rectangle{static_cast<int>(rect().x()), static_cast<int>(rect().y()), mGridSize.x() * (mIconSize + mIconMargin), mGridSize.y() * (mIconSize + mIconMargin)}.contains(NAS2D::Point{x, y}))
  + auto startPoint = mRect.startPoint().to<int>();
  + if (mIconItemList.empty() || !NAS2D::Rectangle{startPoint.x(), startPoint.y(), mGridSize.x() * (mIconSize + mIconMargin), mGridSize.y() * (mIconSize + mIconMargin)}.contains(NAS2D::Point{x, y}))
  {
  mHighlightIndex = constants::NO_SELECTION;
  return;
  }
  // Assumes all coordinates are not negative.
  - mHighlightIndex = translateCoordsToIndex(x - static_cast<int>(rect().x()), y - static_cast<int>(rect().y()));
  + mHighlightIndex = translateCoordsToIndex(x - startPoint.x(), y - startPoint.y());
  if (static_cast<size_t>(mHighlightIndex) >= mIconItemList.size())
  {
  