Consistent behavior of the application.
- Add ShiftPtStack and BuildMaskFromPtStack
helper functions.
- Move some codes of selectionModel to
mouse.cpp.
CORE-19226
Refactoring and arrangement for selection handling.
- Move some selection-related codes in canvas.cpp to mouse.cpp.
- Add SelectionBaseTool structure for FreeSelTool and RectSelTool.
CORE-19094
Follow-up to #5994. Reduce the lag and the
cost of drawing on large image.
- Introduce partial image history on
SmoothDrawTool and ShapeTool.
- We can draw with pen smoothly even
when the image is huge (10000x10000).
CORE-19237
- Add IMAGE_PART structure and use as history items.
- Overload ImageModel::PushImageForUndo(const RECT& rcPartial).
- Add ToolsModel::GetToolSize.
- Implement partial image history on TwoPointDrawTool.
CORE-19094
- Convert icons/*_cur.ico to the cursor files (*.cur).
- The hot spot is (16, 16) (default).
- Rename icons/ folder as img/.
- Use LoadCursorW instead of LoadIconW
for cursors.
- Use CURSOR statements for cursor files
instead of ICON statements in rsrc.rc.
- I used GIMP to convert the icon files to the PNG files.
- I used RealWorld Cursor Editor to convert the PNG files to the cursor files.
CORE-19297
The Copy-To-File feature had some bugs that the user couldn't save.
- Modify SelectionModel::GetSelectionContents.
- Delete SelectionModel::CopyBitmap, SelectionModel::LockBitmap,
and SelectionModel::UnlockBitmap functions.
CORE-19186
Reduce code and binary size a bit. This will reduce 1024 bytes in binary.
Unify ToolBase::OnFinishDraw and ToolBase::OnCancelDraw to ToolBase::OnEndDraw.
CORE-19094
- Improve ImageModel::PushImageForUndo.
- Use FormatMessage in newly added
ShowOutOfMemory function.
- Call ShowOutOfMemory() when out of memory.
CORE-19227, CORE-19094
- Delete global zoomTo function.
- Add CCanvasWindow::zoomTo and
CCanvasWindow::getNewZoomRect functions.
- Rename CCanvasWindow::updateScrollInfo as
CCanvasWindow::updateScrollRange.
- Rename CCanvasWindow::resetScrollPos as
CCanvasWindow::updateScrollPos.
- Draw the proper zoom rectangle on mouse move.
- Revert the active tool on click when the tool
was Zoom.
CORE-19094
Drawing lines smoothly on big image.
- In CCanvasWindow::DoDraw, calculate the
intersection to reduce bits transfer.
- Improve SmoothDrawTool in handling Shift key.
CORE-19094, CORE-19237
In some situations, the scroll position should be reset.
- Add CCanvasWindow::resetScrollPos method.
- Reset the scroll position on loading a file.
- Reset the scroll position on mirroring/rotating
the image.
CORE-19094
- Delete CCanvasWindow::drawZoomFrame.
- Invalidate the canvas on mouse move when
the active tool is Zoom tool.
- Add ZoomTool::OnDrawOverlayOnCanvas to
draw the zoom rectangle without flickering.
- Improve the zoom trackbar position.
- Display the zoom rate on changing the value
of the zoom trackbar.
- Reverse the direction of the zoom trackbar.
- Don't draw the focus rectangle.
CORE-19215, CORE-19216