richedit: Added support for end of line inside paragraphs.
This commit is contained in:
parent
513fcfe48f
commit
4fb2dfc9f0
|
@ -92,11 +92,11 @@ typedef enum {
|
||||||
/******************************** run flags *************************/
|
/******************************** run flags *************************/
|
||||||
#define MERF_STYLEFLAGS 0x0FFF
|
#define MERF_STYLEFLAGS 0x0FFF
|
||||||
/* run contains non-text content, which has its own rules for wrapping, sizing etc */
|
/* run contains non-text content, which has its own rules for wrapping, sizing etc */
|
||||||
#define MERF_GRAPHICS 1
|
#define MERF_GRAPHICS 0x001
|
||||||
/* run is a tab (or, in future, any kind of content whose size is dependent on run position) */
|
/* run is a tab (or, in future, any kind of content whose size is dependent on run position) */
|
||||||
#define MERF_TAB 2
|
#define MERF_TAB 0x002
|
||||||
/* run is a cell boundary */
|
/* run is a cell boundary */
|
||||||
#define MERF_CELL 4
|
#define MERF_CELL 0x004
|
||||||
|
|
||||||
#define MERF_NONTEXT (MERF_GRAPHICS | MERF_TAB | MERF_CELL)
|
#define MERF_NONTEXT (MERF_GRAPHICS | MERF_TAB | MERF_CELL)
|
||||||
|
|
||||||
|
@ -114,13 +114,15 @@ typedef enum {
|
||||||
#define MERF_CALCBYWRAP 0x0F0000
|
#define MERF_CALCBYWRAP 0x0F0000
|
||||||
/* the "end of paragraph" run, contains 1 character */
|
/* the "end of paragraph" run, contains 1 character */
|
||||||
#define MERF_ENDPARA 0x100000
|
#define MERF_ENDPARA 0x100000
|
||||||
|
/* forcing the "end of row" run, contains 1 character */
|
||||||
|
#define MERF_ENDROW 0x200000
|
||||||
/* run is hidden */
|
/* run is hidden */
|
||||||
#define MERF_HIDDEN 0x200000
|
#define MERF_HIDDEN 0x400000
|
||||||
|
|
||||||
/* runs with any of these flags set cannot be joined */
|
/* runs with any of these flags set cannot be joined */
|
||||||
#define MERF_NOJOIN (MERF_GRAPHICS|MERF_TAB|MERF_ENDPARA)
|
#define MERF_NOJOIN (MERF_GRAPHICS|MERF_TAB|MERF_ENDPARA|MERF_ENDROW)
|
||||||
/* runs that don't contain real text */
|
/* runs that don't contain real text */
|
||||||
#define MERF_NOTEXT (MERF_GRAPHICS|MERF_TAB|MERF_ENDPARA)
|
#define MERF_NOTEXT (MERF_GRAPHICS|MERF_TAB|MERF_ENDPARA|MERF_ENDROW)
|
||||||
|
|
||||||
/* those flags are kept when the row is split */
|
/* those flags are kept when the row is split */
|
||||||
#define MERF_SPLITMASK (~(0))
|
#define MERF_SPLITMASK (~(0))
|
||||||
|
|
|
@ -282,6 +282,13 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p)
|
||||||
ME_InsertRowStart(wc, p);
|
ME_InsertRowStart(wc, p);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
/* simply end the current row and move on to next one */
|
||||||
|
if (run->nFlags & MERF_ENDROW)
|
||||||
|
{
|
||||||
|
p = p->next;
|
||||||
|
ME_InsertRowStart(wc, p);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
/* we're not at the end of the row */
|
/* we're not at the end of the row */
|
||||||
/* will current run fit? */
|
/* will current run fit? */
|
||||||
if (wc->pt.x + run->nWidth > wc->nAvailWidth)
|
if (wc->pt.x + run->nWidth > wc->nAvailWidth)
|
||||||
|
|
Loading…
Reference in New Issue