Implemented EM_GETTEXTLENGTHEX RichEdit message.
This commit is contained in:
parent
68db49f233
commit
b1f61804d7
|
@ -41,6 +41,38 @@ int ME_GetTextLength(ME_TextEditor *editor)
|
||||||
return ME_CharOfsFromRunOfs(editor, ME_FindItemBack(editor->pBuffer->pLast, diRun), 0);
|
return ME_CharOfsFromRunOfs(editor, ME_FindItemBack(editor->pBuffer->pLast, diRun), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int ME_GetTextLengthEx(ME_TextEditor *editor, GETTEXTLENGTHEX *how)
|
||||||
|
{
|
||||||
|
int length;
|
||||||
|
|
||||||
|
if (how->flags & GTL_PRECISE && how->flags & GTL_CLOSE)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
if (how->flags & GTL_NUMCHARS && how->flags & GTL_NUMBYTES)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
length = ME_GetTextLength(editor);
|
||||||
|
|
||||||
|
if (how->flags & GTL_USECRLF)
|
||||||
|
length += editor->nParagraphs;
|
||||||
|
|
||||||
|
if (how->flags & GTL_NUMBYTES)
|
||||||
|
{
|
||||||
|
CPINFO cpinfo;
|
||||||
|
|
||||||
|
if (how->codepage == 1200)
|
||||||
|
return length * 2;
|
||||||
|
if (how->flags & GTL_PRECISE)
|
||||||
|
FIXME("GTL_PRECISE flag unsupported. Using GTL_CLOSE\n");
|
||||||
|
if (GetCPInfo(how->codepage, &cpinfo))
|
||||||
|
return length * cpinfo.MaxCharSize;
|
||||||
|
ERR("Invalid codepage %u\n", how->codepage);
|
||||||
|
return E_INVALIDARG;
|
||||||
|
}
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void ME_SetSelection(ME_TextEditor *editor, int from, int to)
|
void ME_SetSelection(ME_TextEditor *editor, int from, int to)
|
||||||
{
|
{
|
||||||
if (from == 0 && to == -1)
|
if (from == 0 && to == -1)
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
- EM_GETSCROLLPOS 3.0
|
- EM_GETSCROLLPOS 3.0
|
||||||
! - EM_GETTHUMB
|
! - EM_GETTHUMB
|
||||||
- EM_GETTEXTEX 2.0
|
- EM_GETTEXTEX 2.0
|
||||||
- EM_GETTEXTLENGTHEX
|
+ EM_GETTEXTLENGTHEX (GTL_PRECISE unimplemented)
|
||||||
- EM_GETTEXTMODE 2.0
|
- EM_GETTEXTMODE 2.0
|
||||||
? + EM_GETTEXTRANGE (ANSI&Unicode)
|
? + EM_GETTEXTRANGE (ANSI&Unicode)
|
||||||
- EM_GETTYPOGRAPHYOPTIONS 3.0
|
- EM_GETTYPOGRAPHYOPTIONS 3.0
|
||||||
|
@ -846,7 +846,6 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||||
UNSUPPORTED_MSG(EM_GETREDONAME)
|
UNSUPPORTED_MSG(EM_GETREDONAME)
|
||||||
UNSUPPORTED_MSG(EM_GETSCROLLPOS)
|
UNSUPPORTED_MSG(EM_GETSCROLLPOS)
|
||||||
UNSUPPORTED_MSG(EM_GETTEXTEX)
|
UNSUPPORTED_MSG(EM_GETTEXTEX)
|
||||||
UNSUPPORTED_MSG(EM_GETTEXTLENGTHEX)
|
|
||||||
UNSUPPORTED_MSG(EM_GETTEXTMODE)
|
UNSUPPORTED_MSG(EM_GETTEXTMODE)
|
||||||
UNSUPPORTED_MSG(EM_GETTYPOGRAPHYOPTIONS)
|
UNSUPPORTED_MSG(EM_GETTYPOGRAPHYOPTIONS)
|
||||||
UNSUPPORTED_MSG(EM_GETUNDONAME)
|
UNSUPPORTED_MSG(EM_GETUNDONAME)
|
||||||
|
@ -1175,6 +1174,8 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||||
}
|
}
|
||||||
case WM_GETTEXTLENGTH:
|
case WM_GETTEXTLENGTH:
|
||||||
return ME_GetTextLength(editor);
|
return ME_GetTextLength(editor);
|
||||||
|
case EM_GETTEXTLENGTHEX:
|
||||||
|
return ME_GetTextLengthEx(editor, (GETTEXTLENGTHEX *)wParam);
|
||||||
case WM_GETTEXT:
|
case WM_GETTEXT:
|
||||||
{
|
{
|
||||||
TEXTRANGEW tr; /* W and A differ only by rng->lpstrText */
|
TEXTRANGEW tr; /* W and A differ only by rng->lpstrText */
|
||||||
|
|
|
@ -160,6 +160,7 @@ void ME_SendSelChange(ME_TextEditor *editor);
|
||||||
void ME_InsertGraphicsFromCursor(ME_TextEditor *editor, int nCursor);
|
void ME_InsertGraphicsFromCursor(ME_TextEditor *editor, int nCursor);
|
||||||
void ME_InternalDeleteText(ME_TextEditor *editor, int nOfs, int nChars);
|
void ME_InternalDeleteText(ME_TextEditor *editor, int nOfs, int nChars);
|
||||||
int ME_GetTextLength(ME_TextEditor *editor);
|
int ME_GetTextLength(ME_TextEditor *editor);
|
||||||
|
int ME_GetTextLengthEx(ME_TextEditor *editor, GETTEXTLENGTHEX *how);
|
||||||
ME_Style *ME_GetSelectionInsertStyle(ME_TextEditor *editor);
|
ME_Style *ME_GetSelectionInsertStyle(ME_TextEditor *editor);
|
||||||
BOOL ME_UpdateSelection(ME_TextEditor *editor, ME_Cursor *pTempCursor);
|
BOOL ME_UpdateSelection(ME_TextEditor *editor, ME_Cursor *pTempCursor);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue