diff --git a/src/kits/interface/Font.cpp b/src/kits/interface/Font.cpp index 6150f6dfd9..c2d226ae37 100644 --- a/src/kits/interface/Font.cpp +++ b/src/kits/interface/Font.cpp @@ -942,7 +942,33 @@ void BFont::GetEscapements(const char charArray[], int32 numChars, escapement_delta *delta, float escapementArray[]) const { - // TODO: implement + if(!charArray || numChars<1 || !escapementArray) + return; + + int32 code; + BPrivate::BAppServerLink link; + + link.StartMessage(AS_GET_ESCAPEMENTS_AS_FLOATS); + + link.Attach(fFamilyID); + link.Attach(fStyleID); + link.Attach(fSize); + link.Attach(fRotation); + link.Attach(fFlags); + + link.Attach(numChars); + + // TODO: Support UTF8 characters + for(int32 i=0; i(charArray[i]); + + link.FlushWithReply(&code); + + if(code!=SERVER_TRUE) + return; + + for(int32 i=0; i(&escapementArray[i]); } @@ -974,6 +1000,7 @@ BFont::GetEscapements(const char charArray[], int32 numChars, escapement_delta * link.Attach(numChars); + // TODO: Support UTF8 characters if(offsetArray) { for(int32 i=0; i