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;
171 cf.cbSize =
sizeof(
cf);
182 cf.yHeight = (lf.
lfHeight * 72 * 1440) / (
c.dpi.cy *
c.dpi.cy);
199 cf.cbSize =
sizeof(
cf);
247 else para->
nFlags &= ~MEPF_CELL;
260 return item->wNumbering ==
base->wNumbering &&
261 item->wNumberingStart ==
base->wNumberingStart &&
262 item->wNumberingStyle ==
base->wNumberingStyle &&
284 static const WORD letter_base[] = { 1, 26, 26 * 26, 26 * 26 * 26 };
295 {50000,
'P'}, {10000,
'O'}, {5000,
'N'}, {1000,
'M'},
296 {500,
'D'}, {100,
'C'}, {50,
'L'}, {10,
'X'}, {5,
'V'}, {1,
'I'}
316 char_offset =
'a' -
'A';
331 num -= letter_base[
i];
332 letter = (
num / letter_base[
i]) % 26;
333 p[
len -
i - 1] = letter +
'A' + char_offset;
340 char_offset =
'a' -
'A';
350 total = roman_base[
i].base + 4 * roman_base[
i + 1].base;
352 total = 4 * roman_base[
i].base;
356 *
p++ = roman_base[(
i & ~1) + 1].letter + char_offset;
357 *
p++ = roman_base[
i - 1].letter + char_offset;
363 len =
num / roman_base[
i].base;
366 *
p++ = roman_base[
i].letter + char_offset;
367 num -= roman_base[
i].base;
407 cf.cbSize =
sizeof(
cf);
476#define COPY_FIELD(m, f) \
477 if (dwMask & (m)) { \
478 para->fmt.dwMask |= m; \
479 para->fmt.f = pFmt->f; \
496#define EFFECTS_MASK (PFM_RTLPARA|PFM_KEEP|PFM_KEEPNEXT|PFM_PAGEBREAKBEFORE| \
497 PFM_NOLINENUMBER|PFM_NOWIDOWCONTROL|PFM_DONOTHYPHEN|PFM_SIDEBYSIDE| \
541 const WCHAR *eol_str,
int eol_len,
int paraFlags )
544 ME_Run *end_run, *next_run;
552 assert( !(paraFlags & (paraFlags-1)) );
561 old_para = run->
para;
565 if (old_para->fmt.wNumbering)
572 end_run->
len = eol_len;
575 next_para = &old_para->next_para->member.para;
590 for (next_run = run; next_run; next_run =
run_next( next_run ))
593 next_run->
para = new_para;
596 new_para->
nCharOfs = old_para->nCharOfs + ofs;
602 new_para->
fmt = old_para->fmt;
603 new_para->
border = old_para->border;
616 new_para->
eop_run = old_para->eop_run;
617 old_para->eop_run = end_run;
625 new_para->
cell = cell;
650 old_para->cell = old_para->cell->parent_cell;
651 new_para->
cell = old_para->cell;
662 else new_para->
cell = old_para->cell;
686 ME_Run *end_run, *next_first_run, *tmp_run;
701 end_len = end_run->
len;
707 startCur.
para = para;
708 startCur.
run = end_run;
710 endCur.
run = next_first_run;
756 for (tmp_run = next_first_run; tmp_run; tmp_run =
run_next( tmp_run ))
759 tmp_run->
para = para;
792#define DUMP(mask, name, fmt, field) \
793 if (pFmt->dwMask & (mask)) p += sprintf(p, "%-22s" fmt "\n", name, pFmt->field); \
794 else p += sprintf(p, "%-22sN/A\n", name);
797#define DUMP_EFFECT(mask, name) \
798 p += sprintf(p, "%-22s%s\n", name, (pFmt->dwMask & (mask)) ? ((pFmt->wEffects & ((mask) >> 16)) ? "yes" : "no") : "N/A");
823 else p +=
sprintf(
p,
"Alignment: N/A\n");
856 if (*para == *para_end)
859 if ((*para_end)->nCharOfs < (*para)->nCharOfs)
884 if (para == para_end)
break;
920 while (para != para_end)
924#define CHECK_FIELD(m, f) \
925 if (fmt->f != para->fmt.f) fmt->dwMask &= ~(m);
936 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)
void ME_ReleaseStyle(ME_Style *item) DECLSPEC_HIDDEN
void ME_InitCharFormat2W(CHARFORMAT2W *pFmt) DECLSPEC_HIDDEN
#define ITextHost_OnTxParaFormatChange(This, a)
void ME_AddRefStyle(ME_Style *item) DECLSPEC_HIDDEN
BOOL cfany_to_cf2w(CHARFORMAT2W *to, const CHARFORMAT2W *from) DECLSPEC_HIDDEN
void ME_CheckCharOffsets(ME_TextEditor *editor) DECLSPEC_HIDDEN
ME_Run * run_create(ME_Style *s, int nFlags) DECLSPEC_HIDDEN
ME_Style * ME_ApplyStyle(ME_TextEditor *ed, ME_Style *sSrc, CHARFORMAT2W *style) DECLSPEC_HIDDEN
void editor_propagate_char_ofs(ME_Paragraph *para, ME_Run *run, int shift) DECLSPEC_HIDDEN
static ME_DisplayItem * para_get_di(ME_Paragraph *para)
void ME_DestroyDisplayItem(ME_DisplayItem *item) DECLSPEC_HIDDEN
ME_DisplayItem * ME_FindItemBack(ME_DisplayItem *di, ME_DIType nTypeOrClass) DECLSPEC_HIDDEN
void select_style(ME_Context *c, ME_Style *s) DECLSPEC_HIDDEN
#define ITextHost_TxGetParaFormat(This, a)
ME_Style * ME_MakeStyle(CHARFORMAT2W *style) DECLSPEC_HIDDEN
static ME_DisplayItem * run_get_di(ME_Run *run)
ME_String * ME_MakeStringConst(const WCHAR *str, int len) DECLSPEC_HIDDEN
ME_String * ME_MakeStringN(LPCWSTR szText, int nMaxChars) DECLSPEC_HIDDEN
ME_Run * run_next(ME_Run *run) DECLSPEC_HIDDEN
#define ITextHost_TxGetDC(This)
static ME_DisplayItem * cell_get_di(ME_Cell *cell)
BOOL ME_AppendString(ME_String *s, const WCHAR *append, int len) DECLSPEC_HIDDEN
ME_Cell * cell_next(ME_Cell *cell) DECLSPEC_HIDDEN
ME_Cell * cell_create(void) DECLSPEC_HIDDEN
void ME_SetDefaultCharFormat(ME_TextEditor *editor, CHARFORMAT2W *mod) DECLSPEC_HIDDEN
#define ITextHost_TxReleaseDC(This, a)
void ME_Remove(ME_DisplayItem *diWhere) DECLSPEC_HIDDEN
BOOL add_undo_set_para_fmt(ME_TextEditor *, const ME_Paragraph *para) DECLSPEC_HIDDEN
ME_String * ME_MakeStringEmpty(int len) DECLSPEC_HIDDEN
BOOL add_undo_join_paras(ME_TextEditor *, int pos) DECLSPEC_HIDDEN
void ME_InsertBefore(ME_DisplayItem *diWhere, ME_DisplayItem *diWhat) DECLSPEC_HIDDEN
void ME_DestroyString(ME_String *s) DECLSPEC_HIDDEN
ME_DisplayItem * ME_MakeDI(ME_DIType type) DECLSPEC_HIDDEN
ME_Cell * cell_prev(ME_Cell *cell) DECLSPEC_HIDDEN
BOOL add_undo_split_para(ME_TextEditor *, const ME_Paragraph *para, ME_String *eol_str, const ME_Cell *cell) DECLSPEC_HIDDEN
ME_DisplayItem * ME_FindItemFwd(ME_DisplayItem *di, ME_DIType nTypeOrClass) DECLSPEC_HIDDEN
#define ITextHost_TxGetCharFormat(This, a)
ME_String * ME_VSplitString(ME_String *orig, int nVPos) DECLSPEC_HIDDEN
void ME_SetCharFormat(ME_TextEditor *editor, ME_Cursor *start, ME_Cursor *end, CHARFORMAT2W *pFmt) DECLSPEC_HIDDEN
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)
int get_total_width(ME_TextEditor *editor)
static void table_update_flags(ME_Paragraph *para)
void ME_MakeFirstParagraph(ME_TextEditor *editor)
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(element, type, field)
static void wine_rb_remove_key(struct wine_rb_tree *tree, const void *key)
static void wine_rb_init(struct wine_rb_tree *tree, wine_rb_compare_func_t compare)
static int wine_rb_put(struct wine_rb_tree *tree, const void *key, struct wine_rb_entry *entry)
WCHAR lfFaceName[LF_FACESIZE]
struct tagME_Cell * parent_cell
struct tagME_Cell * next_cell
struct tagME_Cell * prev_cell
union tagME_DisplayItem::@555 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)