summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Weiss <aw@openoffice.org>2001-12-12 17:09:03 +0000
committerArmin Weiss <aw@openoffice.org>2001-12-12 17:09:03 +0000
commit048fa5a6738f6dc96d42a140d2cb06e4d17ae643 (patch)
tree073a43552217b40345ead0b431a1d046165e8c6e
parent50d21a3cc0020cf752c6ac50f2220f1f0c9a2a12 (diff)
#95114# set application-language specific dynamic pool language defaults
-rw-r--r--svx/source/svdraw/svdmodel.cxx76
1 files changed, 68 insertions, 8 deletions
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
index 1733cf6e2de1..f8e052c4793c 100644
--- a/svx/source/svdraw/svdmodel.cxx
+++ b/svx/source/svdraw/svdmodel.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: svdmodel.cxx,v $
*
- * $Revision: 1.42 $
+ * $Revision: 1.43 $
*
- * last change: $Author: cl $ $Date: 2001-12-06 10:41:03 $
+ * last change: $Author: aw $ $Date: 2001-12-12 18:09:03 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -160,6 +160,11 @@
#include <svtools/syslocale.hxx>
#endif
+// #95114#
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
using namespace ::com::sun::star;
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -886,18 +891,73 @@ void SdrModel::SetTextDefaults() const
SetTextDefaults( pItemPool, nDefTextHgt );
}
+void ImpGetDefaultFontsLanguage( SvxFontItem& rLatin, SvxFontItem& rAsian, SvxFontItem& rComplex)
+{
+ const USHORT nItemCnt = 3;
+ static struct {
+ USHORT nFntType, nLanguage;
+ } aOutTypeArr[ nItemCnt ] = {
+ { DEFAULTFONT_LATIN_TEXT, LANGUAGE_ENGLISH_US },
+ { DEFAULTFONT_CJK_TEXT, LANGUAGE_ENGLISH_US },
+ { DEFAULTFONT_CTL_TEXT, LANGUAGE_ARABIC_SAUDI_ARABIA }
+ };
+ SvxFontItem* aItemArr[ nItemCnt ] = { &rLatin, &rAsian, &rComplex };
+
+ for( USHORT n = 0; n < nItemCnt; ++n )
+ {
+ Font aFnt( OutputDevice::GetDefaultFont(
+ aOutTypeArr[ n ].nFntType, aOutTypeArr[ n ].nLanguage,
+ DEFAULTFONT_FLAGS_ONLYONE, 0 ));
+ SvxFontItem* pI = aItemArr[ n ];
+ pI->GetFamily() = aFnt.GetFamily();
+ pI->GetFamilyName() = aFnt.GetName();
+ pI->GetStyleName().Erase();
+ pI->GetPitch() = aFnt.GetPitch();
+ pI->GetCharSet() = aFnt.GetCharSet();
+ }
+}
+
void SdrModel::SetTextDefaults( SfxItemPool* pItemPool, ULONG nDefTextHgt )
{
+ // #95114# set application-language specific dynamic pool language defaults
SvxFontItem aSvxFontItem;
- SvxFontItem aSvxFontItemCJK( EE_CHAR_FONTINFO_CJK );
- SvxFontItem aSvxFontItemCTL( EE_CHAR_FONTINFO_CTL );
- GetDefaultFonts( aSvxFontItem, aSvxFontItemCJK, aSvxFontItemCTL );
- pItemPool->SetPoolDefaultItem( aSvxFontItem );
- pItemPool->SetPoolDefaultItem( aSvxFontItemCJK );
- pItemPool->SetPoolDefaultItem( aSvxFontItemCTL );
+ SvxFontItem aSvxFontItemCJK(EE_CHAR_FONTINFO_CJK);
+ SvxFontItem aSvxFontItemCTL(EE_CHAR_FONTINFO_CTL);
+ sal_uInt16 nLanguage(Application::GetSettings().GetLanguage());
+
+ // get DEFAULTFONT_LATIN_TEXT and set at pool as dynamic default
+ Font aFont(OutputDevice::GetDefaultFont(DEFAULTFONT_LATIN_TEXT, nLanguage, DEFAULTFONT_FLAGS_ONLYONE, 0));
+ aSvxFontItem.GetFamily() = aFont.GetFamily();
+ aSvxFontItem.GetFamilyName() = aFont.GetName();
+ aSvxFontItem.GetStyleName().Erase();
+ aSvxFontItem.GetPitch() = aFont.GetPitch();
+ aSvxFontItem.GetCharSet() = aFont.GetCharSet();
+ pItemPool->SetPoolDefaultItem(aSvxFontItem);
+
+ // get DEFAULTFONT_CJK_TEXT and set at pool as dynamic default
+ Font aFontCJK(OutputDevice::GetDefaultFont(DEFAULTFONT_CJK_TEXT, nLanguage, DEFAULTFONT_FLAGS_ONLYONE, 0));
+ aSvxFontItemCJK.GetFamily() = aFontCJK.GetFamily();
+ aSvxFontItemCJK.GetFamilyName() = aFontCJK.GetName();
+ aSvxFontItemCJK.GetStyleName().Erase();
+ aSvxFontItemCJK.GetPitch() = aFontCJK.GetPitch();
+ aSvxFontItemCJK.GetCharSet() = aFontCJK.GetCharSet();
+ pItemPool->SetPoolDefaultItem(aSvxFontItemCJK);
+
+ // get DEFAULTFONT_CTL_TEXT and set at pool as dynamic default
+ Font aFontCTL(OutputDevice::GetDefaultFont(DEFAULTFONT_CTL_TEXT, nLanguage, DEFAULTFONT_FLAGS_ONLYONE, 0));
+ aSvxFontItemCTL.GetFamily() = aFontCTL.GetFamily();
+ aSvxFontItemCTL.GetFamilyName() = aFontCTL.GetName();
+ aSvxFontItemCTL.GetStyleName().Erase();
+ aSvxFontItemCTL.GetPitch() = aFontCTL.GetPitch();
+ aSvxFontItemCTL.GetCharSet() = aFontCTL.GetCharSet();
+ pItemPool->SetPoolDefaultItem(aSvxFontItemCTL);
+
+ // set dynamic FontHeight defaults
pItemPool->SetPoolDefaultItem( SvxFontHeightItem(nDefTextHgt, 100, EE_CHAR_FONTHEIGHT ) );
pItemPool->SetPoolDefaultItem( SvxFontHeightItem(nDefTextHgt, 100, EE_CHAR_FONTHEIGHT_CJK ) );
pItemPool->SetPoolDefaultItem( SvxFontHeightItem(nDefTextHgt, 100, EE_CHAR_FONTHEIGHT_CTL ) );
+
+ // set FontColor defaults
pItemPool->SetPoolDefaultItem( SvxColorItem(SdrEngineDefaults::GetFontColor()) );
}