Index: svtools/util/makefile.mk =================================================================== RCS file: /cvs/util/svtools/util/makefile.mk,v retrieving revision 1.59 diff -u -r1.59 makefile.mk --- svtools/util/makefile.mk 19 Jun 2006 21:29:51 -0000 1.59 +++ svtools/util/makefile.mk 26 Oct 2007 12:22:03 -0000 @@ -158,6 +158,9 @@ $(ICUUCLIB) \ $(JVMFWKLIB) +SHL1STDLIBS+=\ + $(ICUINLIB) + .IF "$(OS)"=="MACOSX" # static libraries go at end SHL1STDLIBS+= $(JPEG3RDLIB) Index: svtools/inc/ctrlbox.hxx =================================================================== RCS file: /cvs/util/svtools/inc/ctrlbox.hxx,v retrieving revision 1.12.204.2 diff -u -r1.12.204.2 ctrlbox.hxx --- svtools/inc/ctrlbox.hxx 19 Jan 2007 16:18:39 -0000 1.12.204.2 +++ svtools/inc/ctrlbox.hxx 26 Oct 2007 12:22:04 -0000 @@ -59,6 +59,9 @@ #include #endif +#include +#include + class ImplFontList; class ImpColorList; class ImpLineList; @@ -224,6 +227,7 @@ void SetEntryData( USHORT nPos, void* pNewData ); void* GetEntryData( USHORT nPos ) const; + }; inline void ColorListBox::SelectEntry( const Color& rColor, BOOL bSelect ) @@ -413,6 +417,7 @@ // declared as private because some compilers would generate the default functions FontNameBox( const FontNameBox& ); FontNameBox& operator =( const FontNameBox& ); + void getExampleText(const char *localeID, String& aTestText) ; }; // ---------------- Index: svtools/source/control/ctrlbox.cxx =================================================================== RCS file: /cvs/util/svtools/source/control/ctrlbox.cxx,v retrieving revision 1.21.86.2 diff -u -r1.21.86.2 ctrlbox.cxx --- svtools/source/control/ctrlbox.cxx 19 Jan 2007 16:18:52 -0000 1.21.86.2 +++ svtools/source/control/ctrlbox.cxx 26 Oct 2007 12:22:04 -0000 @@ -61,6 +61,13 @@ #include +#include +#include + +#ifndef _SVTOOLS_LANGUAGEOPTIONS_HXX +#include +#endif + #define IMGTEXTSPACE 2 #define EXTRAFONTSIZE 5 @@ -759,7 +766,8 @@ || aFontName.EqualsIgnoreCaseAscii( "opensymbol" ) ) bSymbolFont = bStarSymbol = TRUE; } - + + nMaxLen += 6; // Since we want to add " - ABC" or some other sample // guess maximimum width Size aOneCharSz( GetTextWidth( String( 'X' ) ), GetTextHeight() ); Size aSz( aOneCharSz ); @@ -790,6 +798,27 @@ } // ------------------------------------------------------------------- +void FontNameBox::getExampleText(const char *localeID, String& aTestText) +{ + UErrorCode status = U_ZERO_ERROR; + ULocaleData * uld = ulocdata_open(localeID, &status); + if (U_FAILURE(status)) + return; + uint32_t options = USET_CASE_INSENSITIVE; + ULocaleDataExemplarSetType extype = ULOCDATA_ES_STANDARD,; + USet* pUSet = ulocdata_getExemplarSet (uld, 0, options, extype, &status ) ; + UChar32 char1 = uset_charAt(pUSet,0); + UChar32 char2 = uset_charAt(pUSet,1); + UChar32 char3 = uset_charAt(pUSet,2); + + aTestText.Append( (sal_Unicode)char1); + aTestText.Append( (sal_Unicode)char2); + aTestText.Append( (sal_Unicode)char3); + + uset_close(pUSet); + ulocdata_close(uld); +} +// ------------------------------------------------------------------- void FontNameBox::UserDraw( const UserDrawEvent& rUDEvt ) { @@ -851,9 +880,43 @@ long nTextHeight = rUDEvt.GetDevice()->GetTextHeight(); Point aPos( nX, aTopLeft.Y() + (nH-nTextHeight)/2 ); + bool bHasCTL = false; + bool bHasWestern = false; + String aCTLText, aWesternText; + SvtLanguageOptions aLanguageOptions; + + if ( aLanguageOptions.IsCTLFontEnabled() ) + { + SvtLinguConfig* pImplLinguConfig = new SvtLinguConfig(); + SvtLinguOptions aLinguOptions; + bool bOptionRet = pImplLinguConfig->GetOptions(aLinguOptions); + + INT16 nDefaultWestern = aLinguOptions.nDefaultLanguage; + INT16 nDefaultCTL = aLinguOptions.nDefaultLanguage_CTL; + + rtl::OString rLangStr = MsLangId::convertLanguageToIsoByteString(nDefaultWestern); + rtl::OString rLangStrCTL = MsLangId::convertLanguageToIsoByteString(nDefaultCTL); + + getExampleText(rLangStr.getStr(),aWesternText); + getExampleText(rLangStrCTL.getStr(),aCTLText); + + bHasCTL = HasGlyphs( aFont, aCTLText ) >= aCTLText.Len(); + bHasWestern = HasGlyphs( aFont, aWesternText ) >= aWesternText.Len(); + } + String aString; if( !bSymbolFont ) + { aString = rInfo.GetName(); + if (bHasCTL || bHasWestern) + { + aString.AppendAscii( " - " ); + if (bHasCTL) + aString += aCTLText; + else + aString += aWesternText; + } + } else { // use some sample characters available in the font