- Timestamp:
- Apr 30, 2002, 12:32:21 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gdi32/font.cpp
r7721 r8342 1 /* $Id: font.cpp,v 1.2 3 2002-01-02 18:36:00sandervl Exp $ */1 /* $Id: font.cpp,v 1.24 2002-04-30 10:32:21 sandervl Exp $ */ 2 2 3 3 /* … … 385 385 memset(&textM.ntmeFontSignature, 0, sizeof(textM.ntmeFontSignature)); 386 386 387 dprintf(("EnumFontProcExA %s ", logFont.elfLogFont.lfFaceName));387 dprintf(("EnumFontProcExA %s height %d", logFont.elfLogFont.lfFaceName, textM.ntmetm.tmHeight)); 388 388 389 389 int rc = proc(&logFont, &textM, arg3, lpEnumData->userData); … … 401 401 ENUMLOGFONTEXW LogFont; 402 402 NEWTEXTMETRICEXW textM; 403 USHORT selTIB = SetWin32TIB(); // save current FS selector and set win32 sel 403 404 int rc; 404 405 … … 435 436 memset(&textM.ntmeFontSignature, 0, sizeof(textM.ntmeFontSignature)); 436 437 437 dprintf(("EnumFontProcExW %s", lpLogFont->elfLogFont.lfFaceName)); 438 return proc(&LogFont, &textM, arg3, lpEnumData->userData); 438 dprintf(("EnumFontProcExW %s height %d", lpLogFont->elfLogFont.lfFaceName, textM.ntmetm.tmHeight)); 439 rc = proc(&LogFont, &textM, arg3, lpEnumData->userData); 440 SetFS(selTIB); // switch back to the saved FS selector 441 return rc; 439 442 } 440 443 //****************************************************************************** 441 444 //****************************************************************************** 442 445 ODINFUNCTION4(int, EnumFontsA, 443 HDC, arg1,446 HDC, hdc, 444 447 LPCSTR, arg2, 445 448 FONTENUMPROCA, arg3, … … 447 450 { 448 451 //@@@PH shouldn't this rather be O32_EnumFonts ? 449 return EnumFontFamiliesA( arg1, arg2, arg3, arg4);452 return EnumFontFamiliesA(hdc, arg2, arg3, arg4); 450 453 } 451 454 //****************************************************************************** 452 455 //****************************************************************************** 453 456 ODINFUNCTION4(int, EnumFontsW, 454 HDC, arg1,457 HDC, hdc, 455 458 LPCWSTR, arg2, 456 459 FONTENUMPROCW, arg3, … … 458 461 { 459 462 //@@@PH shouldn't this rather be O32_EnumFonts ? 460 return EnumFontFamiliesW( arg1, arg2, arg3, arg4);463 return EnumFontFamiliesW(hdc, arg2, arg3, arg4); 461 464 } 462 465 //****************************************************************************** 463 466 //****************************************************************************** 464 467 ODINFUNCTION4(int, EnumFontFamiliesA, 465 HDC, arg1,466 LPCSTR, arg2,468 HDC, hdc, 469 LPCSTR, lpszFontFamily, 467 470 FONTENUMPROCA, arg3, 468 471 LPARAM, arg4) 469 472 { 470 473 ENUMUSERDATA enumData; 474 CHAR lpstrFamilyNew[LF_FACESIZE]; 471 475 int rc; 472 476 473 dprintf(("GDI32: EnumFontFamiliesA %s", arg2)); 477 dprintf(("GDI32: EnumFontFamiliesA %s", lpszFontFamily)); 478 479 iFontRename(lpszFontFamily, lpstrFamilyNew); 474 480 475 481 enumData.userProc = (DWORD)arg3; 476 482 enumData.userData = arg4; 477 483 478 rc = O32_EnumFontFamilies( arg1, arg2, &EnumFontProcA, (LPARAM)&enumData);484 rc = O32_EnumFontFamilies(hdc, lpstrFamilyNew, &EnumFontProcA, (LPARAM)&enumData); 479 485 480 486 return rc; … … 483 489 //****************************************************************************** 484 490 ODINFUNCTION4(int, EnumFontFamiliesW, 485 HDC, arg1,486 LPCWSTR, arg2,491 HDC, hdc, 492 LPCWSTR, lpszFontFamilyW, 487 493 FONTENUMPROCW, arg3, 488 494 LPARAM, arg4) 489 495 { 496 CHAR lpstrFamilyNew[LF_FACESIZE]; 490 497 ENUMUSERDATA enumData; 491 int rc; 492 char *astring = UnicodeToAsciiString((LPWSTR)arg2); 493 494 dprintf(("GDI32: EnumFontFamiliesW %s", astring)); 498 int rc; 499 char *lpszFontFamilyA = UnicodeToAsciiString((LPWSTR)lpszFontFamilyW); 500 501 dprintf(("GDI32: EnumFontFamiliesW %s", lpszFontFamilyA)); 502 503 iFontRename(lpszFontFamilyA, lpstrFamilyNew); 495 504 496 505 enumData.userProc = (DWORD)arg3; 497 506 enumData.userData = arg4; 498 507 499 rc = O32_EnumFontFamilies( arg1, astring, &EnumFontProcW, (LPARAM)&enumData);500 501 FreeAsciiString(astring);508 rc = O32_EnumFontFamilies(hdc, lpstrFamilyNew, &EnumFontProcW, (LPARAM)&enumData); 509 510 if(lpszFontFamilyA) FreeAsciiString(lpszFontFamilyA); 502 511 return rc; 503 512 } … … 505 514 //****************************************************************************** 506 515 ODINFUNCTION5(INT, EnumFontFamiliesExA, 507 HDC, arg1,516 HDC, hdc, 508 517 LPLOGFONTA, arg2, 509 518 FONTENUMPROCEXA, arg3, … … 520 529 enumData.dwFlags = dwFlags; 521 530 522 rc = O32_EnumFontFamilies( arg1, arg2->lfFaceName, &EnumFontProcExA, (LPARAM)&enumData);531 rc = O32_EnumFontFamilies(hdc, arg2->lfFaceName, &EnumFontProcExA, (LPARAM)&enumData); 523 532 524 533 return rc; … … 527 536 //****************************************************************************** 528 537 ODINFUNCTION5(INT, EnumFontFamiliesExW, 529 HDC, arg1,538 HDC, hdc, 530 539 LPLOGFONTW, arg2, 531 540 FONTENUMPROCEXW, arg3, … … 543 552 enumData.dwFlags = dwFlags; 544 553 545 rc = O32_EnumFontFamilies( arg1, astring, &EnumFontProcExW, (LPARAM)&enumData);554 rc = O32_EnumFontFamilies(hdc, astring, &EnumFontProcExW, (LPARAM)&enumData); 546 555 547 556 FreeAsciiString(astring); … … 723 732 switch (flags) { 724 733 case TCI_SRCFONTSIG: 725 while (!(*lpSrc>>index & 0x0001) && index<MAXTCIINDEX) index++;734 while (!(*lpSrc>>index & 0x0001) && index<MAXTCIINDEX) index++; 726 735 break; 727 736 case TCI_SRCCODEPAGE: … … 740 749 //****************************************************************************** 741 750 //****************************************************************************** 751 BOOL WIN32API GetTextMetricsA( HDC hdc, LPTEXTMETRICA pwtm) 752 { 753 BOOL rc; 754 755 rc = O32_GetTextMetrics(hdc, pwtm); 756 dprintf(("GDI32: GetTextMetricsA %x %x returned %d", hdc, pwtm, rc)); 757 return(rc); 758 } 759 //****************************************************************************** 760 //****************************************************************************** 761 BOOL WIN32API GetTextMetricsW( HDC hdc, LPTEXTMETRICW pwtm) 762 { 763 BOOL rc; 764 TEXTMETRICA atm; 765 766 dprintf(("GDI32: GetTextMetricsW")); 767 768 rc = O32_GetTextMetrics(hdc, &atm); 769 pwtm->tmHeight = atm.tmHeight; 770 pwtm->tmAscent = atm.tmAscent; 771 pwtm->tmDescent = atm.tmDescent; 772 pwtm->tmInternalLeading = atm.tmInternalLeading; 773 pwtm->tmExternalLeading = atm.tmExternalLeading; 774 pwtm->tmAveCharWidth = atm.tmAveCharWidth; 775 pwtm->tmMaxCharWidth = atm.tmMaxCharWidth; 776 pwtm->tmWeight = atm.tmWeight; 777 pwtm->tmOverhang = atm.tmOverhang; 778 pwtm->tmDigitizedAspectX = atm.tmDigitizedAspectX; 779 pwtm->tmDigitizedAspectY = atm.tmDigitizedAspectY; 780 pwtm->tmFirstChar = atm.tmFirstChar; 781 pwtm->tmLastChar = atm.tmLastChar; 782 pwtm->tmDefaultChar = atm.tmDefaultChar; 783 pwtm->tmBreakChar = atm.tmBreakChar; 784 pwtm->tmItalic = atm.tmItalic; 785 pwtm->tmUnderlined = atm.tmUnderlined; 786 pwtm->tmStruckOut = atm.tmStruckOut; 787 pwtm->tmPitchAndFamily = atm.tmPitchAndFamily; 788 pwtm->tmCharSet = atm.tmCharSet; 789 790 dprintf(("GDI32: GetTextMetricsW %x %x returned %d", hdc, pwtm, rc)); 791 return(rc); 792 } 793 //****************************************************************************** 794 //****************************************************************************** 795 int WIN32API GetTextFaceA( HDC hdc, int arg2, LPSTR arg3) 796 { 797 dprintf(("GDI32: GetTextFaceA %x %d %x", hdc, arg2, arg3)); 798 return O32_GetTextFace(hdc, arg2, arg3); 799 } 800 //****************************************************************************** 801 //****************************************************************************** 802 int WIN32API GetTextFaceW( HDC hdc, int arg2, LPWSTR arg3) 803 { 804 char *astring = (char *)malloc(arg2+1); 805 int rc; 806 807 dprintf(("GDI32: GetTextFaceW")); 808 *astring = 0; 809 rc = GetTextFaceA(hdc, arg2, astring); 810 AsciiToUnicode(astring, arg3); 811 free(astring); 812 return rc; 813 } 814 //****************************************************************************** 815 //****************************************************************************** 816 UINT WIN32API GetOutlineTextMetricsA( HDC hdc, UINT arg2, LPOUTLINETEXTMETRICA arg3) 817 { 818 dprintf(("GDI32: GetOutlineTextMetricsA %x %x %x", hdc, arg2, arg3)); 819 return O32_GetOutlineTextMetrics(hdc, arg2, arg3); 820 } 821 //****************************************************************************** 822 //****************************************************************************** 823 UINT WIN32API GetOutlineTextMetricsW( HDC hdc, UINT arg2, LPOUTLINETEXTMETRICW arg3) 824 { 825 dprintf(("!ERROR!: GDI32: GetOutlineTextMetricsW STUB")); 826 // NOTE: This will not work as is (needs UNICODE support) 827 // return O32_GetOutlineTextMetrics(hdc, arg2, arg3); 828 return 0; 829 } 830 //****************************************************************************** 831 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.