User: rt      
Date: 2008-06-16 13:28:58+0000
Modified:
   dba/reportdesign/source/core/api/ReportComponent.cxx

Log:
 INTEGRATION: CWS rptchart02 (1.3.2); FILE MERGED
 2008/06/05 10:40:02 oj 1.3.2.1: #i90298# impl asian and complex

File Changes:

Directory: /dba/reportdesign/source/core/api/
=============================================

File [changed]: ReportComponent.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/reportdesign/source/core/api/ReportComponent.cxx?r1=1.3&r2=1.4
Delta lines:  +45 -6
--------------------
--- ReportComponent.cxx 2008-04-10 18:13:32+0000        1.3
+++ ReportComponent.cxx 2008-06-16 13:28:50+0000        1.4
@@ -42,13 +42,36 @@
 #include <com/sun/star/reflection/XProxyFactory.hpp>
 #include <com/sun/star/text/ParagraphVertAlign.hpp>
 #include <svx/unoshape.hxx>
+#include <svx/unolingu.hxx>
 #include <svtools/syslocale.hxx>
+#include <svtools/lingucfg.hxx>
 // 
=============================================================================
 namespace reportdesign
 {
 // 
=============================================================================
        using namespace com::sun::star;
        using namespace comphelper;
+
+void lcl_getDefaultFonts( Font& rLatinFont, Font& rCJKFont, Font& 
rCTLFont,LanguageType  _eLatin,LanguageType _eCJK,LanguageType _eCTL )
+{
+        LanguageType eLatin = _eLatin;
+
+        //      #108374# / #107782#: If the UI language is Korean, the default 
Latin font has to
+        //      be queried for Korean, too (the Latin language from the 
document can't be Korean).
+        //      This is the same logic as in SwDocShell::InitNew.
+        LanguageType eUiLanguage = Application::GetSettings().GetUILanguage();
+        switch( eUiLanguage )
+        {
+                case LANGUAGE_KOREAN:
+                case LANGUAGE_KOREAN_JOHAB:
+                        eLatin = eUiLanguage;
+                break;
+        }
+
+        rLatinFont = OutputDevice::GetDefaultFont( 
DEFAULTFONT_LATIN_PRESENTATION, eLatin, DEFAULTFONT_FLAGS_ONLYONE );
+        rCJKFont = OutputDevice::GetDefaultFont( DEFAULTFONT_CJK_PRESENTATION, 
_eCJK, DEFAULTFONT_FLAGS_ONLYONE );
+        rCTLFont = OutputDevice::GetDefaultFont( DEFAULTFONT_CTL_PRESENTATION, 
_eCTL, DEFAULTFONT_FLAGS_ONLYONE ) ;
+}
 OFormatProperties::OFormatProperties()
        :nAlign(0)
        ,nFontEmphasisMark(0)
@@ -70,13 +93,29 @@
     ,bCharShadowed(sal_False)
     ,bCharContoured(sal_False)
 {
-       Font aInitFont = 
Application::GetDefaultDevice()->GetSettings().GetStyleSettings().GetAppFont();
-       aFontDescriptor = VCLUnoHelper::CreateFontDescriptor(aInitFont);
+    try
+    {
+        SvtLinguConfig aLinguConfig;
+        
aLinguConfig.GetProperty(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultLocale")))
 >>= aCharLocale;
+        LanguageType eCurLang = SvxLocaleToLanguage( aCharLocale );
+        
aLinguConfig.GetProperty(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultLocale_CJK")))
  >>= aCharLocaleAsian;
+        LanguageType eCurLangCJK = SvxLocaleToLanguage( aCharLocaleAsian );
+        
aLinguConfig.GetProperty(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultLocale_CTL")))
  >>= aCharLocaleComplex;
+        LanguageType eCurLangCTL = SvxLocaleToLanguage( aCharLocaleComplex );
+
+        Font aLatin,aCJK,aCTL;
+        lcl_getDefaultFonts(aLatin,aCJK,aCTL,eCurLang,eCurLangCJK,eCurLangCTL);
+        aFontDescriptor = VCLUnoHelper::CreateFontDescriptor(aLatin);
+        aAsianFontDescriptor = VCLUnoHelper::CreateFontDescriptor(aCJK);
+        aComplexFontDescriptor = VCLUnoHelper::CreateFontDescriptor(aCTL);
+    }
+    catch(const uno::Exception&)
+    {
+    }
        aFontDescriptor.Weight = awt::FontWeight::NORMAL;
     aFontDescriptor.CharacterWidth = awt::FontWidth::NORMAL;
-    aCharLocale = SvtSysLocale().GetLocaleData().getLocale();
-    //if ( !aFontDescriptor.StyleName.getLength() )
-    //    aFontDescriptor.StyleName = 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test"));
+
+    // aCharLocale = SvtSysLocale().GetLocaleData().getLocale();
 }
 // 
-----------------------------------------------------------------------------
 void OReportComponentProperties::setShape(uno::Reference< drawing::XShape >& 
_xShape,const uno::Reference< report::XReportComponent>& 
_xTunnel,oslInterlockedCount& _rRefCount)




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to