summaryrefslogtreecommitdiff
path: root/sd/source/ui/func/bulmaper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/func/bulmaper.cxx')
-rw-r--r--sd/source/ui/func/bulmaper.cxx191
1 files changed, 191 insertions, 0 deletions
diff --git a/sd/source/ui/func/bulmaper.cxx b/sd/source/ui/func/bulmaper.cxx
new file mode 100644
index 000000000000..1a6e8992a10e
--- /dev/null
+++ b/sd/source/ui/func/bulmaper.cxx
@@ -0,0 +1,191 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sd.hxx"
+
+#ifdef SD_DLLIMPLEMENTATION
+#undef SD_DLLIMPLEMENTATION
+#endif
+
+#ifndef _SVX_SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+
+//-> Fonts & Items
+#include <vcl/font.hxx>
+#include <editeng/fontitem.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/wghtitem.hxx>
+#include <editeng/udlnitem.hxx>
+#include <editeng/crsditem.hxx>
+#include <editeng/postitem.hxx>
+#include <editeng/cntritem.hxx>
+#include <editeng/shdditem.hxx>
+
+//<- Fonts & Items
+#include <editeng/bulitem.hxx>
+#include <editeng/brshitem.hxx>
+#include <vcl/graph.hxx>
+#include <svl/itemset.hxx>
+#include <svl/itempool.hxx>
+#include <editeng/numitem.hxx>
+#include <editeng/eeitem.hxx>
+
+#include "bulmaper.hxx"
+
+
+#define GetWhich(nSlot) rSet.GetPool()->GetWhich( nSlot )
+
+/* #i35937#
+
+void SdBulletMapper::PreMapNumBulletForDialog( SfxItemSet& rSet )
+{
+ if( SFX_ITEM_SET == rSet.GetItemState( EE_PARA_NUMBULLET, FALSE ) )
+ {
+ SvxNumRule* pRule = ((SvxNumBulletItem*)rSet.GetItem( EE_PARA_NUMBULLET ))->GetNumRule();
+
+ if(pRule && pRule->GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+ {
+ // 10er Bullet Item auf 9er Item mappen
+ SvxNumRule aNewRule( pRule->GetFeatureFlags(), 9, FALSE, SVX_RULETYPE_PRESENTATION_NUMBERING );
+
+ for( USHORT i = 0; i < 9; i++ )
+ aNewRule.SetLevel(i, pRule->GetLevel(i));
+
+ rSet.Put( SvxNumBulletItem( aNewRule, EE_PARA_NUMBULLET ) );
+ }
+ }
+}
+
+void SdBulletMapper::PostMapNumBulletForDialog( SfxItemSet& rSet )
+{
+ if( SFX_ITEM_SET == rSet.GetItemState( EE_PARA_NUMBULLET, FALSE ) )
+ {
+ SvxNumRule* pRule = ((SvxNumBulletItem*)rSet.GetItem( EE_PARA_NUMBULLET ))->GetNumRule();
+
+ if(pRule)
+ {
+ pRule->UnLinkGraphics();
+ if(pRule->GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+ {
+ // 9er Bullet Item auf 10er Item mappen
+ SvxNumRule aNewRule( pRule->GetFeatureFlags(), 10, FALSE, SVX_RULETYPE_PRESENTATION_NUMBERING );
+
+ for( USHORT i = 0; i < 9; i++ )
+ aNewRule.SetLevel(i, pRule->GetLevel(i));
+
+ rSet.Put( SvxNumBulletItem( aNewRule, EE_PARA_NUMBULLET ) );
+ }
+ }
+ }
+}
+*/
+
+void SdBulletMapper::MapFontsInNumRule( SvxNumRule& aNumRule, const SfxItemSet& rSet )
+{
+ const USHORT nCount = aNumRule.GetLevelCount();
+ for( USHORT nLevel = 0; nLevel < nCount; nLevel++ )
+ {
+ const SvxNumberFormat& rSrcLevel = aNumRule.GetLevel(nLevel);
+ SvxNumberFormat aNewLevel( rSrcLevel );
+
+ if(rSrcLevel.GetNumberingType() != com::sun::star::style::NumberingType::CHAR_SPECIAL &&
+ rSrcLevel.GetNumberingType() != com::sun::star::style::NumberingType::NUMBER_NONE )
+ {
+ // wenn Aufzaehlung statt Bullet gewaehlt wurde, wird der Bullet-Font
+ // dem Vorlagen-Font angeglichen
+
+ // to be implemented if module supports CJK
+ long nFontID = SID_ATTR_CHAR_FONT;
+ long nFontHeightID = SID_ATTR_CHAR_FONTHEIGHT;
+ long nWeightID = SID_ATTR_CHAR_WEIGHT;
+ long nPostureID = SID_ATTR_CHAR_POSTURE;
+
+ if( 0 )
+ {
+ nFontID = EE_CHAR_FONTINFO_CJK;
+ nFontHeightID = EE_CHAR_FONTHEIGHT_CJK;
+ nWeightID = EE_CHAR_WEIGHT_CJK;
+ nPostureID = EE_CHAR_ITALIC_CJK;
+ }
+ else if( 0 )
+ {
+ nFontID = EE_CHAR_FONTINFO_CTL;
+ nFontHeightID = EE_CHAR_FONTHEIGHT_CTL;
+ nWeightID = EE_CHAR_WEIGHT_CTL;
+ nPostureID = EE_CHAR_ITALIC_CTL;
+ }
+
+ Font aMyFont;
+ const SvxFontItem& rFItem =
+ (SvxFontItem&)rSet.Get(GetWhich( (USHORT)nFontID ));
+ aMyFont.SetFamily(rFItem.GetFamily());
+ aMyFont.SetName(rFItem.GetFamilyName());
+ aMyFont.SetCharSet(rFItem.GetCharSet());
+ aMyFont.SetPitch(rFItem.GetPitch());
+
+ const SvxFontHeightItem& rFHItem =
+ (SvxFontHeightItem&)rSet.Get(GetWhich( (USHORT)nFontHeightID ));
+ aMyFont.SetSize(Size(0, rFHItem.GetHeight()));
+
+ const SvxWeightItem& rWItem =
+ (SvxWeightItem&)rSet.Get(GetWhich( (USHORT)nWeightID ));
+ aMyFont.SetWeight(rWItem.GetWeight());
+
+ const SvxPostureItem& rPItem =
+ (SvxPostureItem&)rSet.Get(GetWhich( (USHORT)nPostureID ));
+ aMyFont.SetItalic(rPItem.GetPosture());
+
+ const SvxUnderlineItem& rUItem = (SvxUnderlineItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_UNDERLINE));
+ aMyFont.SetUnderline(rUItem.GetLineStyle());
+
+ const SvxOverlineItem& rOItem = (SvxOverlineItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_OVERLINE));
+ aMyFont.SetOverline(rOItem.GetLineStyle());
+
+ const SvxCrossedOutItem& rCOItem = (SvxCrossedOutItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_STRIKEOUT));
+ aMyFont.SetStrikeout(rCOItem.GetStrikeout());
+
+ const SvxContourItem& rCItem = (SvxContourItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_CONTOUR));
+ aMyFont.SetOutline(rCItem.GetValue());
+
+ const SvxShadowedItem& rSItem = (SvxShadowedItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_SHADOWED));
+ aMyFont.SetShadow(rSItem.GetValue());
+
+ aNewLevel.SetBulletFont(&aMyFont);
+// aNewLevel.SetBulletRelSize( 75 );
+ aNumRule.SetLevel(nLevel, aNewLevel );
+ }
+ else if( rSrcLevel.GetNumberingType() == com::sun::star::style::NumberingType::CHAR_SPECIAL )
+ {
+ String aEmpty;
+ aNewLevel.SetPrefix( aEmpty );
+ aNewLevel.SetSuffix( aEmpty );
+ aNumRule.SetLevel(nLevel, aNewLevel );
+ }
+ }
+}