39 return &
item->member.para;
79 total_width =
max(total_width, para->
nWidth);
113 ERR(
"failed to find run in paragraph\n" );
138 return &
item->member.row;
148 return &
item->member.row;
170 cf.cbSize =
sizeof(
cf);
181 cf.yHeight = (lf.
lfHeight * 72 * 1440) / (
c.dpi.cy *
c.dpi.cy);
198 cf.cbSize =
sizeof(
cf);
245 else para->
nFlags &= ~MEPF_CELL;
258 return item->wNumbering ==
base->wNumbering &&
259 item->wNumberingStart ==
base->wNumberingStart &&
260 item->wNumberingStyle ==
base->wNumberingStyle &&
282 static const WORD letter_base[] = { 1, 26, 26 * 26, 26 * 26 * 26 };
293 {50000,
'P'}, {10000,
'O'}, {5000,
'N'}, {1000,
'M'},
294 {500,
'D'}, {100,
'C'}, {50,
'L'}, {10,
'X'}, {5,
'V'}, {1,
'I'}
314 char_offset =
'a' -
'A';
329 num -= letter_base[
i];
330 letter = (
num / letter_base[
i]) % 26;
331 p[
len -
i - 1] = letter +
'A' + char_offset;
338 char_offset =
'a' -
'A';
348 total = roman_base[
i].base + 4 * roman_base[
i + 1].base;
350 total = 4 * roman_base[
i].base;
354 *
p++ = roman_base[(
i & ~1) + 1].letter + char_offset;
355 *
p++ = roman_base[
i - 1].letter + char_offset;
361 len =
num / roman_base[
i].base;
364 *
p++ = roman_base[
i].letter + char_offset;
365 num -= roman_base[
i].base;
405 cf.cbSize =
sizeof(
cf);
474#define COPY_FIELD(m, f) \
475 if (dwMask & (m)) { \
476 para->fmt.dwMask |= m; \
477 para->fmt.f = pFmt->f; \
494#define EFFECTS_MASK (PFM_RTLPARA|PFM_KEEP|PFM_KEEPNEXT|PFM_PAGEBREAKBEFORE| \
495 PFM_NOLINENUMBER|PFM_NOWIDOWCONTROL|PFM_DONOTHYPHEN|PFM_SIDEBYSIDE| \
539 const WCHAR *eol_str,
int eol_len,
int paraFlags )
542 ME_Run *end_run, *next_run;
550 assert( !(paraFlags & (paraFlags-1)) );
559 old_para = run->
para;
563 if (old_para->fmt.wNumbering)
570 end_run->
len = eol_len;
573 next_para = &old_para->next_para->member.para;
588 for (next_run = run; next_run; next_run =
run_next( next_run ))
591 next_run->
para = new_para;
594 new_para->
nCharOfs = old_para->nCharOfs + ofs;
600 new_para->
fmt = old_para->fmt;
601 new_para->
border = old_para->border;
614 new_para->
eop_run = old_para->eop_run;
615 old_para->eop_run = end_run;
623 new_para->
cell = cell;
648 old_para->cell = old_para->cell->parent_cell;
649 new_para->
cell = old_para->cell;
660 else new_para->
cell = old_para->cell;
684 ME_Run *end_run, *next_first_run, *tmp_run;
699 end_len = end_run->
len;
705 startCur.
para = para;
706 startCur.
run = end_run;
708 endCur.
run = next_first_run;
754 for (tmp_run = next_first_run; tmp_run; tmp_run =
run_next( tmp_run ))
757 tmp_run->
para = para;
790#define DUMP(mask, name, fmt, field) \
791 if (pFmt->dwMask & (mask)) p += sprintf(p, "%-22s" fmt "\n", name, pFmt->field); \
792 else p += sprintf(p, "%-22sN/A\n", name);
795#define DUMP_EFFECT(mask, name) \
796 p += sprintf(p, "%-22s%s\n", name, (pFmt->dwMask & (mask)) ? ((pFmt->wEffects & ((mask) >> 16)) ? "yes" : "no") : "N/A");
821 else p +=
sprintf(
p,
"Alignment: N/A\n");
854 if (*para == *para_end)
857 if ((*para_end)->nCharOfs < (*para)->nCharOfs)
882 if (para == para_end)
break;
918 while (para != para_end)
922#define CHECK_FIELD(m, f) \
923 if (fmt->f != para->fmt.f) fmt->dwMask &= ~(m);
934 fmt->dwMask &= ~PFM_TABSTOPS;
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
LCID WINAPI GetSystemDefaultLCID(void)
void ME_DestroyContext(ME_Context *c)
void ME_InitContext(ME_Context *c, ME_TextEditor *editor, HDC hDC)
ME_Paragraph * editor_first_para(ME_TextEditor *editor)
ME_Paragraph * editor_end_para(ME_TextEditor *editor)
ME_Run * run_next(ME_Run *run)
#define ITextHost_OnTxParaFormatChange(This, a)
void ME_AddRefStyle(ME_Style *item)
void ME_Remove(ME_DisplayItem *diWhere)
ME_Cell * cell_next(ME_Cell *cell)
void ME_SetCharFormat(ME_TextEditor *editor, ME_Cursor *start, ME_Cursor *end, CHARFORMAT2W *pFmt)
void ME_ReleaseStyle(ME_Style *item)
void ME_DestroyString(ME_String *s)
ME_Cell * cell_prev(ME_Cell *cell)
ME_DisplayItem * ME_FindItemBack(ME_DisplayItem *di, ME_DIType nTypeOrClass)
static ME_DisplayItem * para_get_di(ME_Paragraph *para)
BOOL ME_AppendString(ME_String *s, const WCHAR *append, int len)
void editor_propagate_char_ofs(ME_TextEditor *editor, ME_Paragraph *para, ME_Run *run, int shift)
ME_Run * run_create(ME_Style *s, int nFlags)
BOOL cfany_to_cf2w(CHARFORMAT2W *to, const CHARFORMAT2W *from)
ME_Style * ME_ApplyStyle(ME_TextEditor *ed, ME_Style *sSrc, CHARFORMAT2W *style)
ME_String * ME_MakeStringN(LPCWSTR szText, int nMaxChars)
BOOL add_undo_join_paras(ME_TextEditor *, int pos)
#define ITextHost_TxGetParaFormat(This, a)
ME_String * ME_VSplitString(ME_String *orig, int nVPos)
BOOL add_undo_set_para_fmt(ME_TextEditor *, const ME_Paragraph *para)
ME_Style * ME_MakeStyle(CHARFORMAT2W *style)
static ME_DisplayItem * run_get_di(ME_Run *run)
void ME_InitCharFormat2W(CHARFORMAT2W *pFmt)
BOOL add_undo_split_para(ME_TextEditor *, const ME_Paragraph *para, ME_String *eol_str, const ME_Cell *cell)
static ME_DisplayItem * cell_get_di(ME_Cell *cell)
ME_Cell * cell_create(void)
ME_String * ME_MakeStringConst(const WCHAR *str, int len)
ME_DisplayItem * ME_FindItemFwd(ME_DisplayItem *di, ME_DIType nTypeOrClass)
ME_String * ME_MakeStringEmpty(int len)
void ME_SetDefaultCharFormat(ME_TextEditor *editor, CHARFORMAT2W *mod)
void ME_InsertBefore(ME_DisplayItem *diWhere, ME_DisplayItem *diWhat)
void select_style(ME_Context *c, ME_Style *s)
void ME_DestroyDisplayItem(ME_DisplayItem *item)
void ME_CheckCharOffsets(ME_TextEditor *editor)
#define ITextHost_TxGetCharFormat(This, a)
ME_DisplayItem * ME_MakeDI(ME_DIType type)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
#define sprintf(buf, format,...)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
ME_Row * para_first_row(ME_Paragraph *para)
void editor_get_selection_para_fmt(ME_TextEditor *editor, PARAFORMAT2 *fmt)
static void para_mark_rewrap_paras(ME_TextEditor *editor, ME_Paragraph *first, const ME_Paragraph *end)
void editor_set_default_para_fmt(ME_TextEditor *editor, PARAFORMAT2 *pFmt)
static ME_String * para_num_get_str(ME_Paragraph *para, WORD num)
#define DUMP(mask, name, fmt, field)
ME_Row * para_end_row(ME_Paragraph *para)
ME_Paragraph * para_split(ME_TextEditor *editor, ME_Run *run, ME_Style *style, const WCHAR *eol_str, int eol_len, int paraFlags)
void para_num_init(ME_Context *c, ME_Paragraph *para)
void ME_DumpParaStyleToBuf(const PARAFORMAT2 *pFmt, char buf[2048])
void para_mark_remove(ME_TextEditor *editor, ME_Paragraph *para)
static ME_Paragraph * para_create(ME_TextEditor *editor)
ME_Run * para_end_run(ME_Paragraph *para)
static int para_num_get_num(ME_Paragraph *para)
ME_Cell * para_cell(ME_Paragraph *para)
void para_num_clear(struct para_num *pn)
BOOL editor_set_selection_para_fmt(ME_TextEditor *editor, const PARAFORMAT2 *fmt)
void para_mark_add(ME_TextEditor *editor, ME_Paragraph *para)
#define CHECK_FIELD(m, f)
void editor_get_selection_paras(ME_TextEditor *editor, ME_Paragraph **para, ME_Paragraph **para_end)
ME_Paragraph * para_join(ME_TextEditor *editor, ME_Paragraph *para, BOOL use_first_fmt)
BOOL para_in_table(ME_Paragraph *para)
#define DUMP_EFFECT(mask, name)
void editor_mark_rewrap_all(ME_TextEditor *editor)
static BOOL para_set_fmt(ME_TextEditor *editor, ME_Paragraph *para, const PARAFORMAT2 *pFmt)
void para_mark_rewrap(ME_TextEditor *editor, ME_Paragraph *para)
void ME_MakeFirstParagraph(ME_TextEditor *editor, HDC hdc)
int get_total_width(ME_TextEditor *editor)
static void table_update_flags(ME_Paragraph *para)
ME_Run * para_first_run(ME_Paragraph *para)
static int para_mark_compare(const void *key, const struct wine_rb_entry *entry)
ME_Paragraph * para_prev(ME_Paragraph *para)
static BOOL para_num_same_list(const PARAFORMAT2 *item, const PARAFORMAT2 *base)
ME_Paragraph * para_next(ME_Paragraph *para)
void para_destroy(ME_TextEditor *editor, ME_Paragraph *para)
static void para_copy_fmt(const ME_Paragraph *para, PARAFORMAT2 *fmt)
static void para_num_clear_list(ME_TextEditor *editor, ME_Paragraph *para, const PARAFORMAT2 *orig_fmt)
static unsigned __int64 next
#define PFM_NUMBERINGSTYLE
struct _paraformat2 PARAFORMAT2
#define PFM_NOWIDOWCONTROL
#define PFM_PAGEBREAKBEFORE
#define CFE_AUTOBACKCOLOR
#define PFM_TABLEROWDELIMITER
#define CFM_UNDERLINETYPE
#define PFE_TABLEROWDELIMITER
#define PFM_NUMBERINGSTART
#define WINE_RB_ENTRY_VALUE
#define wine_rb_remove_key
WCHAR lfFaceName[LF_FACESIZE]
struct tagME_Cell * parent_cell
struct tagME_Cell * next_cell
struct tagME_Cell * prev_cell
union tagME_DisplayItem::@595 member
struct tagME_DisplayItem * next
struct tagME_DisplayItem * next_para
struct wine_rb_entry marked_entry
struct tagME_DisplayItem * prev_para
struct tagME_Paragraph * para
ME_Paragraph * last_sel_end_para
ME_Paragraph * last_sel_start_para
struct wine_rb_tree marked_paras
unsigned int bEmulateVersion10
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
BOOL WINAPI GetTextExtentPointW(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE lpsz)