mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:52:57 +00:00
[MSPAINT] Commonize OnFinishDraw and OnCancelDraw (#5875)
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
This commit is contained in:
parent
32b883ef2f
commit
37f56d2448
5 changed files with 67 additions and 107 deletions
|
@ -357,13 +357,13 @@ LRESULT CCanvasWindow::OnButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOO
|
||||||
{
|
{
|
||||||
case TOOL_BEZIER:
|
case TOOL_BEZIER:
|
||||||
case TOOL_SHAPE:
|
case TOOL_SHAPE:
|
||||||
toolsModel.OnCancelDraw();
|
toolsModel.OnEndDraw(TRUE);
|
||||||
Invalidate();
|
Invalidate();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TOOL_FREESEL:
|
case TOOL_FREESEL:
|
||||||
case TOOL_RECTSEL:
|
case TOOL_RECTSEL:
|
||||||
toolsModel.OnFinishDraw();
|
toolsModel.OnEndDraw(FALSE);
|
||||||
Invalidate();
|
Invalidate();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -814,13 +814,13 @@ VOID CCanvasWindow::cancelDrawing()
|
||||||
selectionModel.ClearMaskImage();
|
selectionModel.ClearMaskImage();
|
||||||
m_hitSelection = HIT_NONE;
|
m_hitSelection = HIT_NONE;
|
||||||
m_drawing = FALSE;
|
m_drawing = FALSE;
|
||||||
toolsModel.OnCancelDraw();
|
toolsModel.OnEndDraw(TRUE);
|
||||||
Invalidate(FALSE);
|
Invalidate(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID CCanvasWindow::finishDrawing()
|
VOID CCanvasWindow::finishDrawing()
|
||||||
{
|
{
|
||||||
toolsModel.OnFinishDraw();
|
toolsModel.OnEndDraw(FALSE);
|
||||||
m_drawing = FALSE;
|
m_drawing = FALSE;
|
||||||
Invalidate(FALSE);
|
Invalidate(FALSE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,13 +62,7 @@ void ToolBase::reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolBase::OnCancelDraw()
|
void ToolBase::OnEndDraw(BOOL bCancel)
|
||||||
{
|
|
||||||
reset();
|
|
||||||
imageModel.NotifyImageChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ToolBase::OnFinishDraw()
|
|
||||||
{
|
{
|
||||||
reset();
|
reset();
|
||||||
imageModel.NotifyImageChanged();
|
imageModel.NotifyImageChanged();
|
||||||
|
@ -175,16 +169,13 @@ struct FreeSelTool : ToolBase
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnFinishDraw() override
|
void OnEndDraw(BOOL bCancel) override
|
||||||
{
|
{
|
||||||
selectionModel.Landing();
|
if (bCancel)
|
||||||
ToolBase::OnFinishDraw();
|
selectionModel.HideSelection();
|
||||||
}
|
else
|
||||||
|
selectionModel.Landing();
|
||||||
void OnCancelDraw() override
|
ToolBase::OnEndDraw(bCancel);
|
||||||
{
|
|
||||||
selectionModel.HideSelection();
|
|
||||||
ToolBase::OnCancelDraw();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnSpecialTweak(BOOL bMinus) override
|
void OnSpecialTweak(BOOL bMinus) override
|
||||||
|
@ -260,16 +251,13 @@ struct RectSelTool : ToolBase
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnFinishDraw() override
|
void OnEndDraw(BOOL bCancel) override
|
||||||
{
|
{
|
||||||
selectionModel.Landing();
|
if (bCancel)
|
||||||
ToolBase::OnFinishDraw();
|
selectionModel.HideSelection();
|
||||||
}
|
else
|
||||||
|
selectionModel.Landing();
|
||||||
void OnCancelDraw() override
|
ToolBase::OnEndDraw(bCancel);
|
||||||
{
|
|
||||||
selectionModel.HideSelection();
|
|
||||||
ToolBase::OnCancelDraw();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnSpecialTweak(BOOL bMinus) override
|
void OnSpecialTweak(BOOL bMinus) override
|
||||||
|
@ -309,16 +297,10 @@ struct TwoPointDrawTool : ToolBase
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnFinishDraw() override
|
void OnEndDraw(BOOL bCancel) override
|
||||||
{
|
{
|
||||||
m_bDrawing = FALSE;
|
m_bDrawing = FALSE;
|
||||||
ToolBase::OnFinishDraw();
|
ToolBase::OnEndDraw(bCancel);
|
||||||
}
|
|
||||||
|
|
||||||
void OnCancelDraw() override
|
|
||||||
{
|
|
||||||
m_bDrawing = FALSE;
|
|
||||||
ToolBase::OnCancelDraw();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnSpecialTweak(BOOL bMinus) override
|
void OnSpecialTweak(BOOL bMinus) override
|
||||||
|
@ -471,21 +453,19 @@ struct SmoothDrawTool : ToolBase
|
||||||
}
|
}
|
||||||
|
|
||||||
draw(bLeftButton, x, y);
|
draw(bLeftButton, x, y);
|
||||||
OnFinishDraw();
|
OnEndDraw(FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnFinishDraw() override
|
void OnEndDraw(BOOL bCancel) override
|
||||||
{
|
{
|
||||||
ToolBase::OnFinishDraw();
|
if (bCancel)
|
||||||
}
|
{
|
||||||
|
LONG x = 0, y = 0;
|
||||||
void OnCancelDraw() override
|
OnButtonUp(FALSE, x, y);
|
||||||
{
|
imageModel.Undo(TRUE);
|
||||||
LONG x = 0, y = 0;
|
}
|
||||||
OnButtonUp(FALSE, x, y);
|
ToolBase::OnEndDraw(bCancel);
|
||||||
imageModel.Undo(TRUE);
|
|
||||||
ToolBase::OnCancelDraw();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -799,22 +779,19 @@ struct TextTool : ToolBase
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnFinishDraw() override
|
void OnEndDraw(BOOL bCancel) override
|
||||||
{
|
{
|
||||||
if (::IsWindowVisible(textEditWindow) &&
|
if (!bCancel)
|
||||||
textEditWindow.GetWindowTextLength() > 0)
|
|
||||||
{
|
{
|
||||||
imageModel.PushImageForUndo();
|
if (::IsWindowVisible(textEditWindow) &&
|
||||||
draw(m_hdc);
|
textEditWindow.GetWindowTextLength() > 0)
|
||||||
|
{
|
||||||
|
imageModel.PushImageForUndo();
|
||||||
|
draw(m_hdc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
quit();
|
quit();
|
||||||
ToolBase::OnFinishDraw();
|
ToolBase::OnEndDraw(bCancel);
|
||||||
}
|
|
||||||
|
|
||||||
void OnCancelDraw() override
|
|
||||||
{
|
|
||||||
quit();
|
|
||||||
ToolBase::OnCancelDraw();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -902,25 +879,22 @@ struct BezierTool : ToolBase
|
||||||
s_pointStack[s_pointSP].y = y;
|
s_pointStack[s_pointSP].y = y;
|
||||||
if (s_pointSP >= 3)
|
if (s_pointSP >= 3)
|
||||||
{
|
{
|
||||||
OnFinishDraw();
|
OnEndDraw(FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
imageModel.NotifyImageChanged();
|
imageModel.NotifyImageChanged();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnCancelDraw() override
|
void OnEndDraw(BOOL bCancel) override
|
||||||
{
|
{
|
||||||
|
if (!bCancel)
|
||||||
|
{
|
||||||
|
imageModel.PushImageForUndo();
|
||||||
|
OnDrawOverlayOnImage(m_hdc);
|
||||||
|
}
|
||||||
m_bDrawing = FALSE;
|
m_bDrawing = FALSE;
|
||||||
ToolBase::OnCancelDraw();
|
ToolBase::OnEndDraw(bCancel);
|
||||||
}
|
|
||||||
|
|
||||||
void OnFinishDraw() override
|
|
||||||
{
|
|
||||||
imageModel.PushImageForUndo();
|
|
||||||
OnDrawOverlayOnImage(m_hdc);
|
|
||||||
m_bDrawing = FALSE;
|
|
||||||
ToolBase::OnFinishDraw();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnSpecialTweak(BOOL bMinus) override
|
void OnSpecialTweak(BOOL bMinus) override
|
||||||
|
@ -983,7 +957,7 @@ struct ShapeTool : ToolBase
|
||||||
|
|
||||||
if (s_pointSP && bDoubleClick)
|
if (s_pointSP && bDoubleClick)
|
||||||
{
|
{
|
||||||
OnFinishDraw();
|
OnEndDraw(FALSE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1017,7 +991,7 @@ struct ShapeTool : ToolBase
|
||||||
m_bClosed = FALSE;
|
m_bClosed = FALSE;
|
||||||
if (nearlyEqualPoints(x, y, s_pointStack[0].x, s_pointStack[0].y))
|
if (nearlyEqualPoints(x, y, s_pointStack[0].x, s_pointStack[0].y))
|
||||||
{
|
{
|
||||||
OnFinishDraw();
|
OnEndDraw(FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1034,26 +1008,22 @@ struct ShapeTool : ToolBase
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnCancelDraw() override
|
void OnEndDraw(BOOL bCancel) override
|
||||||
{
|
{
|
||||||
ToolBase::OnCancelDraw();
|
if (!bCancel)
|
||||||
}
|
|
||||||
|
|
||||||
void OnFinishDraw() override
|
|
||||||
{
|
|
||||||
if (s_pointSP)
|
|
||||||
{
|
{
|
||||||
--s_pointSP;
|
if (s_pointSP)
|
||||||
m_bClosed = TRUE;
|
{
|
||||||
|
--s_pointSP;
|
||||||
|
m_bClosed = TRUE;
|
||||||
|
|
||||||
imageModel.PushImageForUndo();
|
imageModel.PushImageForUndo();
|
||||||
OnDrawOverlayOnImage(m_hdc);
|
OnDrawOverlayOnImage(m_hdc);
|
||||||
|
}
|
||||||
|
m_bClosed = FALSE;
|
||||||
|
s_pointSP = 0;
|
||||||
}
|
}
|
||||||
|
ToolBase::OnEndDraw(bCancel);
|
||||||
m_bClosed = FALSE;
|
|
||||||
s_pointSP = 0;
|
|
||||||
|
|
||||||
ToolBase::OnFinishDraw();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnSpecialTweak(BOOL bMinus) override
|
void OnSpecialTweak(BOOL bMinus) override
|
||||||
|
|
|
@ -104,7 +104,7 @@ LRESULT CTextEditWindow::OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL
|
||||||
{
|
{
|
||||||
if (wParam == VK_ESCAPE)
|
if (wParam == VK_ESCAPE)
|
||||||
{
|
{
|
||||||
toolsModel.OnCancelDraw();
|
toolsModel.OnEndDraw(TRUE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,7 @@ TOOLTYPE ToolsModel::GetOldActiveTool() const
|
||||||
|
|
||||||
void ToolsModel::SetActiveTool(TOOLTYPE nActiveTool)
|
void ToolsModel::SetActiveTool(TOOLTYPE nActiveTool)
|
||||||
{
|
{
|
||||||
OnFinishDraw();
|
OnEndDraw(FALSE);
|
||||||
|
|
||||||
selectionModel.Landing();
|
selectionModel.Landing();
|
||||||
|
|
||||||
|
@ -288,19 +288,11 @@ void ToolsModel::OnButtonUp(BOOL bLeftButton, LONG x, LONG y)
|
||||||
m_pToolObject->endEvent();
|
m_pToolObject->endEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolsModel::OnCancelDraw()
|
void ToolsModel::OnEndDraw(BOOL bCancel)
|
||||||
{
|
{
|
||||||
ATLTRACE("ToolsModel::OnCancelDraw()\n");
|
ATLTRACE("ToolsModel::OnEndDraw(%d)\n", bCancel);
|
||||||
m_pToolObject->beginEvent();
|
m_pToolObject->beginEvent();
|
||||||
m_pToolObject->OnCancelDraw();
|
m_pToolObject->OnEndDraw(bCancel);
|
||||||
m_pToolObject->endEvent();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ToolsModel::OnFinishDraw()
|
|
||||||
{
|
|
||||||
ATLTRACE("ToolsModel::OnFinishDraw()\n");
|
|
||||||
m_pToolObject->beginEvent();
|
|
||||||
m_pToolObject->OnFinishDraw();
|
|
||||||
m_pToolObject->endEvent();
|
m_pToolObject->endEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,14 +53,13 @@ struct ToolBase
|
||||||
virtual BOOL OnMouseMove(BOOL bLeftButton, LONG& x, LONG& y) { return TRUE; }
|
virtual BOOL OnMouseMove(BOOL bLeftButton, LONG& x, LONG& y) { return TRUE; }
|
||||||
virtual BOOL OnButtonUp(BOOL bLeftButton, LONG& x, LONG& y) { return TRUE; }
|
virtual BOOL OnButtonUp(BOOL bLeftButton, LONG& x, LONG& y) { return TRUE; }
|
||||||
|
|
||||||
virtual void OnCancelDraw();
|
|
||||||
virtual void OnFinishDraw();
|
|
||||||
|
|
||||||
virtual void OnDrawOverlayOnImage(HDC hdc) { }
|
virtual void OnDrawOverlayOnImage(HDC hdc) { }
|
||||||
virtual void OnDrawOverlayOnCanvas(HDC hdc) { }
|
virtual void OnDrawOverlayOnCanvas(HDC hdc) { }
|
||||||
|
|
||||||
virtual void OnSpecialTweak(BOOL bMinus) { }
|
virtual void OnSpecialTweak(BOOL bMinus) { }
|
||||||
|
|
||||||
|
virtual void OnEndDraw(BOOL bCancel);
|
||||||
|
|
||||||
void beginEvent();
|
void beginEvent();
|
||||||
void endEvent();
|
void endEvent();
|
||||||
void reset();
|
void reset();
|
||||||
|
@ -135,8 +134,7 @@ public:
|
||||||
void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick);
|
void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick);
|
||||||
void OnMouseMove(BOOL bLeftButton, LONG x, LONG y);
|
void OnMouseMove(BOOL bLeftButton, LONG x, LONG y);
|
||||||
void OnButtonUp(BOOL bLeftButton, LONG x, LONG y);
|
void OnButtonUp(BOOL bLeftButton, LONG x, LONG y);
|
||||||
void OnCancelDraw();
|
void OnEndDraw(BOOL bCancel);
|
||||||
void OnFinishDraw();
|
|
||||||
void OnDrawOverlayOnImage(HDC hdc);
|
void OnDrawOverlayOnImage(HDC hdc);
|
||||||
void OnDrawOverlayOnCanvas(HDC hdc);
|
void OnDrawOverlayOnCanvas(HDC hdc);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue