Font updates

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Webster
2002-08-21 22:46:05 +00:00
parent 6a6ff5640d
commit a4353f07c6
4 changed files with 64 additions and 50 deletions

View File

@@ -441,7 +441,7 @@ bool wxFontRefData::Alloc(
m_nFamily = wxROMAN; m_nFamily = wxROMAN;
else if (strcmp(m_vNativeFontInfo.fm.szFamilyname, "WarpSans") == 0) else if (strcmp(m_vNativeFontInfo.fm.szFamilyname, "WarpSans") == 0)
m_nFamily = wxDECORATIVE; m_nFamily = wxDECORATIVE;
else if (strcmp(m_vNativeFontInfo.fm.szFamilyname, "Helvitica") == 0) else if (strcmp(m_vNativeFontInfo.fm.szFamilyname, "Helvetica") == 0)
m_nFamily = wxSWISS; m_nFamily = wxSWISS;
else if (strcmp(m_vNativeFontInfo.fm.szFamilyname, "Helv") == 0) else if (strcmp(m_vNativeFontInfo.fm.szFamilyname, "Helv") == 0)
m_nFamily = wxSWISS; m_nFamily = wxSWISS;
@@ -600,7 +600,7 @@ wxFontFamily wxNativeFontInfo::GetFamily() const
nFamily = wxROMAN; nFamily = wxROMAN;
else if (strcmp(fm.szFamilyname, "WarpSans") == 0) else if (strcmp(fm.szFamilyname, "WarpSans") == 0)
nFamily = wxDECORATIVE; nFamily = wxDECORATIVE;
else if (strcmp(fm.szFamilyname, "Helvitica") == 0) else if (strcmp(fm.szFamilyname, "Helvetica") == 0)
nFamily = wxSWISS; nFamily = wxSWISS;
else if (strcmp(fm.szFamilyname, "Helv") == 0) else if (strcmp(fm.szFamilyname, "Helv") == 0)
nFamily = wxSWISS; nFamily = wxSWISS;

View File

@@ -74,42 +74,23 @@ int wxFontDialog::ShowModal()
vFn.usWeightClass = vFontDlg.usWeight; vFn.usWeightClass = vFontDlg.usWeight;
vFn.usWidthClass = vFontDlg.usWidth; vFn.usWidthClass = vFontDlg.usWidth;
memcpy(&vInfo.fa, &vFontDlg.fAttrs, sizeof(FATTRS)); memset(&vInfo.fa, '\0', sizeof(FATTRS));
memcpy(&vInfo.fn, &vFn, sizeof(FACENAMEDESC)); memcpy(&vInfo.fn, &vFn, sizeof(FACENAMEDESC));
vInfo.fa.usRecordLength = vFontDlg.fAttrs.usRecordLength;
strcpy(vInfo.fa.szFacename, vFontDlg.fAttrs.szFacename);
vInfo.fa.lMatch = vFontDlg.fAttrs.lMatch;
// //
// Debugging // Debugging
// //
wxFont vChosenFont(vInfo); wxFont vChosenFont(vInfo);
int nFamily; int nPointSize = vFontDlg.fxPointSize >> 16;
int nPointSize = vFontDlg.lEmHeight;
int nStyle;
int nWeight;
bool bUnderlined;
wxString sFaceName;
wxNativeFontInfo* pInfo;
vChosenFont.SetPointSize(nPointSize); vChosenFont.SetPointSize(nPointSize);
nFamily = vChosenFont.GetFamily();
nPointSize = vChosenFont.GetPointSize();
nStyle = vChosenFont.GetStyle();
nWeight = vChosenFont.GetWeight();
bUnderlined = vChosenFont.GetUnderlined();
sFaceName = vChosenFont.GetFaceName();
pInfo = vChosenFont.GetNativeFontInfo();
m_fontData.chosenFont = vChosenFont; m_fontData.chosenFont = vChosenFont;
nFamily = m_fontData.chosenFont.GetFamily();
nPointSize = m_fontData.chosenFont.GetPointSize();
nStyle = m_fontData.chosenFont.GetStyle();
nWeight = m_fontData.chosenFont.GetWeight();
bUnderlined = m_fontData.chosenFont.GetUnderlined();
sFaceName = m_fontData.chosenFont.GetFaceName();
pInfo = m_fontData.chosenFont.GetNativeFontInfo();
m_fontData.EncodingInfo().facename = vFontDlg.fAttrs.szFacename; m_fontData.EncodingInfo().facename = vFontDlg.fAttrs.szFacename;
m_fontData.EncodingInfo().charset = vFontDlg.fAttrs.usCodePage; m_fontData.EncodingInfo().charset = vFontDlg.fAttrs.usCodePage;

View File

@@ -258,6 +258,44 @@ bool wxTestFontEncoding(
// wxFont <-> LOGFONT conversion // wxFont <-> LOGFONT conversion
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
void wxConvertVectorFontSize(
FIXED fxPointSize
, PFATTRS pFattrs
)
{
HPS hPS;
HDC hDC;
LONG lXFontResolution;
LONG lYFontResolution;
SIZEF vSizef;
hPS = WinGetScreenPS(HWND_DESKTOP); // Screen presentation space
//
// Query device context for the screen and then query
// the resolution of the device for the device context.
//
hDC = GpiQueryDevice(hPS);
DevQueryCaps( hDC, CAPS_HORIZONTAL_FONT_RES, (LONG)1, &lXFontResolution);
DevQueryCaps( hDC, CAPS_VERTICAL_FONT_RES, (LONG)1, &lYFontResolution);
//
// Calculate the size of the character box, based on the
// point size selected and the resolution of the device.
// The size parameters are of type FIXED, NOT int.
// NOTE: 1 point == 1/72 of an inch.
//
vSizef.cx = (FIXED)(((fxPointSize) / 72 ) * lXFontResolution );
vSizef.cy = (FIXED)(((fxPointSize) / 72 ) * lYFontResolution );
pFattrs->lMaxBaselineExt = MAKELONG( HIUSHORT( vSizef.cy ), 0 );
pFattrs->lAveCharWidth = MAKELONG( HIUSHORT( vSizef.cx ), 0 );
WinReleasePS(hPS);
} // end of wxConvertVectorPointSize
void wxFillLogFont( void wxFillLogFont(
LOGFONT* pFattrs // OS2 GPI FATTRS LOGFONT* pFattrs // OS2 GPI FATTRS
, PFACENAMEDESC pFaceName , PFACENAMEDESC pFaceName
@@ -327,8 +365,7 @@ void wxFillLogFont(
// Initialize FATTR and FACENAMEDESC // Initialize FATTR and FACENAMEDESC
// //
pFattrs->usRecordLength = sizeof(FATTRS); pFattrs->usRecordLength = sizeof(FATTRS);
pFattrs->fsFontUse = FATTR_FONTUSE_OUTLINE | // only outline fonts allowed pFattrs->fsFontUse = FATTR_FONTUSE_OUTLINE; // only outline fonts allowed
FATTR_FONTUSE_TRANSFORMABLE; // may be transformed
pFattrs->fsType = 0; pFattrs->fsType = 0;
pFattrs->lMaxBaselineExt = pFattrs->lAveCharWidth = 0; pFattrs->lMaxBaselineExt = pFattrs->lAveCharWidth = 0;
pFattrs->idRegistry = 0; pFattrs->idRegistry = 0;
@@ -602,30 +639,24 @@ void wxOS2SelectMatchingFontByName(
// Fill in the FATTRS with the best match from FONTMETRICS // Fill in the FATTRS with the best match from FONTMETRICS
// //
pFattrs->usRecordLength = sizeof(FATTRS); // Sets size of structure pFattrs->usRecordLength = sizeof(FATTRS); // Sets size of structure
pFattrs->fsSelection = pFM[nIndex].fsSelection; // Uses default selection
pFattrs->lMatch = pFM[nIndex].lMatch; // Force match pFattrs->lMatch = pFM[nIndex].lMatch; // Force match
pFattrs->idRegistry = pFM[nIndex].idRegistry; // Uses default registry pFattrs->idRegistry = 0; // Registry
pFattrs->usCodePage = pFM[nIndex].usCodePage; // Code-page pFattrs->usCodePage = 0; // Match proper CodePage
pFattrs->fsType = 0; // Uses default type pFattrs->fsFontUse = 0; // Use only outline fonts
pFattrs->lMaxBaselineExt = 0; pFattrs->fsType = 0; // Use only outline fonts
pFattrs->lAveCharWidth = 0; pFattrs->lMaxBaselineExt = 0; // Use only outline fonts
pFattrs->fsFontUse = FATTR_FONTUSE_OUTLINE | // only outline fonts allowed pFattrs->lAveCharWidth = 0; // Use only outline fonts
FATTR_FONTUSE_TRANSFORMABLE; // may be transformed
#if 0
pFattrs->lMaxBaselineExt = pFM[nIndex].lMaxBaselineExt;
pFattrs->lAveCharWidth = pFM[nIndex].lAveCharWidth;
#endif
wxStrcpy(pFattrs->szFacename, pFM[nIndex].szFacename); wxStrcpy(pFattrs->szFacename, pFM[nIndex].szFacename);
// Debug if (pFont->GetWeight() == wxNORMAL)
strcpy(zFontFaceName, pFM[nIndex].szFacename); pFattrs->fsSelection = 0;
strcpy(zFontFaceName, pFattrs->szFacename); else
pFattrs->fsSelection = FATTR_SEL_BOLD;
if(usWeightClass >= FWEIGHT_BOLD) if (pFont->GetStyle() == wxITALIC || pFont->GetStyle() == wxSLANT)
pFattrs->fsSelection |= FATTR_SEL_BOLD;
if(pFont->GetUnderlined())
pFattrs->fsSelection |= FATTR_SEL_UNDERSCORE;
if(fsSelection & FM_SEL_ITALIC)
pFattrs->fsSelection |= FATTR_SEL_ITALIC; pFattrs->fsSelection |= FATTR_SEL_ITALIC;
if (pFont->GetUnderlined())
pFattrs->fsSelection |= FATTR_SEL_UNDERSCORE;
} // end of wxOS2SelectMatchingFontByName } // end of wxOS2SelectMatchingFontByName
wxFont wxCreateFontFromLogFont( wxFont wxCreateFontFromLogFont(

View File

@@ -4,7 +4,7 @@ DATA MULTIPLE NONSHARED READWRITE LOADONCALL
CODE LOADONCALL CODE LOADONCALL
EXPORTS EXPORTS
;From library: H:\DEV\WX2\WXWINDOWS\LIB\wx.lib ;From library: H:\DEV\WX2\WXWINDOWS\lib\wx.lib
;From object file: dummy.cpp ;From object file: dummy.cpp
;PUBDEFs (Symbols available from object file): ;PUBDEFs (Symbols available from object file):
wxDummyChar wxDummyChar
@@ -12803,6 +12803,8 @@ EXPORTS
wxFillLogFont__FP7_FATTRSP13_FACENAMEDESCPUlT3PlR8wxStringP6wxFont wxFillLogFont__FP7_FATTRSP13_FACENAMEDESCPUlT3PlR8wxStringP6wxFont
;wxGetNativeFontEncoding(wxFontEncoding,wxNativeEncodingInfo*) ;wxGetNativeFontEncoding(wxFontEncoding,wxNativeEncodingInfo*)
wxGetNativeFontEncoding__F14wxFontEncodingP20wxNativeEncodingInfo wxGetNativeFontEncoding__F14wxFontEncodingP20wxNativeEncodingInfo
;wxConvertVectorFontSize(long,_FATTRS*)
wxConvertVectorFontSize__FlP7_FATTRS
;wxOS2SelectMatchingFontByName(_FATTRS*,_FACENAMEDESC*,_FONTMETRICS*,int,const wxFont*) ;wxOS2SelectMatchingFontByName(_FATTRS*,_FACENAMEDESC*,_FONTMETRICS*,int,const wxFont*)
wxOS2SelectMatchingFontByName__FP7_FATTRSP13_FACENAMEDESCP12_FONTMETRICSiPC6wxFont wxOS2SelectMatchingFontByName__FP7_FATTRSP13_FACENAMEDESCP12_FONTMETRICSiPC6wxFont
;wxGpiStrcmp(char*,char*) ;wxGpiStrcmp(char*,char*)