void hdSelectAreaTool::mouseUp(hdMouseEvent &event) { hdAbstractTool::mouseUp(event); hdGeometry g; //hack-fix for bug when selecting figures from right to left if(event.LeftUp()) { if( selectionRect.width < 0 ) { int tmp; tmp = selectionRect.width; selectionRect.x += tmp; selectionRect.width = g.ddabs(tmp); } if( selectionRect.height < 0 ) { int tmp; tmp = selectionRect.height; selectionRect.y += tmp; selectionRect.height = g.ddabs(tmp); } //end hack-fix drawSelectionRect(event.getView()); selectFiguresOnRect(event.ShiftDown(), event.getView()); event.getView()->disableSelRectDraw(); } }
void hdSelectAreaTool::mouseDown(hdMouseEvent &event) { hdAbstractTool::mouseDown(event); if(!event.ShiftDown()) { event.getView()->getDrawing()->clearSelection(); } if(event.LeftDown()) { int x = event.GetPosition().x, y = event.GetPosition().y; selectionRect.x = x; selectionRect.y = y; selectionRect.width = 0; selectionRect.height = 0; drawSelectionRect(event.getView()); } }