mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-16 05:07:36 +00:00
Added support for returning caret positions in
GetCharacterPlacementW().
This commit is contained in:
parent
1fa82e51c2
commit
7e941c8388
|
@ -2002,7 +2002,7 @@ GetCharacterPlacementA(HDC hdc, LPCSTR lpString, INT uCount,
|
||||||
*
|
*
|
||||||
* All flags except GCP_REORDER are not yet implemented.
|
* All flags except GCP_REORDER are not yet implemented.
|
||||||
* Reordering is not 100% complient to the Windows BiDi method.
|
* Reordering is not 100% complient to the Windows BiDi method.
|
||||||
* Caret positioning is not yet implemented.
|
* Caret positioning is not yet implemented for BiDi.
|
||||||
* Classes are not yet implemented.
|
* Classes are not yet implemented.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -2030,8 +2030,9 @@ GetCharacterPlacementW(
|
||||||
lpResults->lpGlyphs, lpResults->nGlyphs, lpResults->nMaxFit);
|
lpResults->lpGlyphs, lpResults->nGlyphs, lpResults->nMaxFit);
|
||||||
|
|
||||||
if(dwFlags&(~GCP_REORDER)) FIXME("flags 0x%08lx ignored\n", dwFlags);
|
if(dwFlags&(~GCP_REORDER)) FIXME("flags 0x%08lx ignored\n", dwFlags);
|
||||||
if(lpResults->lpCaretPos) FIXME("caret positions not implemented\n");
|
|
||||||
if(lpResults->lpClass) FIXME("classes not implemented\n");
|
if(lpResults->lpClass) FIXME("classes not implemented\n");
|
||||||
|
if (lpResults->lpCaretPos && (dwFlags & GCP_REORDER))
|
||||||
|
FIXME("Caret positions for complex scripts not implemented\n");
|
||||||
|
|
||||||
nSet = (UINT)uCount;
|
nSet = (UINT)uCount;
|
||||||
if(nSet > lpResults->nGlyphs)
|
if(nSet > lpResults->nGlyphs)
|
||||||
|
@ -2069,6 +2070,16 @@ GetCharacterPlacementW(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lpResults->lpCaretPos && !(dwFlags & GCP_REORDER))
|
||||||
|
{
|
||||||
|
int pos = 0;
|
||||||
|
|
||||||
|
lpResults->lpCaretPos[0] = 0;
|
||||||
|
for (i = 1; i < nSet; i++)
|
||||||
|
if (GetTextExtentPoint32W(hdc, &(lpString[i - 1]), 1, &size))
|
||||||
|
lpResults->lpCaretPos[i] = (pos += size.cx);
|
||||||
|
}
|
||||||
|
|
||||||
if(lpResults->lpGlyphs)
|
if(lpResults->lpGlyphs)
|
||||||
GetGlyphIndicesW(hdc, lpString, nSet, lpResults->lpGlyphs, 0);
|
GetGlyphIndicesW(hdc, lpString, nSet, lpResults->lpGlyphs, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue