Module: wine Branch: master Commit: c07212b3d080cf7df18c5bdb4c0e61c37bac618d URL: http://source.winehq.org/git/wine.git/?a=commit;h=c07212b3d080cf7df18c5bdb4c...
Author: Huw Davies huw@codeweavers.com Date: Tue Feb 12 15:48:14 2013 +0000
riched20: Move run extent calculation to wrap.c.
---
dlls/riched20/editor.h | 3 ++- dlls/riched20/run.c | 26 ++------------------------ dlls/riched20/wrap.c | 29 +++++++++++++++++++++++------ 3 files changed, 27 insertions(+), 31 deletions(-)
diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h index 4401498..5383f82 100644 --- a/dlls/riched20/editor.h +++ b/dlls/riched20/editor.h @@ -147,7 +147,8 @@ int ME_CanJoinRuns(const ME_Run *run1, const ME_Run *run2) DECLSPEC_HIDDEN; void ME_JoinRuns(ME_TextEditor *editor, ME_DisplayItem *p) DECLSPEC_HIDDEN; ME_DisplayItem *ME_SplitRunSimple(ME_TextEditor *editor, ME_Cursor *cursor) DECLSPEC_HIDDEN; void ME_UpdateRunFlags(ME_TextEditor *editor, ME_Run *run) DECLSPEC_HIDDEN; -void ME_CalcRunExtent(ME_Context *c, const ME_Paragraph *para, int startx, ME_Run *run) DECLSPEC_HIDDEN; +SIZE ME_GetRunSizeCommon(ME_Context *c, const ME_Paragraph *para, ME_Run *run, int nLen, + int startx, int *pAscent, int *pDescent) DECLSPEC_HIDDEN; SIZE ME_GetRunSize(ME_Context *c, const ME_Paragraph *para, ME_Run *run, int nLen, int startx) DECLSPEC_HIDDEN; void ME_CursorFromCharOfs(ME_TextEditor *editor, int nCharOfs, ME_Cursor *pCursor) DECLSPEC_HIDDEN; void ME_RunOfsFromCharOfs(ME_TextEditor *editor, int nCharOfs, ME_DisplayItem **ppPara, ME_DisplayItem **ppRun, int *pOfs) DECLSPEC_HIDDEN; diff --git a/dlls/riched20/run.c b/dlls/riched20/run.c index 6f9d5b5..37445a1 100644 --- a/dlls/riched20/run.c +++ b/dlls/riched20/run.c @@ -530,8 +530,8 @@ int ME_PointFromChar(ME_TextEditor *editor, ME_Run *pRun, int nOffset) * Finds width, height, ascent and descent of a run, up to given character * (nLen). */ -static SIZE ME_GetRunSizeCommon(ME_Context *c, const ME_Paragraph *para, ME_Run *run, int nLen, - int startx, int *pAscent, int *pDescent) +SIZE ME_GetRunSizeCommon(ME_Context *c, const ME_Paragraph *para, ME_Run *run, int nLen, + int startx, int *pAscent, int *pDescent) { SIZE size; int nMaxLen = run->len; @@ -615,28 +615,6 @@ SIZE ME_GetRunSize(ME_Context *c, const ME_Paragraph *para, }
/****************************************************************************** - * ME_CalcRunExtent - * - * Updates the size of the run (fills width, ascent and descent). The height - * is calculated based on whole row's ascent and descent anyway, so no need - * to use it here. - */ -void ME_CalcRunExtent(ME_Context *c, const ME_Paragraph *para, int startx, ME_Run *run) -{ - if (run->nFlags & MERF_HIDDEN) - run->nWidth = 0; - else - { - int nEnd = run->len; - SIZE size = ME_GetRunSizeCommon(c, para, run, nEnd, startx, - &run->nAscent, &run->nDescent); - run->nWidth = size.cx; - if (!size.cx) - WARN("size.cx == 0\n"); - } -} - -/****************************************************************************** * ME_SetSelectionCharFormat * * Applies a style change, either to a current selection, or to insert cursor diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c index 0531c97..aed04806 100644 --- a/dlls/riched20/wrap.c +++ b/dlls/riched20/wrap.c @@ -33,6 +33,23 @@ WINE_DEFAULT_DEBUG_CHANNEL(richedit); */
/****************************************************************************** + * calc_run_extent + * + * Updates the size of the run (fills width, ascent and descent). The height + * is calculated based on whole row's ascent and descent anyway, so no need + * to use it here. + */ +static void calc_run_extent(ME_Context *c, const ME_Paragraph *para, int startx, ME_Run *run) +{ + if (run->nFlags & MERF_HIDDEN) run->nWidth = 0; + else + { + SIZE size = ME_GetRunSizeCommon( c, para, run, run->len, startx, &run->nAscent, &run->nDescent ); + run->nWidth = size.cx; + } +} + +/****************************************************************************** * split_run_extents * * Splits a run into two in a given place. It also updates the screen position @@ -62,7 +79,7 @@ static ME_DisplayItem *split_run_extents(ME_WrapContext *wc, ME_DisplayItem *ite
run2 = &cursor.pRun->member.run;
- ME_CalcRunExtent(wc->context, para, wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, run); + calc_run_extent(wc->context, para, wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, run);
run2->pt.x = run->pt.x+run->nWidth; run2->pt.y = run->pt.y; @@ -296,8 +313,8 @@ static void ME_WrapSizeRun(ME_WrapContext *wc, ME_DisplayItem *p)
ME_UpdateRunFlags(wc->context->editor, &p->member.run);
- ME_CalcRunExtent(wc->context, &wc->pPara->member.para, - wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, &p->member.run); + calc_run_extent(wc->context, &wc->pPara->member.para, + wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, &p->member.run); }
@@ -488,9 +505,9 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p) if (black) { wc->bOverflown = FALSE; pp = split_run_extents(wc, p, black); - ME_CalcRunExtent(wc->context, &wc->pPara->member.para, - wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, - &pp->member.run); + calc_run_extent(wc->context, &wc->pPara->member.para, + wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, + &pp->member.run); ME_InsertRowStart(wc, pp); return pp; }