Ignore:
Timestamp:
Nov 16, 2000, 5:34:49 PM (25 years ago)
Author:
sandervl
Message:

GetTextExtentPoint reimplemented

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gdi32/gdi32.cpp

    r4598 r4602  
    1 /* $Id: gdi32.cpp,v 1.62 2000-11-15 16:10:41 sandervl Exp $ */
     1/* $Id: gdi32.cpp,v 1.63 2000-11-16 16:34:48 sandervl Exp $ */
    22
    33/*
     
    3232//******************************************************************************
    3333//******************************************************************************
    34 BOOL WIN32API GetTextExtentPointA(HDC hdc, LPCSTR lpsz, int cbString, LPSIZE lpSize)
    35 {
    36  BOOL rc;
    37 
    38   lpSize->cx = lpSize->cy = 0;
    39   rc = O32_GetTextExtentPoint(hdc, lpsz, cbString, lpSize);
    40   dprintf(("GDI32: GetTextExtentPointA of %s returned %d\n", lpsz, rc));
    41   return(rc);
    42 }
    4334//******************************************************************************
    4435//******************************************************************************
     
    754745//******************************************************************************
    755746//******************************************************************************
    756 BOOL WIN32API GetCharWidth32A( HDC arg1, UINT arg2, UINT arg3, PINT  arg4)
    757 {
    758     dprintf(("GDI32: GetCharWidth32A"));
    759     return O32_GetCharWidth(arg1, arg2, arg3, arg4);
     747BOOL WIN32API GetCharWidth32A( HDC hdc, UINT iFirstChar, UINT iLastChar, PINT pWidthArray)
     748{
     749 BOOL ret;
     750
     751    dprintf(("GDI32: GetCharWidth32A %x %x %x %x", hdc, iFirstChar, iLastChar, pWidthArray));
     752    ret = O32_GetCharWidth(hdc, iFirstChar, iLastChar, pWidthArray);
     753    dprintf(("GDI32: GetCharWidth32A returned %d", ret));
     754#ifdef DEBUG
     755    if(ret) {
     756      for(int i=iFirstChar;i<iLastChar;i++) {
     757          if((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z')) {
     758                dprintf2(("Char %c -> width %d", i, pWidthArray[i]));
     759          }
     760          else  dprintf2(("Char %x -> width %d", i, pWidthArray[i]));
     761      }
     762    }
     763#endif
     764    return ret;
    760765}
    761766//******************************************************************************
    762767//TODO: Cut off Unicode chars?
    763768//******************************************************************************
    764 BOOL WIN32API GetCharWidth32W(HDC arg1, UINT iFirstChar, UINT iLastChar, PINT  arg4)
     769BOOL WIN32API GetCharWidth32W(HDC hdc, UINT iFirstChar, UINT iLastChar, PINT pWidthArray)
    765770{
    766771    dprintf(("GDI32: GetCharWidth32W, not properly implemented"));
    767     return O32_GetCharWidth(arg1, iFirstChar, iLastChar, arg4);
     772    return O32_GetCharWidth(hdc, iFirstChar, iLastChar, pWidthArray);
    768773}
    769774//******************************************************************************
     
    891896//******************************************************************************
    892897//******************************************************************************
    893 BOOL WIN32API GetTextExtentPoint32A( HDC hdc, LPCSTR lpsz, int cbString, PSIZE  lpSize)
    894 {
    895  BOOL rc;
    896 
    897     lpSize->cx = lpSize->cy = 0;
    898     rc = O32_GetTextExtentPoint32(hdc, lpsz, cbString, lpSize);
    899     dprintf(("GDI32: GetTextExtentPoint32A %x %s %d returned %d (%d,%d)", hdc, lpsz, cbString, rc, lpSize->cx, lpSize->cy));
    900     return rc;
    901 }
    902 //******************************************************************************
    903 //******************************************************************************
    904 BOOL WIN32API GetTextExtentPoint32W(HDC arg1, LPCWSTR arg2, int arg3, PSIZE lpSize)
    905 {
    906  char *astring = UnicodeToAsciiString((LPWSTR)arg2);
    907  BOOL  rc;
    908 
    909     dprintf(("GDI32: GetTextExtentPoint32W %s\n", astring));
    910     lpSize->cx = lpSize->cy = 0;
    911     rc = O32_GetTextExtentPoint32(arg1, astring, arg3, lpSize);
    912     FreeAsciiString(astring);
    913     return(rc);
    914 }
    915 //******************************************************************************
    916 //******************************************************************************
    917 BOOL WIN32API GetTextExtentPointW(HDC    hdc,
    918                                   LPCWSTR lpString,
    919                                   int    cbString,
    920                                   PSIZE  lpSize)
    921 {
    922   char *astring = UnicodeToAsciiString((LPWSTR)lpString);
    923   BOOL  rc;
    924 
    925   lpSize->cx = lpSize->cy = 0;
    926   rc = O32_GetTextExtentPoint(hdc,
    927                          astring,
    928                          cbString,
    929                          lpSize);
    930   dprintf(("GDI32: GetTextExtentPointW %X %s (size %08xh) returned %d\n", hdc, astring, cbString, rc));
    931   dprintf(("GDI32: GetTextExtentPointW (%d,%d)\n", lpSize->cx, lpSize->cy));
    932 
    933   FreeAsciiString(astring);
    934   return(rc);
    935 }
    936898//******************************************************************************
    937899//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.