/************************************************************************* Handler for mouse move events *************************************************************************/ void FrameWindow::onMouseMove(MouseEventArgs& e) { // default processing (this is now essential as it controls event firing). Window::onMouseMove(e); // if we are not the window containing the mouse, do NOT change the cursor if (getGUIContext().getWindowContainingMouse() != this) { return; } if (isSizingEnabled()) { Vector2f localMousePos(CoordConverter::screenToWindow(*this, e.position)); if (d_beingSized) { SizingLocation dragEdge = getSizingBorderAtPoint(d_dragPoint); // calculate sizing deltas... float deltaX = localMousePos.d_x - d_dragPoint.d_x; float deltaY = localMousePos.d_y - d_dragPoint.d_y; URect new_area(d_area); bool top_left_sizing = false; // size left or right edges if (isLeftSizingLocation(dragEdge)) { top_left_sizing |= moveLeftEdge(deltaX, new_area); } else if (isRightSizingLocation(dragEdge)) { top_left_sizing |= moveRightEdge(deltaX, new_area); } // size top or bottom edges if (isTopSizingLocation(dragEdge)) { top_left_sizing |= moveTopEdge(deltaY, new_area); } else if (isBottomSizingLocation(dragEdge)) { top_left_sizing |= moveBottomEdge(deltaY, new_area); } setArea_impl(new_area.d_min, new_area.getSize(), top_left_sizing); } else { setCursorForPoint(localMousePos); } } // mark event as handled ++e.handled; }
/************************************************************************* Handler for mouse move events *************************************************************************/ void FrameWindow::onMouseMove(MouseEventArgs& e) { // default processing (this is now essential as it controls event firing). Window::onMouseMove(e); // if we are not the window containing the mouse, do NOT change the cursor if (System::getSingleton().getWindowContainingMouse() != this) { return; } if (isSizingEnabled()) { Point localMousePos(CoordConverter::screenToWindow(*this, e.position)); if (d_beingSized) { SizingLocation dragEdge = getSizingBorderAtPoint(d_dragPoint); // calculate sizing deltas... float deltaX = localMousePos.d_x - d_dragPoint.d_x; float deltaY = localMousePos.d_y - d_dragPoint.d_y; // size left or right edges if (isLeftSizingLocation(dragEdge)) { moveLeftEdge(deltaX); } else if (isRightSizingLocation(dragEdge)) { moveRightEdge(deltaX); } // size top or bottom edges if (isTopSizingLocation(dragEdge)) { moveTopEdge(deltaY); } else if (isBottomSizingLocation(dragEdge)) { moveBottomEdge(deltaY); } } else { setCursorForPoint(localMousePos); } } // mark event as handled e.handled = true; }