Index: vcl/unx/inc/kdeint.hxx =================================================================== RCS file: /cvs/gsl/vcl/unx/inc/kdeint.hxx,v retrieving revision 1.4 diff -u -3 -p -r1.4 kdeint.hxx --- vcl/unx/inc/kdeint.hxx 10 Jun 2002 17:27:27 -0000 1.4 +++ vcl/unx/inc/kdeint.hxx 22 Oct 2003 17:14:11 -0000 @@ -74,6 +74,8 @@ class KDEIntegrator : public DtIntegrato private: KDEIntegrator( SalFrame* ); + Font parseKDEFont( const ByteString& rLine ); + public: virtual ~KDEIntegrator(); Index: vcl/unx/source/gdi/kdeint.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/source/gdi/kdeint.cxx,v retrieving revision 1.10 diff -u -3 -p -r1.10 kdeint.cxx --- vcl/unx/source/gdi/kdeint.cxx 16 Jul 2003 17:46:57 -0000 1.10 +++ vcl/unx/source/gdi/kdeint.cxx 23 Oct 2003 09:34:24 -0000 @@ -89,6 +89,46 @@ static char* pTryFiles[] = "~/.kderc" }; +Font KDEIntegrator::parseKDEFont( const ByteString& rLine ) +{ + rtl_TextEncoding aEncoding = osl_getThreadTextEncoding(); + + Font aFont; + xub_StrLen nIndex = 0; + + ByteString aToken = rLine.GetToken( 0, ',', nIndex ); + + if( aToken.Len() ) { + aFont.SetName( String( aToken, osl_getThreadTextEncoding() ) ); + } + + aToken = rLine.GetToken( 0, ',', nIndex ); + aFont.SetHeight( aToken.ToInt32() ); + + aToken = rLine.GetToken( 2, ',', nIndex ); + + if( aToken.Len() ) { + int nWeight = aToken.ToInt32(); + if( nWeight < 30) { + aFont.SetWeight( WEIGHT_LIGHT ); + } + else if( nWeight > 70) { + aFont.SetWeight( WEIGHT_BOLD ); + } + } + + aToken = rLine.GetToken( 0, ',', nIndex ); + if( aToken.Len() ) { + int nItalic = aToken.ToInt32(); + if( nItalic == 1) { + aFont.SetItalic( ITALIC_NORMAL ); + } + } + + return aFont; + +} + void KDEIntegrator::GetSystemLook( AllSettings& rSettings ) { rtl_TextEncoding aEncoding = osl_getThreadTextEncoding(); @@ -227,12 +267,10 @@ void KDEIntegrator::GetSystemLook( AllSe aLine = aConfig.ReadKey( "font" ); if( aLine.Len() ) { - Font aFont = aStyleSettings.GetAppFont(); - aFont.SetName( String( aLine, gsl_getSystemTextEncoding() ) ); - + Font aFont = parseKDEFont(aLine); + aStyleSettings.SetAppFont( aFont ); aStyleSettings.SetHelpFont( aFont ); - aStyleSettings.SetMenuFont( aFont ); aStyleSettings.SetToolFont( aFont ); aStyleSettings.SetLabelFont( aFont ); aStyleSettings.SetInfoFont( aFont ); @@ -241,6 +279,14 @@ void KDEIntegrator::GetSystemLook( AllSe aStyleSettings.SetFieldFont( aFont ); aStyleSettings.SetIconFont( aFont ); aStyleSettings.SetGroupFont( aFont ); + } + + aLine = aConfig.ReadKey( "menuFont" ); + if( aLine.Len() ) + { + Font aFont = parseKDEFont(aLine); + + aStyleSettings.SetMenuFont( aFont ); } }