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