//////////////////////////////////////////////////////////////////// // Public functions // void CDrawField::Draw( int page, CDC* dc ) /* ============================================================ Function : CDrawField::Draw Description : Draws this object. Access : Public Return : void Parameters : int page - Current page CDC* dc - CDC to draw to Usage : Called by the generator to draw the object. ============================================================*/ { CString title = GetTitle(); CDoubleRect rect = GetPosition(); CUnitConversion::InchesToPixels( rect ); CRect r( static_cast< int >( rect.left ), static_cast< int >( rect.top ), static_cast< int >( rect.right ), static_cast< int >( rect.bottom ) ); CUnitConversion::AdjustPixelsToPaper( dc, r ); LOGFONT lf; ZeroMemory( &lf, sizeof( lf ) ); lstrcpy( lf.lfFaceName, GetFontName() ); lf.lfHeight = CUnitConversion::PointsToPixels( static_cast< double >( GetFontSize() ) / 10.0 ); lf.lfItalic = static_cast< BYTE >( GetFontItalic() ); lf.lfUnderline = static_cast< BYTE >( GetFontUnderline() ); lf.lfStrikeOut = static_cast< BYTE >( GetFontStrikeout() ); lf.lfCharSet = static_cast< BYTE >( GetFontCharset() ); if( GetFontBold() ) lf.lfWeight = FW_BOLD; else lf.lfWeight = FW_NORMAL; if( IsBold( title ) ) lf.lfWeight = FW_BOLD; if( IsItalic( title ) ) lf.lfItalic = TRUE; CFont font; font.CreateFontIndirect( &lf ); dc->SelectObject( &font ); int color = dc->SetTextColor( GetFontColor() ); int mode = dc->SetBkMode( TRANSPARENT ); int justification = GetJustification(); ReplaceFields( page, title ); dc->DrawText( title, r, DT_NOPREFIX | DT_WORDBREAK | justification ); dc->SetBkMode( mode ); dc->SetTextColor( color ); dc->SelectStockObject( ANSI_VAR_FONT ); }
wxFont* CHtmlWinParser::CreateCurrentFont() { int fb = GetFontBold(), fi = GetFontItalic(), fu = GetFontUnderlined(), ff = GetFontFixed(), fs = GetFontSize() - 1 /*remap from <1;7> to <0;6>*/ ; wxString face = ff ? m_FontFaceFixed : m_FontFaceNormal; wxString *faceptr = &(m_FontsFacesTable[fb][fi][fu][ff][fs]); wxFont **fontptr = &(m_FontsTable[fb][fi][fu][ff][fs]); #if !wxUSE_UNICODE wxFontEncoding *encptr = &(m_FontsEncTable[fb][fi][fu][ff][fs]); #endif if (*fontptr != NULL && (*faceptr != face #if !wxUSE_UNICODE || *encptr != m_OutputEnc #endif )) { delete *fontptr; *fontptr = NULL; } if (*fontptr == NULL) { *faceptr = face; *fontptr = new wxFont( (int) (m_FontsSizes[fs] * m_PixelScale), ff ? wxMODERN : wxSWISS, fi ? wxITALIC : wxNORMAL, fb ? wxBOLD : wxNORMAL, fu ? true : false, face #if wxUSE_UNICODE ); #else , m_OutputEnc);