From 0c81e3b4521f75106b5c8694cf798dda74b15256 Mon Sep 17 00:00:00 2001 From: Cyril Deguet Date: Sun, 21 Mar 2004 20:39:43 +0000 Subject: [PATCH] * moved the default font in share/skins2/fonts * parser/builder.cpp: a font with ID "defaultfont" is loaded from the common font directory --- modules/gui/skins2/parser/builder.cpp | 42 +++++++++++++++++++++++--- modules/gui/skins2/parser/builder.hpp | 3 ++ share/skins2/{ => fonts}/FreeSans.ttf | Bin 3 files changed, 41 insertions(+), 4 deletions(-) rename share/skins2/{ => fonts}/FreeSans.ttf (100%) diff --git a/modules/gui/skins2/parser/builder.cpp b/modules/gui/skins2/parser/builder.cpp index 3002e90867..c3dfa384f0 100755 --- a/modules/gui/skins2/parser/builder.cpp +++ b/modules/gui/skins2/parser/builder.cpp @@ -116,8 +116,16 @@ void Builder::addTheme( const BuilderData::Theme &rData ) rManager.setMagnetValue( rData.m_magnet ); rManager.setAlphaValue( rData.m_alpha ); rManager.setMoveAlphaValue( rData.m_moveAlpha ); - GenericFont *pFont = new FT2Font( getIntf(), "FreeSans.ttf", 12 ); - pFont->init(); + GenericFont *pFont = getFont( rData.m_tooltipfont ); + if( pFont ) + { + rManager.createTooltip( *pFont ); + } + else + { + msg_Warn( getIntf(), "Invalid tooltip font: %s", + rData.m_tooltipfont.c_str() ); + } } @@ -381,7 +389,7 @@ void Builder::addText( const BuilderData::Text &rData ) return; } - GenericFont *pFont = m_pTheme->m_fonts[rData.m_fontId].get(); + GenericFont *pFont = getFont( rData.m_fontId ); if( pFont == NULL ) { msg_Err( getIntf(), "Unknown font id: %s", rData.m_fontId.c_str() ); @@ -524,7 +532,7 @@ void Builder::addList( const BuilderData::List &rData ) return; } - GenericFont *pFont = m_pTheme->m_fonts[rData.m_fontId].get(); + GenericFont *pFont = getFont( rData.m_fontId ); if( pFont == NULL ) { msg_Err( getIntf(), "Unknown font id: %s", rData.m_fontId.c_str() ); @@ -651,6 +659,32 @@ const Position Builder::makePosition( const string &rLeftTop, } +GenericFont *Builder::getFont( const string &fontId ) +{ + GenericFont *pFont = m_pTheme->m_fonts[fontId].get(); + if( !pFont && fontId == "defaultfont" ) + { +#ifdef WIN32_SKINS + string defaultFont = (string)getIntf()->p_libvlc->psz_vlcpath + + "\\skins2\\fonts\\FreeSans.ttf"; +#else + string defaultFont = (string)DATA_PATH + "/skins2/fonts/FreeSans.ttf"; +#endif + pFont = new FT2Font( getIntf(), defaultFont, 12 ); + if( pFont->init() ) + { + m_pTheme->m_fonts["defaultfont"] = GenericFontPtr( pFont ); + } + else + { + delete pFont; + pFont = NULL; + } + } + return pFont; +} + + Bezier *Builder::getPoints( const char *pTag ) const { vector xBez, yBez; diff --git a/modules/gui/skins2/parser/builder.hpp b/modules/gui/skins2/parser/builder.hpp index 41658dfdc3..6194a34740 100644 --- a/modules/gui/skins2/parser/builder.hpp +++ b/modules/gui/skins2/parser/builder.hpp @@ -84,6 +84,9 @@ class Builder: public SkinObject int xPos, int yPos, int width, int height, const Box &rBox ) const; + /// Get a font from its id + GenericFont *getFont( const string &fontId ); + /// Function to parse "points" tags Bezier *getPoints( const char *pTag ) const; }; diff --git a/share/skins2/FreeSans.ttf b/share/skins2/fonts/FreeSans.ttf similarity index 100% rename from share/skins2/FreeSans.ttf rename to share/skins2/fonts/FreeSans.ttf -- 2.39.2