chart2/source/controller/main/ChartTransferable.cxx     |    6 -
 editeng/source/editeng/editdoc.cxx                      |   28 ++---
 editeng/source/editeng/editview.cxx                     |    2 
 editeng/source/editeng/impedit3.cxx                     |    8 -
 editeng/source/editeng/impedit4.cxx                     |   15 +-
 editeng/source/uno/unofdesc.cxx                         |    4 
 include/editeng/eeitem.hxx                              |   87 +++++++++-------
 sc/source/core/data/documen9.cxx                        |    2 
 sc/source/filter/excel/xehelper.cxx                     |    6 -
 sc/source/filter/excel/xistyle.cxx                      |    2 
 sc/source/filter/oox/stylesbuffer.cxx                   |   34 +++---
 sc/source/ui/Accessibility/AccessibleText.cxx           |    1 
 sc/source/ui/app/drwtrans.cxx                           |    4 
 sc/source/ui/app/inputwin.cxx                           |    4 
 sc/source/ui/dbgui/csvgrid.cxx                          |    3 
 sc/source/ui/drawfunc/drtxtob.cxx                       |   34 ++----
 sc/source/ui/pagedlg/tphfedit.cxx                       |    1 
 sc/source/ui/unoobj/textuno.cxx                         |    1 
 sc/source/ui/view/editsh.cxx                            |   29 ++---
 sc/source/ui/view/output2.cxx                           |    6 -
 sc/source/ui/view/printfun.cxx                          |    1 
 sd/qa/unit/import-tests.cxx                             |    2 
 sd/qa/unit/tiledrendering/tiledrendering.cxx            |    4 
 sd/source/core/sdpage.cxx                               |   12 +-
 sd/source/core/stlsheet.cxx                             |    4 
 sd/source/filter/html/htmlex.cxx                        |   10 -
 sd/source/ui/annotations/annotationmanager.cxx          |    8 -
 sd/source/ui/annotations/annotationwindow.cxx           |    8 -
 sd/source/ui/func/fuhhconv.cxx                          |    2 
 sd/source/ui/func/futext.cxx                            |    1 
 sd/source/ui/table/TableDesignPane.cxx                  |    2 
 sd/source/ui/view/drtxtob.cxx                           |    5 
 sd/source/ui/view/drtxtob1.cxx                          |   40 ++-----
 sd/source/ui/view/drviews2.cxx                          |    8 -
 sd/source/ui/view/drviewsf.cxx                          |    4 
 svx/source/customshapes/EnhancedCustomShapeFontWork.cxx |    8 -
 svx/source/engine3d/view3d.cxx                          |    2 
 svx/source/table/tablertfexporter.cxx                   |    6 -
 svx/source/toolbars/fontworkbar.cxx                     |    4 
 sw/source/uibase/dochdl/swdtflvr.cxx                    |    4 
 sw/source/uibase/shells/annotsh.cxx                     |   12 +-
 sw/source/uibase/shells/drwtxtex.cxx                    |   12 +-
 42 files changed, 221 insertions(+), 215 deletions(-)

New commits:
commit c690d38b066bb9cda3e6af790c36fb37d2e0dea3
Author: Noel Grandin <noel.gran...@collabora.co.uk>
Date:   Thu Nov 16 13:09:02 2017 +0200

    TypedWhichId for EE_CHAR* constants
    
    Change-Id: I261f8a949ddd858dee196118bb42993a101a2a28
    Reviewed-on: https://gerrit.libreoffice.org/44829
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/chart2/source/controller/main/ChartTransferable.cxx 
b/chart2/source/controller/main/ChartTransferable.cxx
index 8fb95fa29de6..2eeb46a764f2 100644
--- a/chart2/source/controller/main/ChartTransferable.cxx
+++ b/chart2/source/controller/main/ChartTransferable.cxx
@@ -122,8 +122,7 @@ bool ChartTransferable::WriteObject( 
tools::SvRef<SotStorageStream>& rxOStm, voi
                     // for the changed pool defaults from drawing layer pool 
set those
                     // attributes as hard attributes to preserve them for 
saving
                     const SfxItemPool& rItemPool = 
pMarkedObjModel->GetItemPool();
-                    const SvxFontHeightItem& rDefaultFontHeight = static_cast< 
const SvxFontHeightItem& >(
-                        rItemPool.GetDefaultItem( EE_CHAR_FONTHEIGHT ) );
+                    const SvxFontHeightItem& rDefaultFontHeight = 
rItemPool.GetDefaultItem( EE_CHAR_FONTHEIGHT );
                     sal_uInt16 nCount = pMarkedObjModel->GetPageCount();
                     for ( sal_uInt16 i = 0; i < nCount; ++i )
                     {
@@ -132,8 +131,7 @@ bool ChartTransferable::WriteObject( 
tools::SvRef<SotStorageStream>& rxOStm, voi
                         while ( aIter.IsMore() )
                         {
                             SdrObject* pObj = aIter.Next();
-                            const SvxFontHeightItem& rItem = static_cast< 
const SvxFontHeightItem& >(
-                                pObj->GetMergedItem( EE_CHAR_FONTHEIGHT ) );
+                            const SvxFontHeightItem& rItem = 
pObj->GetMergedItem( EE_CHAR_FONTHEIGHT );
                             if ( rItem.GetHeight() == 
rDefaultFontHeight.GetHeight() )
                             {
                                 pObj->SetMergedItem( rDefaultFontHeight );
diff --git a/editeng/source/editeng/editdoc.cxx 
b/editeng/source/editeng/editdoc.cxx
index 950db73bc07e..5ef52667846a 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -1989,30 +1989,30 @@ void CreateFont( SvxFont& rFont, const SfxItemSet& 
rSet, bool bSearchInParent, S
     if ( bSearchInParent || ( rSet.GetItemState( nWhich_Language ) == 
SfxItemState::SET ) )
         rFont.SetLanguage( static_cast<const SvxLanguageItem&>(rSet.Get( 
nWhich_Language )).GetLanguage() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_COLOR ) == 
SfxItemState::SET ) )
-        rFont.SetColor( static_cast<const SvxColorItem&>(rSet.Get( 
EE_CHAR_COLOR )).GetValue() );
+        rFont.SetColor( rSet.Get( EE_CHAR_COLOR ).GetValue() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_BKGCOLOR ) == 
SfxItemState::SET ) )
-        rFont.SetFillColor( static_cast<const 
SvxBackgroundColorItem&>(rSet.Get( EE_CHAR_BKGCOLOR )).GetValue() );
+        rFont.SetFillColor( rSet.Get( EE_CHAR_BKGCOLOR ).GetValue() );
     if ( bSearchInParent || ( rSet.GetItemState( nWhich_FontHeight ) == 
SfxItemState::SET ) )
         rFont.SetFontSize( Size( rFont.GetFontSize().Width(), 
static_cast<const SvxFontHeightItem&>(rSet.Get( nWhich_FontHeight ) 
).GetHeight() ) );
     if ( bSearchInParent || ( rSet.GetItemState( nWhich_Weight ) == 
SfxItemState::SET ) )
         rFont.SetWeight( static_cast<const SvxWeightItem&>(rSet.Get( 
nWhich_Weight )).GetWeight() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_UNDERLINE ) == 
SfxItemState::SET ) )
-        rFont.SetUnderline( static_cast<const SvxUnderlineItem&>(rSet.Get( 
EE_CHAR_UNDERLINE )).GetLineStyle() );
+        rFont.SetUnderline( rSet.Get( EE_CHAR_UNDERLINE ).GetLineStyle() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_OVERLINE ) == 
SfxItemState::SET ) )
-        rFont.SetOverline( static_cast<const SvxOverlineItem&>(rSet.Get( 
EE_CHAR_OVERLINE )).GetLineStyle() );
+        rFont.SetOverline( rSet.Get( EE_CHAR_OVERLINE ).GetLineStyle() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_STRIKEOUT ) == 
SfxItemState::SET ) )
-        rFont.SetStrikeout( static_cast<const SvxCrossedOutItem&>(rSet.Get( 
EE_CHAR_STRIKEOUT )).GetStrikeout() );
+        rFont.SetStrikeout( rSet.Get( EE_CHAR_STRIKEOUT ).GetStrikeout() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_CASEMAP ) == 
SfxItemState::SET ) )
-        rFont.SetCaseMap( static_cast<const SvxCaseMapItem&>(rSet.Get( 
EE_CHAR_CASEMAP )).GetCaseMap() );
+        rFont.SetCaseMap( rSet.Get( EE_CHAR_CASEMAP ).GetCaseMap() );
     if ( bSearchInParent || ( rSet.GetItemState( nWhich_Italic ) == 
SfxItemState::SET ) )
         rFont.SetItalic( static_cast<const SvxPostureItem&>(rSet.Get( 
nWhich_Italic )).GetPosture() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_OUTLINE ) == 
SfxItemState::SET ) )
-        rFont.SetOutline( static_cast<const SvxContourItem&>(rSet.Get( 
EE_CHAR_OUTLINE )).GetValue() );
+        rFont.SetOutline( rSet.Get( EE_CHAR_OUTLINE ).GetValue() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_SHADOW ) == 
SfxItemState::SET ) )
-        rFont.SetShadow( static_cast<const SvxShadowedItem&>(rSet.Get( 
EE_CHAR_SHADOW )).GetValue() );
+        rFont.SetShadow( rSet.Get( EE_CHAR_SHADOW ).GetValue() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_ESCAPEMENT ) == 
SfxItemState::SET ) )
     {
-        const SvxEscapementItem& rEsc = static_cast<const SvxEscapementItem&>( 
rSet.Get( EE_CHAR_ESCAPEMENT ) );
+        const SvxEscapementItem& rEsc = rSet.Get( EE_CHAR_ESCAPEMENT );
 
         sal_uInt16 const nProp = rEsc.GetProportionalHeight();
         rFont.SetPropr( (sal_uInt8)nProp );
@@ -2025,15 +2025,15 @@ void CreateFont( SvxFont& rFont, const SfxItemSet& 
rSet, bool bSearchInParent, S
         rFont.SetEscapement( nEsc );
     }
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_PAIRKERNING ) == 
SfxItemState::SET ) )
-        rFont.SetKerning( static_cast<const SvxAutoKernItem&>(rSet.Get( 
EE_CHAR_PAIRKERNING )).GetValue() ? FontKerning::FontSpecific : 
FontKerning::NONE );
+        rFont.SetKerning( rSet.Get( EE_CHAR_PAIRKERNING ).GetValue() ? 
FontKerning::FontSpecific : FontKerning::NONE );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_KERNING ) == 
SfxItemState::SET ) )
-        rFont.SetFixKerning( static_cast<const SvxKerningItem&>(rSet.Get( 
EE_CHAR_KERNING )).GetValue() );
+        rFont.SetFixKerning( rSet.Get( EE_CHAR_KERNING ).GetValue() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_WLM ) == 
SfxItemState::SET ) )
-        rFont.SetWordLineMode( static_cast<const 
SvxWordLineModeItem&>(rSet.Get( EE_CHAR_WLM )).GetValue() );
+        rFont.SetWordLineMode( rSet.Get( EE_CHAR_WLM ).GetValue() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_EMPHASISMARK ) == 
SfxItemState::SET ) )
-        rFont.SetEmphasisMark( static_cast<const 
SvxEmphasisMarkItem&>(rSet.Get( EE_CHAR_EMPHASISMARK )).GetEmphasisMark() );
+        rFont.SetEmphasisMark( rSet.Get( EE_CHAR_EMPHASISMARK 
).GetEmphasisMark() );
     if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_RELIEF ) == 
SfxItemState::SET ) )
-        rFont.SetRelief( static_cast<const SvxCharReliefItem&>(rSet.Get( 
EE_CHAR_RELIEF )).GetValue() );
+        rFont.SetRelief( rSet.Get( EE_CHAR_RELIEF ).GetValue() );
 
     // If comparing the entire font, or if checking before each alteration
     // whether the value changes, remains relatively the same thing.
diff --git a/editeng/source/editeng/editview.cxx 
b/editeng/source/editeng/editview.cxx
index d7539558ffbb..5a852f003605 100644
--- a/editeng/source/editeng/editview.cxx
+++ b/editeng/source/editeng/editview.cxx
@@ -1310,7 +1310,7 @@ bool EditView::ChangeFontSize( bool bGrow, SfxItemSet& 
rSet, const FontList* pFo
 {
     static const sal_uInt16 gFontSizeWichMap[] = { EE_CHAR_FONTHEIGHT, 
EE_CHAR_FONTHEIGHT_CJK, EE_CHAR_FONTHEIGHT_CTL, 0 };
 
-    const SvxFontItem* pFontItem = static_cast<const SvxFontItem*>(&rSet.Get( 
EE_CHAR_FONTINFO ));
+    const SvxFontItem* pFontItem = &rSet.Get( EE_CHAR_FONTINFO );
     if( !pFontItem || !pFontList )
         return false;
 
diff --git a/editeng/source/editeng/impedit3.cxx 
b/editeng/source/editeng/impedit3.cxx
index f03af5f20595..6953b98df9fa 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -2681,14 +2681,14 @@ void ImpEditEngine::SeekCursor( ContentNode* pNode, 
sal_Int32 nPos, SvxFont& rFo
         rFont.SetLanguage( static_cast<const 
SvxLanguageItem&>(pNode->GetContentAttribs().GetItem( GetScriptItemId( 
EE_CHAR_LANGUAGE, nScriptType ))).GetLanguage() );
     }
 
-    sal_uInt16 nRelWidth = static_cast<const 
SvxCharScaleWidthItem&>(pNode->GetContentAttribs().GetItem( 
EE_CHAR_FONTWIDTH)).GetValue();
+    sal_uInt16 nRelWidth = pNode->GetContentAttribs().GetItem( 
EE_CHAR_FONTWIDTH).GetValue();
 
     /*
      * Set output device's line and overline colors
     */
     if ( pOut )
     {
-        const SvxUnderlineItem& rTextLineColor = static_cast<const 
SvxUnderlineItem&>(pNode->GetContentAttribs().GetItem( EE_CHAR_UNDERLINE ));
+        const SvxUnderlineItem& rTextLineColor = 
pNode->GetContentAttribs().GetItem( EE_CHAR_UNDERLINE );
         if ( rTextLineColor.GetColor() != COL_TRANSPARENT )
             pOut->SetTextLineColor( rTextLineColor.GetColor() );
         else
@@ -2697,7 +2697,7 @@ void ImpEditEngine::SeekCursor( ContentNode* pNode, 
sal_Int32 nPos, SvxFont& rFo
 
     if ( pOut )
     {
-        const SvxOverlineItem& rOverlineColor = static_cast<const 
SvxOverlineItem&>(pNode->GetContentAttribs().GetItem( EE_CHAR_OVERLINE ));
+        const SvxOverlineItem& rOverlineColor = 
pNode->GetContentAttribs().GetItem( EE_CHAR_OVERLINE );
         if ( rOverlineColor.GetColor() != COL_TRANSPARENT )
             pOut->SetOverlineColor( rOverlineColor.GetColor() );
         else
@@ -2746,7 +2746,7 @@ void ImpEditEngine::SeekCursor( ContentNode* pNode, 
sal_Int32 nPos, SvxFont& rFo
     }
 
     if ( !pCJKLanguageItem )
-        pCJKLanguageItem = static_cast<const SvxLanguageItem*>( 
&pNode->GetContentAttribs().GetItem( EE_CHAR_LANGUAGE_CJK ) );
+        pCJKLanguageItem = &pNode->GetContentAttribs().GetItem( 
EE_CHAR_LANGUAGE_CJK );
 
     rFont.SetCJKContextLanguage( pCJKLanguageItem->GetLanguage() );
 
diff --git a/editeng/source/editeng/impedit4.cxx 
b/editeng/source/editeng/impedit4.cxx
index 6b82c0b658d6..f315141e9719 100644
--- a/editeng/source/editeng/impedit4.cxx
+++ b/editeng/source/editeng/impedit4.cxx
@@ -304,9 +304,9 @@ ErrCode ImpEditEngine::WriteRTF( SvStream& rOutput, 
EditSelection aSel )
     // Generate and write out Font table  ...
     std::vector<SvxFontItem*> aFontTable;
     // default font must be up front, so DEF font in RTF
-    aFontTable.push_back( new SvxFontItem( static_cast<const 
SvxFontItem&>(aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_FONTINFO ) ) ) );
-    aFontTable.push_back( new SvxFontItem( static_cast<const 
SvxFontItem&>(aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_FONTINFO_CJK ) ) ) 
);
-    aFontTable.push_back( new SvxFontItem( static_cast<const 
SvxFontItem&>(aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_FONTINFO_CTL ) ) ) 
);
+    aFontTable.push_back( new SvxFontItem( 
aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_FONTINFO ) ) );
+    aFontTable.push_back( new SvxFontItem( 
aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_FONTINFO_CJK ) ) );
+    aFontTable.push_back( new SvxFontItem( 
aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_FONTINFO_CTL ) ) );
     for ( sal_uInt16 nScriptType = 0; nScriptType < 3; nScriptType++ )
     {
         sal_uInt16 nWhich = EE_CHAR_FONTINFO;
@@ -387,15 +387,13 @@ ErrCode ImpEditEngine::WriteRTF( SvStream& rOutput, 
EditSelection aSel )
     SvxColorList aColorList;
     // COL_AUTO should be the default color, always put it first
     aColorList.emplace_back(COL_AUTO);
-    SvxColorItem const& rDefault(static_cast<SvxColorItem const&>(
-                aEditDoc.GetItemPool().GetDefaultItem(EE_CHAR_COLOR)));
+    SvxColorItem const& 
rDefault(aEditDoc.GetItemPool().GetDefaultItem(EE_CHAR_COLOR));
     if (rDefault.GetValue() != COL_AUTO) // is the default always AUTO?
     {
         aColorList.push_back(rDefault.GetValue());
     }
     sal_uInt32 i = 0;
-    SvxColorItem const* pColorItem = static_cast<SvxColorItem const*>(
-            aEditDoc.GetItemPool().GetItem2( EE_CHAR_COLOR, i));
+    SvxColorItem const* pColorItem = aEditDoc.GetItemPool().GetItem2( 
EE_CHAR_COLOR, i);
     while ( pColorItem )
     {
         ++i;
@@ -403,8 +401,7 @@ ErrCode ImpEditEngine::WriteRTF( SvStream& rOutput, 
EditSelection aSel )
         {
             aColorList.push_back(pColorItem->GetValue());
         }
-        pColorItem = static_cast<SvxColorItem const*>(
-                aEditDoc.GetItemPool().GetItem2(EE_CHAR_COLOR, i));
+        pColorItem = aEditDoc.GetItemPool().GetItem2(EE_CHAR_COLOR, i);
     }
 
     rOutput.WriteChar( '{' ).WriteCharPtr( OOO_STRING_SVTOOLS_RTF_COLORTBL );
diff --git a/editeng/source/uno/unofdesc.cxx b/editeng/source/uno/unofdesc.cxx
index f97253d1f785..dea8043b778a 100644
--- a/editeng/source/uno/unofdesc.cxx
+++ b/editeng/source/uno/unofdesc.cxx
@@ -132,7 +132,7 @@ void SvxUnoFontDescriptor::FillFromItemSet( const 
SfxItemSet& rSet, awt::FontDes
 {
     const SfxPoolItem* pItem = nullptr;
     {
-        const SvxFontItem* pFontItem = static_cast<const 
SvxFontItem*>(&rSet.Get( EE_CHAR_FONTINFO ));
+        const SvxFontItem* pFontItem = &rSet.Get( EE_CHAR_FONTINFO );
         rDesc.Name      = pFontItem->GetFamilyName();
         rDesc.StyleName = pFontItem->GetStyleName();
         rDesc.Family    = sal::static_int_cast< sal_Int16 >(
@@ -172,7 +172,7 @@ void SvxUnoFontDescriptor::FillFromItemSet( const 
SfxItemSet& rSet, awt::FontDes
             aStrikeOut >>= rDesc.Strikeout;
     }
     {
-        const SvxWordLineModeItem* pWLMItem = static_cast<const 
SvxWordLineModeItem*>(&rSet.Get( EE_CHAR_WLM ));
+        const SvxWordLineModeItem* pWLMItem = &rSet.Get( EE_CHAR_WLM );
         rDesc.WordLineMode = pWLMItem->GetValue();
     }
 }
diff --git a/include/editeng/eeitem.hxx b/include/editeng/eeitem.hxx
index b9933cb3ad82..e79da5b7bd30 100644
--- a/include/editeng/eeitem.hxx
+++ b/include/editeng/eeitem.hxx
@@ -24,17 +24,38 @@
 #include <svl/typedwhich.hxx>
 
 class SfxBoolItem;
+class SfxGrabBagItem;
 class SfxInt16Item;
 class SvxAdjustItem;
+class SvxAutoKernItem;
+class SvxBackgroundColorItem;
+class SvxCaseMapItem;
+class SvxCharReliefItem;
+class SvxCharScaleWidthItem;
+class SvxColorItem;
+class SvxContourItem;
+class SvxCrossedOutItem;
+class SvxEmphasisMarkItem;
+class SvxEscapementItem;
+class SvxFontHeightItem;
+class SvxFontItem;
 class SvxForbiddenRuleItem;
 class SvxFrameDirectionItem;
 class SvxHangingPunctuationItem;
+class SvxKerningItem;
+class SvxLanguageItem;
 class SvxLineSpacingItem;
 class SvxLRSpaceItem;
+class SvxOverlineItem;
+class SvxPostureItem;
 class SvXMLAttrContainerItem;
 class SvxScriptSpaceItem;
+class SvxShadowedItem;
 class SvxTabStopItem;
 class SvxULSpaceItem;
+class SvxUnderlineItem;
+class SvxWeightItem;
+class SvxWordLineModeItem;
 
 /*
  * NOTE: Changes in this file will probably require
@@ -68,39 +89,39 @@ class SvxULSpaceItem;
 
 // Character attributes:
 #define EE_CHAR_START               (EE_ITEMS_START+18)
-#define EE_CHAR_COLOR               (EE_ITEMS_START+18)
-#define EE_CHAR_FONTINFO            (EE_ITEMS_START+19)
-#define EE_CHAR_FONTHEIGHT          (EE_ITEMS_START+20)
-#define EE_CHAR_FONTWIDTH           (EE_ITEMS_START+21)
-#define EE_CHAR_WEIGHT              (EE_ITEMS_START+22)
-#define EE_CHAR_UNDERLINE           (EE_ITEMS_START+23)
-#define EE_CHAR_STRIKEOUT           (EE_ITEMS_START+24)
-#define EE_CHAR_ITALIC              (EE_ITEMS_START+25)
-#define EE_CHAR_OUTLINE             (EE_ITEMS_START+26)
-#define EE_CHAR_SHADOW              (EE_ITEMS_START+27)
-#define EE_CHAR_ESCAPEMENT          (EE_ITEMS_START+28)
-#define EE_CHAR_PAIRKERNING         (EE_ITEMS_START+29)
-#define EE_CHAR_KERNING             (EE_ITEMS_START+30)
-#define EE_CHAR_WLM                 (EE_ITEMS_START+31)
-#define EE_CHAR_LANGUAGE            (EE_ITEMS_START+32)
-#define EE_CHAR_LANGUAGE_CJK        (EE_ITEMS_START+33)
-#define EE_CHAR_LANGUAGE_CTL        (EE_ITEMS_START+34)
-#define EE_CHAR_FONTINFO_CJK        (EE_ITEMS_START+35)
-#define EE_CHAR_FONTINFO_CTL        (EE_ITEMS_START+36)
-#define EE_CHAR_FONTHEIGHT_CJK      (EE_ITEMS_START+37)
-#define EE_CHAR_FONTHEIGHT_CTL      (EE_ITEMS_START+38)
-#define EE_CHAR_WEIGHT_CJK          (EE_ITEMS_START+39)
-#define EE_CHAR_WEIGHT_CTL          (EE_ITEMS_START+40)
-#define EE_CHAR_ITALIC_CJK          (EE_ITEMS_START+41)
-#define EE_CHAR_ITALIC_CTL          (EE_ITEMS_START+42)
-#define EE_CHAR_EMPHASISMARK        (EE_ITEMS_START+43)
-#define EE_CHAR_RELIEF              (EE_ITEMS_START+44)
-#define EE_CHAR_RUBI_DUMMY          (EE_ITEMS_START+45)
-#define EE_CHAR_XMLATTRIBS          (EE_ITEMS_START+46)
-#define EE_CHAR_OVERLINE            (EE_ITEMS_START+47)
-#define EE_CHAR_CASEMAP             (EE_ITEMS_START+48)
-#define EE_CHAR_GRABBAG             (EE_ITEMS_START+49)
-#define EE_CHAR_BKGCOLOR            (EE_ITEMS_START+50)
+#define EE_CHAR_COLOR               
TypedWhichId<SvxColorItem>(EE_ITEMS_START+18)
+#define EE_CHAR_FONTINFO            
TypedWhichId<SvxFontItem>(EE_ITEMS_START+19)
+#define EE_CHAR_FONTHEIGHT          
TypedWhichId<SvxFontHeightItem>(EE_ITEMS_START+20)
+#define EE_CHAR_FONTWIDTH           
TypedWhichId<SvxCharScaleWidthItem>(EE_ITEMS_START+21)
+#define EE_CHAR_WEIGHT              
TypedWhichId<SvxWeightItem>(EE_ITEMS_START+22)
+#define EE_CHAR_UNDERLINE           
TypedWhichId<SvxUnderlineItem>(EE_ITEMS_START+23)
+#define EE_CHAR_STRIKEOUT           
TypedWhichId<SvxCrossedOutItem>(EE_ITEMS_START+24)
+#define EE_CHAR_ITALIC              
TypedWhichId<SvxPostureItem>(EE_ITEMS_START+25)
+#define EE_CHAR_OUTLINE             
TypedWhichId<SvxContourItem>(EE_ITEMS_START+26)
+#define EE_CHAR_SHADOW              
TypedWhichId<SvxShadowedItem>(EE_ITEMS_START+27)
+#define EE_CHAR_ESCAPEMENT          
TypedWhichId<SvxEscapementItem>(EE_ITEMS_START+28)
+#define EE_CHAR_PAIRKERNING         
TypedWhichId<SvxAutoKernItem>(EE_ITEMS_START+29)
+#define EE_CHAR_KERNING             
TypedWhichId<SvxKerningItem>(EE_ITEMS_START+30)
+#define EE_CHAR_WLM                 
TypedWhichId<SvxWordLineModeItem>(EE_ITEMS_START+31)
+#define EE_CHAR_LANGUAGE            
TypedWhichId<SvxLanguageItem>(EE_ITEMS_START+32)
+#define EE_CHAR_LANGUAGE_CJK        
TypedWhichId<SvxLanguageItem>(EE_ITEMS_START+33)
+#define EE_CHAR_LANGUAGE_CTL        
TypedWhichId<SvxLanguageItem>(EE_ITEMS_START+34)
+#define EE_CHAR_FONTINFO_CJK        
TypedWhichId<SvxFontItem>(EE_ITEMS_START+35)
+#define EE_CHAR_FONTINFO_CTL        
TypedWhichId<SvxFontItem>(EE_ITEMS_START+36)
+#define EE_CHAR_FONTHEIGHT_CJK      
TypedWhichId<SvxFontHeightItem>(EE_ITEMS_START+37)
+#define EE_CHAR_FONTHEIGHT_CTL      
TypedWhichId<SvxFontHeightItem>(EE_ITEMS_START+38)
+#define EE_CHAR_WEIGHT_CJK          
TypedWhichId<SvxWeightItem>(EE_ITEMS_START+39)
+#define EE_CHAR_WEIGHT_CTL          
TypedWhichId<SvxWeightItem>(EE_ITEMS_START+40)
+#define EE_CHAR_ITALIC_CJK          
TypedWhichId<SvxPostureItem>(EE_ITEMS_START+41)
+#define EE_CHAR_ITALIC_CTL          
TypedWhichId<SvxPostureItem>(EE_ITEMS_START+42)
+#define EE_CHAR_EMPHASISMARK        
TypedWhichId<SvxEmphasisMarkItem>(EE_ITEMS_START+43)
+#define EE_CHAR_RELIEF              
TypedWhichId<SvxCharReliefItem>(EE_ITEMS_START+44)
+#define EE_CHAR_RUBI_DUMMY          
TypedWhichId<SfxVoidItem>(EE_ITEMS_START+45)
+#define EE_CHAR_XMLATTRIBS          
TypedWhichId<SvXMLAttrContainerItem>(EE_ITEMS_START+46)
+#define EE_CHAR_OVERLINE            
TypedWhichId<SvxOverlineItem>(EE_ITEMS_START+47)
+#define EE_CHAR_CASEMAP             
TypedWhichId<SvxCaseMapItem>(EE_ITEMS_START+48)
+#define EE_CHAR_GRABBAG             
TypedWhichId<SfxGrabBagItem>(EE_ITEMS_START+49)
+#define EE_CHAR_BKGCOLOR            
TypedWhichId<SvxBackgroundColorItem>(EE_ITEMS_START+50)
 
 #define EE_CHAR_END                 (EE_ITEMS_START+50)
 
diff --git a/sc/source/core/data/documen9.cxx b/sc/source/core/data/documen9.cxx
index 0393c01f0cd2..107ba9683220 100644
--- a/sc/source/core/data/documen9.cxx
+++ b/sc/source/core/data/documen9.cxx
@@ -582,7 +582,7 @@ void ScDocument::UpdateFontCharSet()
             nCount = rDrawPool.GetItemCount2(EE_CHAR_FONTINFO);
             for (i=0; i<nCount; i++)
             {
-                pItem = const_cast<SvxFontItem*>(static_cast<const 
SvxFontItem*>(rDrawPool.GetItem2(EE_CHAR_FONTINFO, i)));
+                pItem = 
const_cast<SvxFontItem*>(rDrawPool.GetItem2(EE_CHAR_FONTINFO, i));
                 if ( pItem && ( pItem->GetCharSet() == eSrcSet ||
                                 ( bUpdateOld && pItem->GetCharSet() != 
RTL_TEXTENCODING_SYMBOL ) ) )
                     pItem->SetCharSet( eSysSet );
diff --git a/sc/source/filter/excel/xehelper.cxx 
b/sc/source/filter/excel/xehelper.cxx
index 51b194ddb813..f3e171288321 100644
--- a/sc/source/filter/excel/xehelper.cxx
+++ b/sc/source/filter/excel/xehelper.cxx
@@ -453,7 +453,7 @@ XclExpStringRef lclCreateFormattedString(
             ScPatternAttr::GetFromEditItemSet( aItemSet, aEditSet );
 
             // get escapement value
-            short nEsc = GETITEM( aEditSet, SvxEscapementItem, 
EE_CHAR_ESCAPEMENT ).GetEsc();
+            short nEsc = aEditSet.Get( EE_CHAR_ESCAPEMENT ).GetEsc();
 
             // process text fields
             bool bIsHyperlink = false;
@@ -752,7 +752,7 @@ void XclExpHFConverter::AppendPortion( const 
EditTextObject* pTextObj, sal_Unico
                 // height
                 // is calculated wrong in ScPatternAttr::GetFromEditItemSet, 
because already in twips and not 100thmm
                 // -> get it directly from edit engine item set
-                aNewData.mnHeight = ulimit_cast< sal_uInt16 >( GETITEM( 
aEditSet, SvxFontHeightItem, EE_CHAR_FONTHEIGHT ).GetHeight() );
+                aNewData.mnHeight = ulimit_cast< sal_uInt16 >( aEditSet.Get( 
EE_CHAR_FONTHEIGHT ).GetHeight() );
                 (aNewData.mnHeight += 10) /= 20;
                 bool bFontHtChanged = (aFontData.mnHeight != 
aNewData.mnHeight);
                 if( bFontHtChanged )
@@ -782,7 +782,7 @@ void XclExpHFConverter::AppendPortion( const 
EditTextObject* pTextObj, sal_Unico
                     aParaText += "&S";
 
                 // super/sub script
-                const SvxEscapementItem& rEscapeItem = GETITEM( aEditSet, 
SvxEscapementItem, EE_CHAR_ESCAPEMENT );
+                const SvxEscapementItem& rEscapeItem = aEditSet.Get( 
EE_CHAR_ESCAPEMENT );
                 aNewData.SetScEscapement( rEscapeItem.GetEsc() );
                 if( aFontData.mnEscapem != aNewData.mnEscapem )
                 {
diff --git a/sc/source/filter/excel/xistyle.cxx 
b/sc/source/filter/excel/xistyle.cxx
index 14efbde558fc..03bc06f8d0ca 100644
--- a/sc/source/filter/excel/xistyle.cxx
+++ b/sc/source/filter/excel/xistyle.cxx
@@ -307,7 +307,7 @@ void XclImpFont::FillToItemSet( SfxItemSet& rItemSet, 
XclFontItemType eType, boo
 // sc_which = the Calc Which-ID of the item
 // ee_which = the edit engine Which-ID of the item
 #define PUTITEM( item, sc_which, ee_which ) \
-    ScfTools::PutItem( rItemSet, item, (bEE ? (ee_which) : (sc_which)), 
bSkipPoolDefs )
+    ScfTools::PutItem( rItemSet, item, (bEE ? ((sal_uInt16)ee_which) : 
(sc_which)), bSkipPoolDefs )
 
 // Font item
     if( mbFontNameUsed )
diff --git a/sc/source/filter/oox/stylesbuffer.cxx 
b/sc/source/filter/oox/stylesbuffer.cxx
index 662f749ec96a..93cf0ca1e251 100644
--- a/sc/source/filter/oox/stylesbuffer.cxx
+++ b/sc/source/filter/oox/stylesbuffer.cxx
@@ -865,7 +865,7 @@ void Font::fillToItemSet( SfxItemSet& rItemSet, bool 
bEditEngineText, bool bSkip
 
             SvxFontItem aFontItem( lcl_getFontFamily( 
maApiData.maLatinFont.mnFamily ), maApiData.maLatinFont.maName, OUString(),
                 PITCH_DONTKNOW, eTempTextEnc, ATTR_FONT );
-            ScfTools::PutItem( rItemSet, aFontItem, bEditEngineText ? 
EE_CHAR_FONTINFO : ATTR_FONT, bSkipPoolDefs );
+            ScfTools::PutItem( rItemSet, aFontItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_FONTINFO : ATTR_FONT, bSkipPoolDefs );
         }
         if( !maApiData.maAsianFont.maName.isEmpty() )
         {
@@ -875,7 +875,7 @@ void Font::fillToItemSet( SfxItemSet& rItemSet, bool 
bEditEngineText, bool bSkip
                 ScfTools::GetSystemTextEncoding() : eFontEnc;
             SvxFontItem aFontItem( lcl_getFontFamily( 
maApiData.maAsianFont.mnFamily ), maApiData.maAsianFont.maName, OUString(),
                 PITCH_DONTKNOW, eTempTextEnc, ATTR_FONT );
-            ScfTools::PutItem( rItemSet, aFontItem, bEditEngineText ? 
EE_CHAR_FONTINFO_CJK : ATTR_CJK_FONT, bSkipPoolDefs );
+            ScfTools::PutItem( rItemSet, aFontItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_FONTINFO_CJK : ATTR_CJK_FONT, bSkipPoolDefs );
         }
         if( !maApiData.maCmplxFont.maName.isEmpty() )
         {
@@ -885,7 +885,7 @@ void Font::fillToItemSet( SfxItemSet& rItemSet, bool 
bEditEngineText, bool bSkip
                 ScfTools::GetSystemTextEncoding() : eFontEnc;
             SvxFontItem aFontItem( lcl_getFontFamily( 
maApiData.maCmplxFont.mnFamily ), maApiData.maCmplxFont.maName, OUString(),
                 PITCH_DONTKNOW, eTempTextEnc, ATTR_FONT );
-            ScfTools::PutItem( rItemSet, aFontItem, bEditEngineText ? 
EE_CHAR_FONTINFO_CTL : ATTR_CTL_FONT, bSkipPoolDefs );
+            ScfTools::PutItem( rItemSet, aFontItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_FONTINFO_CTL : ATTR_CTL_FONT, bSkipPoolDefs );
         }
     }
     // font height
@@ -896,31 +896,31 @@ void Font::fillToItemSet( SfxItemSet& rItemSet, bool 
bEditEngineText, bool bSkip
         if( bEditEngineText/* && (eType != XclFontItemType::HeaderFooter) */)  
   // do not convert header/footer height
             nHeight = (nHeight * 127 + 36) / EXC_POINTS_PER_INCH;   // 1 in == 
72 pt
         SvxFontHeightItem aHeightItem( nHeight, 100, ATTR_FONT_HEIGHT );
-        ScfTools::PutItem( rItemSet, aHeightItem, bEditEngineText ? 
EE_CHAR_FONTHEIGHT :  ATTR_FONT_HEIGHT, bSkipPoolDefs );
-        ScfTools::PutItem( rItemSet, aHeightItem, bEditEngineText ? 
EE_CHAR_FONTHEIGHT_CJK : ATTR_CJK_FONT_HEIGHT, bSkipPoolDefs );
-        ScfTools::PutItem( rItemSet, aHeightItem, bEditEngineText ? 
EE_CHAR_FONTHEIGHT_CTL : ATTR_CTL_FONT_HEIGHT, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aHeightItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_FONTHEIGHT :  ATTR_FONT_HEIGHT, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aHeightItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_FONTHEIGHT_CJK : ATTR_CJK_FONT_HEIGHT, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aHeightItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_FONTHEIGHT_CTL : ATTR_CTL_FONT_HEIGHT, bSkipPoolDefs );
     }
     // font weight
     if( maUsedFlags.mbWeightUsed )
     {
         ::FontWeight fWeight = vcl::unohelper::ConvertFontWeight( 
maApiData.maDesc.Weight );
         SvxWeightItem aWeightItem( fWeight, ATTR_FONT_WEIGHT );
-        ScfTools::PutItem( rItemSet, aWeightItem, bEditEngineText ? 
EE_CHAR_WEIGHT : ATTR_FONT_WEIGHT, bSkipPoolDefs );
-        ScfTools::PutItem( rItemSet, aWeightItem, bEditEngineText ? 
EE_CHAR_WEIGHT_CTL : ATTR_CTL_FONT_WEIGHT, bSkipPoolDefs );
-        ScfTools::PutItem( rItemSet, aWeightItem, bEditEngineText ? 
EE_CHAR_WEIGHT_CJK : ATTR_CJK_FONT_WEIGHT, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aWeightItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_WEIGHT : ATTR_FONT_WEIGHT, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aWeightItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_WEIGHT_CTL : ATTR_CTL_FONT_WEIGHT, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aWeightItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_WEIGHT_CJK : ATTR_CJK_FONT_WEIGHT, bSkipPoolDefs );
     }
     // font posture
     if( maUsedFlags.mbPostureUsed )
     {
         SvxPostureItem aPostItem( ( maApiData.maDesc.Slant == 
css::awt::FontSlant_ITALIC ) ? ITALIC_NORMAL :  ITALIC_NONE,  
ATTR_FONT_POSTURE);
-        ScfTools::PutItem( rItemSet, aPostItem, bEditEngineText ? 
EE_CHAR_ITALIC : ATTR_FONT_POSTURE, bSkipPoolDefs );
-        ScfTools::PutItem( rItemSet, aPostItem, bEditEngineText ? 
EE_CHAR_ITALIC_CJK : ATTR_CJK_FONT_POSTURE, bSkipPoolDefs );
-        ScfTools::PutItem( rItemSet, aPostItem, bEditEngineText ? 
EE_CHAR_ITALIC_CTL : ATTR_CTL_FONT_POSTURE, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aPostItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_ITALIC : ATTR_FONT_POSTURE, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aPostItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_ITALIC_CJK : ATTR_CJK_FONT_POSTURE, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aPostItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_ITALIC_CTL : ATTR_CTL_FONT_POSTURE, bSkipPoolDefs );
     }
     // character color
     if( maUsedFlags.mbColorUsed )
     {
-        ScfTools::PutItem( rItemSet,SvxColorItem( maApiData.mnColor, 
bEditEngineText ? EE_CHAR_COLOR : ATTR_FONT_COLOR  ) , bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet,SvxColorItem( maApiData.mnColor, 
bEditEngineText ? (sal_uInt16)EE_CHAR_COLOR : ATTR_FONT_COLOR  ) , 
bSkipPoolDefs );
     }
     // underline style
     if( maUsedFlags.mbUnderlineUsed )
@@ -933,24 +933,24 @@ void Font::fillToItemSet( SfxItemSet& rItemSet, bool 
bEditEngineText, bool bSkip
         else
             eScUnderl = LINESTYLE_NONE;
         SvxUnderlineItem aUnderlItem( eScUnderl, ATTR_FONT_UNDERLINE );
-        ScfTools::PutItem( rItemSet, aUnderlItem, bEditEngineText ? 
EE_CHAR_UNDERLINE : ATTR_FONT_UNDERLINE, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, aUnderlItem, bEditEngineText ? 
(sal_uInt16)EE_CHAR_UNDERLINE : ATTR_FONT_UNDERLINE, bSkipPoolDefs );
     }
     // strike out style
     if( maUsedFlags.mbStrikeoutUsed )
     {
-        ScfTools::PutItem( rItemSet, SvxCrossedOutItem( maModel.mbStrikeout ? 
STRIKEOUT_SINGLE : STRIKEOUT_NONE, bEditEngineText ? EE_CHAR_STRIKEOUT : 
ATTR_FONT_CROSSEDOUT ), bEditEngineText ? EE_CHAR_STRIKEOUT : 
ATTR_FONT_CROSSEDOUT, bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, SvxCrossedOutItem( maModel.mbStrikeout ? 
STRIKEOUT_SINGLE : STRIKEOUT_NONE, bEditEngineText ? 
(sal_uInt16)EE_CHAR_STRIKEOUT : ATTR_FONT_CROSSEDOUT ), bEditEngineText ? 
(sal_uInt16)EE_CHAR_STRIKEOUT : ATTR_FONT_CROSSEDOUT, bSkipPoolDefs );
     }
 
     // outline style
     if( maUsedFlags.mbOutlineUsed )
     {
-        ScfTools::PutItem( rItemSet, SvxContourItem( maApiData.mbOutline, 
ATTR_FONT_CONTOUR ), bEditEngineText ? EE_CHAR_OUTLINE : ATTR_FONT_CONTOUR, 
bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, SvxContourItem( maApiData.mbOutline, 
ATTR_FONT_CONTOUR ), bEditEngineText ? (sal_uInt16)EE_CHAR_OUTLINE : 
ATTR_FONT_CONTOUR, bSkipPoolDefs );
     }
 
     // shadow style
     if( maUsedFlags.mbShadowUsed )
     {
-        ScfTools::PutItem( rItemSet, SvxShadowedItem( maApiData.mbShadow, 
ATTR_FONT_SHADOWED ), bEditEngineText ? EE_CHAR_SHADOW : ATTR_FONT_SHADOWED, 
bSkipPoolDefs );
+        ScfTools::PutItem( rItemSet, SvxShadowedItem( maApiData.mbShadow, 
ATTR_FONT_SHADOWED ), bEditEngineText ? (sal_uInt16)EE_CHAR_SHADOW : 
ATTR_FONT_SHADOWED, bSkipPoolDefs );
     }
     if( maUsedFlags.mbEscapementUsed )
     {
diff --git a/sc/source/ui/Accessibility/AccessibleText.cxx 
b/sc/source/ui/Accessibility/AccessibleText.cxx
index 630202c89724..5ceb341135d5 100644
--- a/sc/source/ui/Accessibility/AccessibleText.cxx
+++ b/sc/source/ui/Accessibility/AccessibleText.cxx
@@ -37,6 +37,7 @@
 #include <editeng/unofored.hxx>
 #include <editeng/editview.hxx>
 #include <editeng/unoedhlp.hxx>
+#include <editeng/fhgtitem.hxx>
 #include <vcl/virdev.hxx>
 #include <editeng/editobj.hxx>
 #include <editeng/adjustitem.hxx>
diff --git a/sc/source/ui/app/drwtrans.cxx b/sc/source/ui/app/drwtrans.cxx
index 9a1bf0532027..3e7cce703222 100644
--- a/sc/source/ui/app/drwtrans.cxx
+++ b/sc/source/ui/app/drwtrans.cxx
@@ -460,7 +460,7 @@ bool ScDrawTransferObj::WriteObject( 
tools::SvRef<SotStorageStream>& rxOStm, voi
                 // for the changed pool defaults from drawing layer pool set 
those
                 // attributes as hard attributes to preserve them for saving
                 const SfxItemPool& rItemPool = pModel->GetItemPool();
-                const SvxFontHeightItem& rDefaultFontHeight = 
static_cast<const 
SvxFontHeightItem&>(rItemPool.GetDefaultItem(EE_CHAR_FONTHEIGHT));
+                const SvxFontHeightItem& rDefaultFontHeight = 
rItemPool.GetDefaultItem(EE_CHAR_FONTHEIGHT);
 
                 // SW should have no MasterPages
                 OSL_ENSURE(0 == pModel->GetMasterPageCount(), "SW with 
MasterPages (!)");
@@ -473,7 +473,7 @@ bool ScDrawTransferObj::WriteObject( 
tools::SvRef<SotStorageStream>& rxOStm, voi
                     while(aIter.IsMore())
                     {
                         SdrObject* pObj = aIter.Next();
-                        const SvxFontHeightItem& rItem = static_cast<const 
SvxFontHeightItem&>(pObj->GetMergedItem(EE_CHAR_FONTHEIGHT));
+                        const SvxFontHeightItem& rItem = 
pObj->GetMergedItem(EE_CHAR_FONTHEIGHT);
 
                         if(rItem.GetHeight() == rDefaultFontHeight.GetHeight())
                         {
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index bd5293e9b1c3..b77266912b62 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -29,6 +29,10 @@
 #include <editeng/editstat.hxx>
 #include <editeng/frmdiritem.hxx>
 #include <editeng/lspcitem.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/wghtitem.hxx>
+#include <editeng/postitem.hxx>
+#include <editeng/langitem.hxx>
 #include <sfx2/bindings.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <sfx2/dispatch.hxx>
diff --git a/sc/source/ui/dbgui/csvgrid.cxx b/sc/source/ui/dbgui/csvgrid.cxx
index 1ef24a76c9c6..b980acfac7ff 100644
--- a/sc/source/ui/dbgui/csvgrid.cxx
+++ b/sc/source/ui/dbgui/csvgrid.cxx
@@ -39,6 +39,9 @@
 #include <editeng/colritem.hxx>
 #include <editeng/fhgtitem.hxx>
 #include <editeng/fontitem.hxx>
+#include <editeng/wghtitem.hxx>
+#include <editeng/postitem.hxx>
+#include <editeng/langitem.hxx>
 #include <svl/itemset.hxx>
 #include <editutil.hxx>
 // *** edit engine ***
diff --git a/sc/source/ui/drawfunc/drtxtob.cxx 
b/sc/source/ui/drawfunc/drtxtob.cxx
index 6f6d034af866..cdbbba7a8185 100644
--- a/sc/source/ui/drawfunc/drtxtob.cxx
+++ b/sc/source/ui/drawfunc/drtxtob.cxx
@@ -206,8 +206,7 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
 
         case SID_CHARMAP:
             {
-                const SvxFontItem& rItem = static_cast<const SvxFontItem&>(
-                            pOutView->GetAttribs().Get(EE_CHAR_FONTINFO));
+                const SvxFontItem& rItem = 
pOutView->GetAttribs().Get(EE_CHAR_FONTINFO);
 
                 OUString aString;
                 SvxFontItem aNewItem( EE_CHAR_FONTINFO );
@@ -553,8 +552,7 @@ void ScDrawTextObjectBar::ExecuteToggle( SfxRequest &rReq )
     pView->GetAttributes(aViewAttr);
 
     //  Underline
-    FontLineStyle eOld = static_cast<const SvxUnderlineItem&>( aViewAttr.
-                                        Get(EE_CHAR_UNDERLINE)).GetLineStyle();
+    FontLineStyle eOld = aViewAttr.Get(EE_CHAR_UNDERLINE).GetLineStyle();
     FontLineStyle eNew = eOld;
     switch (nSlot)
     {
@@ -720,8 +718,8 @@ void ScDrawTextObjectBar::ExecuteAttr( SfxRequest &rReq )
         case SID_SET_SUPER_SCRIPT:
             {
                 SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
-                SvxEscapement eEsc = (SvxEscapement) static_cast<const 
SvxEscapementItem&>(
-                                aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+                SvxEscapement eEsc = (SvxEscapement)
+                                aEditAttr.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
 
                 if( eEsc == SvxEscapement::Superscript )
                     aItem.SetEscapement( SvxEscapement::Off );
@@ -734,8 +732,8 @@ void ScDrawTextObjectBar::ExecuteAttr( SfxRequest &rReq )
         case SID_SET_SUB_SCRIPT:
             {
                 SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
-                SvxEscapement eEsc = (SvxEscapement) static_cast<const 
SvxEscapementItem&>(
-                                aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+                SvxEscapement eEsc = (SvxEscapement)
+                                aEditAttr.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
 
                 if( eEsc == SvxEscapement::Subscript )
                     aItem.SetEscapement( SvxEscapement::Off );
@@ -844,31 +842,31 @@ void ScDrawTextObjectBar::ExecuteAttr( SfxRequest &rReq )
                 break;
 
             case SID_ATTR_CHAR_WEIGHT:
-                aNewAttr.Put( static_cast<const SvxWeightItem&>(aEditAttr.Get( 
EE_CHAR_WEIGHT )) );
+                aNewAttr.Put( aEditAttr.Get( EE_CHAR_WEIGHT ) );
                 break;
 
             case SID_ATTR_CHAR_POSTURE:
-                aNewAttr.Put( static_cast<const 
SvxPostureItem&>(aEditAttr.Get( EE_CHAR_ITALIC )) );
+                aNewAttr.Put( aEditAttr.Get( EE_CHAR_ITALIC ) );
                 break;
 
             case SID_ATTR_CHAR_UNDERLINE:
-                aNewAttr.Put( static_cast<const 
SvxUnderlineItem&>(aEditAttr.Get( EE_CHAR_UNDERLINE )) );
+                aNewAttr.Put( aEditAttr.Get( EE_CHAR_UNDERLINE ) );
                 break;
 
             case SID_ATTR_CHAR_OVERLINE:
-                aNewAttr.Put( static_cast<const 
SvxOverlineItem&>(aEditAttr.Get( EE_CHAR_OVERLINE )) );
+                aNewAttr.Put( aEditAttr.Get( EE_CHAR_OVERLINE ) );
                 break;
 
             case SID_ATTR_CHAR_CONTOUR:
-                aNewAttr.Put( static_cast<const 
SvxContourItem&>(aEditAttr.Get( EE_CHAR_OUTLINE )) );
+                aNewAttr.Put( aEditAttr.Get( EE_CHAR_OUTLINE ) );
                 break;
 
             case SID_ATTR_CHAR_SHADOWED:
-                aNewAttr.Put( static_cast<const 
SvxShadowedItem&>(aEditAttr.Get( EE_CHAR_SHADOW )) );
+                aNewAttr.Put( aEditAttr.Get( EE_CHAR_SHADOW ) );
                 break;
 
             case SID_ATTR_CHAR_STRIKEOUT:
-                aNewAttr.Put( static_cast<const 
SvxCrossedOutItem&>(aEditAttr.Get( EE_CHAR_STRIKEOUT )) );
+                aNewAttr.Put( aEditAttr.Get( EE_CHAR_STRIKEOUT ) );
                 break;
 
             case SID_DRAWTEXT_ATTR_DLG:
@@ -1092,8 +1090,7 @@ void ScDrawTextObjectBar::GetAttrState( SfxItemSet& 
rDestSet )
 
     //  super-/subscript
 
-    SvxEscapement eEsc = (SvxEscapement) static_cast<const SvxEscapementItem&>(
-                    aAttrSet.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue();
+    SvxEscapement eEsc = (SvxEscapement) aAttrSet.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
     if( eEsc == SvxEscapement::Superscript )
         rDestSet.Put( SfxBoolItem( SID_SET_SUPER_SCRIPT, true ) );
     else if( eEsc == SvxEscapement::Subscript )
@@ -1111,8 +1108,7 @@ void ScDrawTextObjectBar::GetAttrState( SfxItemSet& 
rDestSet )
     }
     else
     {
-        FontLineStyle eUnderline = static_cast<const SvxUnderlineItem&>(
-                    aAttrSet.Get(EE_CHAR_UNDERLINE)).GetLineStyle();
+        FontLineStyle eUnderline = 
aAttrSet.Get(EE_CHAR_UNDERLINE).GetLineStyle();
         sal_uInt16 nId = SID_ULINE_VAL_NONE;
         switch (eUnderline)
         {
diff --git a/sc/source/ui/pagedlg/tphfedit.cxx 
b/sc/source/ui/pagedlg/tphfedit.cxx
index 8ddc1da38dd7..4246534811dc 100644
--- a/sc/source/ui/pagedlg/tphfedit.cxx
+++ b/sc/source/ui/pagedlg/tphfedit.cxx
@@ -25,6 +25,7 @@
 #include <editeng/editview.hxx>
 #include <editeng/flditem.hxx>
 #include <editeng/adjustitem.hxx>
+#include <editeng/fhgtitem.hxx>
 #include <sfx2/basedlgs.hxx>
 #include <sfx2/objsh.hxx>
 #include <vcl/msgbox.hxx>
diff --git a/sc/source/ui/unoobj/textuno.cxx b/sc/source/ui/unoobj/textuno.cxx
index 5794ce65a39b..3801904f4a5b 100644
--- a/sc/source/ui/unoobj/textuno.cxx
+++ b/sc/source/ui/unoobj/textuno.cxx
@@ -27,6 +27,7 @@
 #include <editeng/editeng.hxx>
 #include <editeng/editobj.hxx>
 #include <editeng/flditem.hxx>
+#include <editeng/fhgtitem.hxx>
 #include <svx/unomid.hxx>
 #include <editeng/unoprnms.hxx>
 #include <editeng/unofored.hxx>
diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx
index 3d1876798c88..632876d3d9f5 100644
--- a/sc/source/ui/view/editsh.cxx
+++ b/sc/source/ui/view/editsh.cxx
@@ -970,8 +970,7 @@ void ScEditShell::ExecuteAttr(SfxRequest& rReq)
         case SID_ULINE_VAL_DOUBLE:
         case SID_ULINE_VAL_DOTTED:
             {
-                FontLineStyle eOld = static_cast<const SvxUnderlineItem&>( 
pEditView->
-                                    
GetAttribs().Get(EE_CHAR_UNDERLINE)).GetLineStyle();
+                FontLineStyle eOld = 
pEditView->GetAttribs().Get(EE_CHAR_UNDERLINE).GetLineStyle();
                 FontLineStyle eNew = eOld;
                 switch (nSlot)
                 {
@@ -1003,8 +1002,7 @@ void ScEditShell::ExecuteAttr(SfxRequest& rReq)
 
         case SID_ATTR_CHAR_OVERLINE:
             {
-                FontLineStyle eOld = static_cast<const SvxOverlineItem&>( 
pEditView->
-                                    
GetAttribs().Get(EE_CHAR_OVERLINE)).GetLineStyle();
+                FontLineStyle eOld = 
pEditView->GetAttribs().Get(EE_CHAR_OVERLINE).GetLineStyle();
                 FontLineStyle eNew = ( eOld != LINESTYLE_NONE ) ? 
LINESTYLE_NONE : LINESTYLE_SINGLE;
                 aSet.Put( SvxOverlineItem( eNew, EE_CHAR_OVERLINE ) );
                 rBindings.Invalidate( nSlot );
@@ -1013,8 +1011,7 @@ void ScEditShell::ExecuteAttr(SfxRequest& rReq)
 
         case SID_ATTR_CHAR_STRIKEOUT:
             {
-                bool bOld = static_cast<const SvxCrossedOutItem&>( 
pEditView->GetAttribs().
-                                Get(EE_CHAR_STRIKEOUT)).GetValue() != 
STRIKEOUT_NONE;
+                bool bOld = 
pEditView->GetAttribs().Get(EE_CHAR_STRIKEOUT).GetValue() != STRIKEOUT_NONE;
                 aSet.Put( SvxCrossedOutItem( bOld ? STRIKEOUT_NONE : 
STRIKEOUT_SINGLE, EE_CHAR_STRIKEOUT ) );
                 rBindings.Invalidate( nSlot );
             }
@@ -1022,8 +1019,7 @@ void ScEditShell::ExecuteAttr(SfxRequest& rReq)
 
         case SID_ATTR_CHAR_SHADOWED:
             {
-                bool bOld = static_cast<const 
SvxShadowedItem&>(pEditView->GetAttribs().
-                                Get(EE_CHAR_SHADOW)).GetValue();
+                bool bOld = 
pEditView->GetAttribs().Get(EE_CHAR_SHADOW).GetValue();
                 aSet.Put( SvxShadowedItem( !bOld, EE_CHAR_SHADOW ) );
                 rBindings.Invalidate( nSlot );
             }
@@ -1031,8 +1027,7 @@ void ScEditShell::ExecuteAttr(SfxRequest& rReq)
 
         case SID_ATTR_CHAR_CONTOUR:
             {
-                bool bOld = static_cast<const 
SvxContourItem&>(pEditView->GetAttribs().
-                                Get(EE_CHAR_OUTLINE)).GetValue();
+                bool bOld = 
pEditView->GetAttribs().Get(EE_CHAR_OUTLINE).GetValue();
                 aSet.Put( SvxContourItem( !bOld, EE_CHAR_OUTLINE ) );
                 rBindings.Invalidate( nSlot );
             }
@@ -1040,8 +1035,8 @@ void ScEditShell::ExecuteAttr(SfxRequest& rReq)
 
         case SID_SET_SUPER_SCRIPT:
             {
-                SvxEscapement eOld = (SvxEscapement) static_cast<const 
SvxEscapementItem&>(
-                        
pEditView->GetAttribs().Get(EE_CHAR_ESCAPEMENT)).GetEnumValue();
+                SvxEscapement eOld = (SvxEscapement)
+                        
pEditView->GetAttribs().Get(EE_CHAR_ESCAPEMENT).GetEnumValue();
                 SvxEscapement eNew = (eOld == SvxEscapement::Superscript) ?
                                         SvxEscapement::Off : 
SvxEscapement::Superscript;
                 aSet.Put( SvxEscapementItem( eNew, EE_CHAR_ESCAPEMENT ) );
@@ -1050,8 +1045,8 @@ void ScEditShell::ExecuteAttr(SfxRequest& rReq)
             break;
         case SID_SET_SUB_SCRIPT:
             {
-                SvxEscapement eOld = (SvxEscapement) static_cast<const 
SvxEscapementItem&>(
-                        
pEditView->GetAttribs().Get(EE_CHAR_ESCAPEMENT)).GetEnumValue();
+                SvxEscapement eOld = (SvxEscapement)
+                        
pEditView->GetAttribs().Get(EE_CHAR_ESCAPEMENT).GetEnumValue();
                 SvxEscapement eNew = (eOld == SvxEscapement::Subscript) ?
                                         SvxEscapement::Off : 
SvxEscapement::Subscript;
                 aSet.Put( SvxEscapementItem( eNew, EE_CHAR_ESCAPEMENT ) );
@@ -1144,8 +1139,7 @@ void ScEditShell::GetAttrState(SfxItemSet &rSet)
     }
     else
     {
-        FontLineStyle eUnderline = static_cast<const SvxUnderlineItem&>(
-                    aAttribs.Get(EE_CHAR_UNDERLINE)).GetLineStyle();
+        FontLineStyle eUnderline = 
aAttribs.Get(EE_CHAR_UNDERLINE).GetLineStyle();
         sal_uInt16 nId = SID_ULINE_VAL_NONE;
         switch (eUnderline)
         {
@@ -1163,8 +1157,7 @@ void ScEditShell::GetAttrState(SfxItemSet &rSet)
     if ( pHdl && pHdl->IsFormulaMode() )
         rSet.ClearItem( EE_CHAR_WEIGHT );   // Highlighted brace not here
 
-    SvxEscapement eEsc = (SvxEscapement) static_cast<const SvxEscapementItem&>(
-                    aAttribs.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue();
+    SvxEscapement eEsc = (SvxEscapement) aAttribs.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
     if( eEsc == SvxEscapement::Superscript )
     {
         rSet.Put( SfxBoolItem( SID_SET_SUPER_SCRIPT, true ) );
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index c344f751c10e..eb990ce561b7 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -2192,9 +2192,9 @@ static void lcl_ScaleFonts( EditEngine& rEngine, long 
nPercent )
             ESelection aSel( nPar, nStart, nPar, nEnd );
             SfxItemSet aAttribs = rEngine.GetAttribs( aSel );
 
-            long nWestern = static_cast<const 
SvxFontHeightItem&>(aAttribs.Get(EE_CHAR_FONTHEIGHT)).GetHeight();
-            long nCJK = static_cast<const 
SvxFontHeightItem&>(aAttribs.Get(EE_CHAR_FONTHEIGHT_CJK)).GetHeight();
-            long nCTL = static_cast<const 
SvxFontHeightItem&>(aAttribs.Get(EE_CHAR_FONTHEIGHT_CTL)).GetHeight();
+            long nWestern = aAttribs.Get(EE_CHAR_FONTHEIGHT).GetHeight();
+            long nCJK = aAttribs.Get(EE_CHAR_FONTHEIGHT_CJK).GetHeight();
+            long nCTL = aAttribs.Get(EE_CHAR_FONTHEIGHT_CTL).GetHeight();
 
             nWestern = ( nWestern * nPercent ) / 100;
             nCJK     = ( nCJK     * nPercent ) / 100;
diff --git a/sc/source/ui/view/printfun.cxx b/sc/source/ui/view/printfun.cxx
index 12236ffdac7f..2571f27eff4d 100644
--- a/sc/source/ui/view/printfun.cxx
+++ b/sc/source/ui/view/printfun.cxx
@@ -35,6 +35,7 @@
 #include <editeng/pbinitem.hxx>
 #include <editeng/shaditem.hxx>
 #include <editeng/sizeitem.hxx>
+#include <editeng/fhgtitem.hxx>
 #include <svx/svdpagv.hxx>
 #include <editeng/ulspitem.hxx>
 #include <sfx2/app.hxx>
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index f27a9ec685b2..1f0cd6fde6e2 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -590,7 +590,7 @@ void SdImportTest::testFdo68594()
     SdrObject *pObj = pPage->GetObj(1);
     SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
     CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
-    const SvxColorItem *pC = dynamic_cast<const SvxColorItem 
*>(&pTxtObj->GetMergedItem(EE_CHAR_COLOR));
+    const SvxColorItem *pC = &pTxtObj->GetMergedItem(EE_CHAR_COLOR);
     CPPUNIT_ASSERT_MESSAGE( "no color item", pC != nullptr);
     // Color should be black
     CPPUNIT_ASSERT_EQUAL_MESSAGE( "Placeholder color mismatch", 
static_cast<ColorData>(0), pC->GetValue().GetColor());
diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx 
b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index 37ded6498370..9622946a4743 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -1342,7 +1342,7 @@ void SdTiledRenderingTest::testTdf102223()
     EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
     rEditView.SetSelection(ESelection(0, 0, 0, 3)); // start para, start char, 
end para, end char.
     CPPUNIT_ASSERT_EQUAL(OUString("Red"), rEditView.GetSelected());
-    const SvxFontHeightItem& rItem = static_cast<const 
SvxFontHeightItem&>(rEditView.GetAttribs().Get(EE_CHAR_FONTHEIGHT));
+    const SvxFontHeightItem& rItem = 
rEditView.GetAttribs().Get(EE_CHAR_FONTHEIGHT);
     CPPUNIT_ASSERT_EQUAL((int)1411, (int)rItem.GetHeight());
 
     // cut contents of cell
@@ -1354,7 +1354,7 @@ void SdTiledRenderingTest::testTdf102223()
     CPPUNIT_ASSERT(pView->GetTextEditObject());
     EditView& rEditView2 = pView->GetTextEditOutlinerView()->GetEditView();
     rEditView2.SetSelection(ESelection(0, 0, 0, 1)); // start para, start 
char, end para, end char.
-    const SvxFontHeightItem& rItem2 = static_cast<const 
SvxFontHeightItem&>(rEditView2.GetAttribs().Get(EE_CHAR_FONTHEIGHT));
+    const SvxFontHeightItem& rItem2 = 
rEditView2.GetAttribs().Get(EE_CHAR_FONTHEIGHT);
     CPPUNIT_ASSERT_EQUAL((int)1411, (int)rItem2.GetHeight());
 
     comphelper::LibreOfficeKit::setActive(false);
diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx
index 9654035413aa..9479976ac74e 100644
--- a/sd/source/core/sdpage.cxx
+++ b/sd/source/core/sdpage.cxx
@@ -1948,14 +1948,14 @@ void SdPage::ScaleObjects(const Size& rNewPageSize, 
const ::tools::Rectangle& rN
                             {
                                 SfxItemSet& rSet = pTitleSheet->GetItemSet();
 
-                                const SvxFontHeightItem& rOldHgt = 
static_cast<const SvxFontHeightItem&>( rSet.Get(EE_CHAR_FONTHEIGHT) );
+                                const SvxFontHeightItem& rOldHgt = 
rSet.Get(EE_CHAR_FONTHEIGHT);
                                 sal_uLong nFontHeight = rOldHgt.GetHeight();
                                 nFontHeight = long(nFontHeight * (double) 
aFractY);
                                 rSet.Put(SvxFontHeightItem(nFontHeight, 100, 
EE_CHAR_FONTHEIGHT));
 
                                 if( SfxItemState::DEFAULT == 
rSet.GetItemState( EE_CHAR_FONTHEIGHT_CJK ) )
                                 {
-                                    const SvxFontHeightItem& rOldHgt2 = 
static_cast<const SvxFontHeightItem&>( rSet.Get(EE_CHAR_FONTHEIGHT_CJK) );
+                                    const SvxFontHeightItem& rOldHgt2 = 
rSet.Get(EE_CHAR_FONTHEIGHT_CJK);
                                     nFontHeight = rOldHgt2.GetHeight();
                                     nFontHeight = long(nFontHeight * (double) 
aFractY);
                                     rSet.Put(SvxFontHeightItem(nFontHeight, 
100, EE_CHAR_FONTHEIGHT_CJK));
@@ -1963,7 +1963,7 @@ void SdPage::ScaleObjects(const Size& rNewPageSize, const 
::tools::Rectangle& rN
 
                                 if( SfxItemState::DEFAULT == 
rSet.GetItemState( EE_CHAR_FONTHEIGHT_CTL ) )
                                 {
-                                    const SvxFontHeightItem& rOldHgt2 = 
static_cast<const SvxFontHeightItem&>( rSet.Get(EE_CHAR_FONTHEIGHT_CTL) );
+                                    const SvxFontHeightItem& rOldHgt2 = 
rSet.Get(EE_CHAR_FONTHEIGHT_CTL);
                                     nFontHeight = rOldHgt2.GetHeight();
                                     nFontHeight = long(nFontHeight * (double) 
aFractY);
                                     rSet.Put(SvxFontHeightItem(nFontHeight, 
100, EE_CHAR_FONTHEIGHT_CTL));
@@ -1987,14 +1987,14 @@ void SdPage::ScaleObjects(const Size& rNewPageSize, 
const ::tools::Rectangle& rN
                                     // Calculate new font height
                                     SfxItemSet 
aTempSet(pOutlineSheet->GetItemSet());
 
-                                    const SvxFontHeightItem& rOldHgt = 
static_cast<const SvxFontHeightItem&>( aTempSet.Get(EE_CHAR_FONTHEIGHT) );
+                                    const SvxFontHeightItem& rOldHgt = 
aTempSet.Get(EE_CHAR_FONTHEIGHT);
                                     sal_uLong nFontHeight = 
rOldHgt.GetHeight();
                                     nFontHeight = long(nFontHeight * (double) 
aFractY);
                                     
aTempSet.Put(SvxFontHeightItem(nFontHeight, 100, EE_CHAR_FONTHEIGHT));
 
                                     if( SfxItemState::DEFAULT == 
aTempSet.GetItemState( EE_CHAR_FONTHEIGHT_CJK ) )
                                     {
-                                        const SvxFontHeightItem& rOldHgt2 = 
static_cast<const SvxFontHeightItem&>( aTempSet.Get(EE_CHAR_FONTHEIGHT_CJK) );
+                                        const SvxFontHeightItem& rOldHgt2 = 
aTempSet.Get(EE_CHAR_FONTHEIGHT_CJK);
                                         nFontHeight = rOldHgt2.GetHeight();
                                         nFontHeight = long(nFontHeight * 
(double) aFractY);
                                         
aTempSet.Put(SvxFontHeightItem(nFontHeight, 100, EE_CHAR_FONTHEIGHT_CJK));
@@ -2002,7 +2002,7 @@ void SdPage::ScaleObjects(const Size& rNewPageSize, const 
::tools::Rectangle& rN
 
                                     if( SfxItemState::DEFAULT == 
aTempSet.GetItemState( EE_CHAR_FONTHEIGHT_CTL ) )
                                     {
-                                        const SvxFontHeightItem& rOldHgt2 = 
static_cast<const SvxFontHeightItem&>( aTempSet.Get(EE_CHAR_FONTHEIGHT_CTL) );
+                                        const SvxFontHeightItem& rOldHgt2 = 
aTempSet.Get(EE_CHAR_FONTHEIGHT_CTL);
                                         nFontHeight = rOldHgt2.GetHeight();
                                         nFontHeight = long(nFontHeight * 
(double) aFractY);
                                         
aTempSet.Put(SvxFontHeightItem(nFontHeight, 100, EE_CHAR_FONTHEIGHT_CTL));
diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx
index 0fe25f35df06..47ee855153d2 100644
--- a/sd/source/core/stlsheet.cxx
+++ b/sd/source/core/stlsheet.cxx
@@ -529,8 +529,8 @@ void SdStyleSheet::AdjustToFontHeight(SfxItemSet& rSet, 
bool bOnlyMissingItems)
         rSet.GetItemState(EE_CHAR_FONTHEIGHT) == SfxItemState::SET)
     {
         const SfxItemSet* pCurSet = &GetItemSet();
-        sal_uInt32 nNewHeight = static_cast<const 
SvxFontHeightItem&>(rSet.Get(EE_CHAR_FONTHEIGHT)).GetHeight();
-        sal_uInt32 nOldHeight = static_cast<const 
SvxFontHeightItem&>(pCurSet->Get(EE_CHAR_FONTHEIGHT)).GetHeight();
+        sal_uInt32 nNewHeight = rSet.Get(EE_CHAR_FONTHEIGHT).GetHeight();
+        sal_uInt32 nOldHeight = pCurSet->Get(EE_CHAR_FONTHEIGHT).GetHeight();
 
         if (rSet.GetItemState(EE_PARA_BULLET) != SfxItemState::SET || 
!bOnlyMissingItems)
         {
diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx
index 428605c5a964..497a0912f5c1 100644
--- a/sd/source/filter/html/htmlex.cxx
+++ b/sd/source/filter/html/htmlex.cxx
@@ -1477,7 +1477,7 @@ OUString HtmlExport::TextAttribToHTMLString( SfxItemSet 
const * pSet, HtmlState*
 
     if ( pSet->GetItemState( EE_CHAR_WEIGHT ) == SfxItemState::SET )
     {
-        bTemp = static_cast<const SvxWeightItem&>(pSet->Get( EE_CHAR_WEIGHT 
)).GetWeight() == WEIGHT_BOLD;
+        bTemp = pSet->Get( EE_CHAR_WEIGHT ).GetWeight() == WEIGHT_BOLD;
         aTemp = pState->SetWeight( bTemp );
         if( bTemp )
             aStr.insert(0, aTemp);
@@ -1487,7 +1487,7 @@ OUString HtmlExport::TextAttribToHTMLString( SfxItemSet 
const * pSet, HtmlState*
 
     if ( pSet->GetItemState( EE_CHAR_UNDERLINE ) == SfxItemState::SET )
     {
-        bTemp = static_cast<const SvxUnderlineItem&>(pSet->Get( 
EE_CHAR_UNDERLINE )).GetLineStyle() != LINESTYLE_NONE;
+        bTemp = pSet->Get( EE_CHAR_UNDERLINE ).GetLineStyle() != 
LINESTYLE_NONE;
         aTemp = pState->SetUnderline( bTemp );
         if( bTemp )
             aStr.insert(0, aTemp);
@@ -1497,7 +1497,7 @@ OUString HtmlExport::TextAttribToHTMLString( SfxItemSet 
const * pSet, HtmlState*
 
     if ( pSet->GetItemState( EE_CHAR_STRIKEOUT ) == SfxItemState::SET )
     {
-        bTemp = static_cast<const SvxCrossedOutItem&>(pSet->Get( 
EE_CHAR_STRIKEOUT )).GetStrikeout() != STRIKEOUT_NONE;
+        bTemp = pSet->Get( EE_CHAR_STRIKEOUT ).GetStrikeout() != 
STRIKEOUT_NONE;
         aTemp = pState->SetStrikeout( bTemp );
         if( bTemp )
             aStr.insert(0, aTemp);
@@ -1507,7 +1507,7 @@ OUString HtmlExport::TextAttribToHTMLString( SfxItemSet 
const * pSet, HtmlState*
 
     if ( pSet->GetItemState( EE_CHAR_ITALIC ) == SfxItemState::SET )
     {
-        bTemp = static_cast<const SvxPostureItem&>(pSet->Get( EE_CHAR_ITALIC 
)).GetPosture() != ITALIC_NONE;
+        bTemp = pSet->Get( EE_CHAR_ITALIC ).GetPosture() != ITALIC_NONE;
         aTemp = pState->SetItalic( bTemp );
         if( bTemp )
             aStr.insert(0, aTemp);
@@ -1519,7 +1519,7 @@ OUString HtmlExport::TextAttribToHTMLString( SfxItemSet 
const * pSet, HtmlState*
     {
         if ( pSet->GetItemState( EE_CHAR_COLOR ) == SfxItemState::SET )
         {
-            Color aTextColor = static_cast<const SvxColorItem&>(pSet->Get( 
EE_CHAR_COLOR )).GetValue();
+            Color aTextColor = pSet->Get( EE_CHAR_COLOR ).GetValue();
             if( aTextColor == COL_AUTO )
             {
                 if( !rBackgroundColor.IsDark() )
diff --git a/sd/source/ui/annotations/annotationmanager.cxx 
b/sd/source/ui/annotations/annotationmanager.cxx
index 06b23d2ae26b..d9df5c535086 100644
--- a/sd/source/ui/annotations/annotationmanager.cxx
+++ b/sd/source/ui/annotations/annotationmanager.cxx
@@ -1120,25 +1120,25 @@ void 
AnnotationManagerImpl::ExecuteAnnotationContextMenu( const Reference< XAnno
 
             if ( aSet.GetItemState( EE_CHAR_WEIGHT ) == SfxItemState::SET )
             {
-                if( static_cast<const SvxWeightItem&>(aSet.Get( EE_CHAR_WEIGHT 
)).GetWeight() == WEIGHT_BOLD )
+                if( aSet.Get( EE_CHAR_WEIGHT ).GetWeight() == WEIGHT_BOLD )
                     pMenu->CheckItem(pMenu->GetItemId("bold"));
             }
 
             if ( aSet.GetItemState( EE_CHAR_ITALIC ) == SfxItemState::SET )
             {
-                if( static_cast<const SvxPostureItem&>(aSet.Get( 
EE_CHAR_ITALIC )).GetPosture() != ITALIC_NONE )
+                if( aSet.Get( EE_CHAR_ITALIC ).GetPosture() != ITALIC_NONE )
                     pMenu->CheckItem(pMenu->GetItemId("italic"));
 
             }
             if ( aSet.GetItemState( EE_CHAR_UNDERLINE ) == SfxItemState::SET )
             {
-                if( static_cast<const SvxUnderlineItem&>(aSet.Get( 
EE_CHAR_UNDERLINE )).GetLineStyle() != LINESTYLE_NONE )
+                if( aSet.Get( EE_CHAR_UNDERLINE ).GetLineStyle() != 
LINESTYLE_NONE )
                     pMenu->CheckItem(pMenu->GetItemId("underline"));
             }
 
             if ( aSet.GetItemState( EE_CHAR_STRIKEOUT ) == SfxItemState::SET )
             {
-                if( static_cast<const SvxCrossedOutItem&>(aSet.Get( 
EE_CHAR_STRIKEOUT )).GetStrikeout() != STRIKEOUT_NONE )
+                if( aSet.Get( EE_CHAR_STRIKEOUT ).GetStrikeout() != 
STRIKEOUT_NONE )
                     pMenu->CheckItem(pMenu->GetItemId("strike"));
             }
             TransferableDataHelper aDataHelper( 
TransferableDataHelper::CreateFromSystemClipboard( pAnnotationWindow ) );
diff --git a/sd/source/ui/annotations/annotationwindow.cxx 
b/sd/source/ui/annotations/annotationwindow.cxx
index d7bebce766ce..46de3bffe1b7 100644
--- a/sd/source/ui/annotations/annotationwindow.cxx
+++ b/sd/source/ui/annotations/annotationwindow.cxx
@@ -752,25 +752,25 @@ void AnnotationWindow::ExecuteSlot( sal_uInt16 nSID )
         {
         case SID_ATTR_CHAR_WEIGHT:
         {
-            FontWeight eFW = static_cast<const SvxWeightItem&>( aEditAttr.Get( 
EE_CHAR_WEIGHT ) ).GetWeight();
+            FontWeight eFW = aEditAttr.Get( EE_CHAR_WEIGHT ).GetWeight();
             aNewAttr.Put( SvxWeightItem( eFW == WEIGHT_NORMAL ? WEIGHT_BOLD : 
WEIGHT_NORMAL, EE_CHAR_WEIGHT ) );
         }
         break;
         case SID_ATTR_CHAR_POSTURE:
         {
-            FontItalic eFI = static_cast<const SvxPostureItem&>( 
aEditAttr.Get( EE_CHAR_ITALIC ) ).GetPosture();
+            FontItalic eFI = aEditAttr.Get( EE_CHAR_ITALIC ).GetPosture();
             aNewAttr.Put( SvxPostureItem( eFI == ITALIC_NORMAL ? ITALIC_NONE : 
ITALIC_NORMAL, EE_CHAR_ITALIC ) );
         }
         break;
         case SID_ATTR_CHAR_UNDERLINE:
         {
-            FontLineStyle eFU = static_cast<const SvxUnderlineItem&>( 
aEditAttr. Get( EE_CHAR_UNDERLINE ) ).GetLineStyle();
+            FontLineStyle eFU = aEditAttr. Get( EE_CHAR_UNDERLINE 
).GetLineStyle();
             aNewAttr.Put( SvxUnderlineItem( eFU == LINESTYLE_SINGLE ? 
LINESTYLE_NONE : LINESTYLE_SINGLE, EE_CHAR_UNDERLINE ) );
         }
         break;
         case SID_ATTR_CHAR_STRIKEOUT:
         {
-            FontStrikeout eFSO = static_cast<const SvxCrossedOutItem&>( 
aEditAttr.Get( EE_CHAR_STRIKEOUT ) ).GetStrikeout();
+            FontStrikeout eFSO = aEditAttr.Get( EE_CHAR_STRIKEOUT 
).GetStrikeout();
             aNewAttr.Put( SvxCrossedOutItem( eFSO == STRIKEOUT_SINGLE ? 
STRIKEOUT_NONE : STRIKEOUT_SINGLE, EE_CHAR_STRIKEOUT ) );
         }
         break;
diff --git a/sd/source/ui/func/fuhhconv.cxx b/sd/source/ui/func/fuhhconv.cxx
index c4616e3ab6af..3eac550fc361 100644
--- a/sd/source/ui/func/fuhhconv.cxx
+++ b/sd/source/ui/func/fuhhconv.cxx
@@ -171,7 +171,7 @@ void FuHangulHanjaConversion::ConvertStyles( LanguageType 
nTargetLanguage, const
             ( !bHasParent || rSet.GetItemState( EE_CHAR_FONTINFO_CJK, false ) 
== SfxItemState::SET ) )
         {
             // set new font attribute
-            SvxFontItem aFontItem( static_cast<const SvxFontItem&>( rSet.Get( 
EE_CHAR_FONTINFO_CJK ) ) );
+            SvxFontItem aFontItem( rSet.Get( EE_CHAR_FONTINFO_CJK ) );
             aFontItem.SetFamilyName(   pTargetFont->GetFamilyName());
             aFontItem.SetFamily(       pTargetFont->GetFamilyType());
             aFontItem.SetStyleName(    pTargetFont->GetStyleName());
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
index 3e3143f20dd6..b2ca0d1111b1 100644
--- a/sd/source/ui/func/futext.cxx
+++ b/sd/source/ui/func/futext.cxx
@@ -27,6 +27,7 @@
 #include <tools/urlobj.hxx>
 #include <vcl/help.hxx>
 #include <editeng/editstat.hxx>
+#include <editeng/fhgtitem.hxx>
 #include <svl/aeitem.hxx>
 #include <svl/intitem.hxx>
 #include <svx/svdotext.hxx>
diff --git a/sd/source/ui/table/TableDesignPane.cxx 
b/sd/source/ui/table/TableDesignPane.cxx
index 8026e3a8adf8..9e4920ab2ccf 100644
--- a/sd/source/ui/table/TableDesignPane.cxx
+++ b/sd/source/ui/table/TableDesignPane.cxx
@@ -470,7 +470,7 @@ CellInfo::CellInfo( const Reference< XStyle >& xStyle )
             maCellColor.SetColor( COL_TRANSPARENT );
 
         // get style text color
-        const SvxColorItem* pTextColor = dynamic_cast<const SvxColorItem*>( 
rSet.GetItem(EE_CHAR_COLOR) );
+        const SvxColorItem* pTextColor = rSet.GetItem(EE_CHAR_COLOR);
         if( pTextColor )
             maTextColor = pTextColor->GetValue();
         else
diff --git a/sd/source/ui/view/drtxtob.cxx b/sd/source/ui/view/drtxtob.cxx
index 9f17f7f08915..3bcaf5e71f90 100644
--- a/sd/source/ui/view/drtxtob.cxx
+++ b/sd/source/ui/view/drtxtob.cxx
@@ -134,7 +134,7 @@ void TextObjectBar::GetCharState( SfxItemSet& rSet )
     aNewAttr.Put(aCharAttrSet, false);
     rSet.Put(aNewAttr, false);
 
-    SvxKerningItem aKern = static_cast<const SvxKerningItem&>( 
aCharAttrSet.Get( EE_CHAR_KERNING ) );
+    SvxKerningItem aKern = aCharAttrSet.Get( EE_CHAR_KERNING );
     //aKern.SetWhich(SID_ATTR_CHAR_KERNING);
     rSet.Put(aKern);
 
@@ -581,8 +581,7 @@ void TextObjectBar::GetAttrState( SfxItemSet& rSet )
     }
 
     // justification (superscript, subscript) is also needed in outline-mode
-    SvxEscapement eEsc = (SvxEscapement ) static_cast<const 
SvxEscapementItem&>(
-                    aAttrSet.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue();
+    SvxEscapement eEsc = (SvxEscapement ) aAttrSet.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
 
     if( eEsc == SvxEscapement::Superscript )
         rSet.Put( SfxBoolItem( SID_SET_SUPER_SCRIPT, true ) );
diff --git a/sd/source/ui/view/drtxtob1.cxx b/sd/source/ui/view/drtxtob1.cxx
index b2db72bf1b55..40af5696ff75 100644
--- a/sd/source/ui/view/drtxtob1.cxx
+++ b/sd/source/ui/view/drtxtob1.cxx
@@ -444,8 +444,7 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                 {
                     case SID_ATTR_CHAR_WEIGHT:
                     {
-                        FontWeight eFW = static_cast<const SvxWeightItem&>( 
aEditAttr.
-                                        Get( EE_CHAR_WEIGHT ) ).GetWeight();
+                        FontWeight eFW = aEditAttr.Get( EE_CHAR_WEIGHT 
).GetWeight();
                         aNewAttr.Put( SvxWeightItem( eFW == WEIGHT_NORMAL ?
                                             WEIGHT_BOLD : WEIGHT_NORMAL,
                                             EE_CHAR_WEIGHT ) );
@@ -453,8 +452,7 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                     break;
                     case SID_ATTR_CHAR_POSTURE:
                     {
-                        FontItalic eFI = static_cast<const SvxPostureItem&>( 
aEditAttr.
-                                        Get( EE_CHAR_ITALIC ) ).GetPosture();
+                        FontItalic eFI = aEditAttr.Get( EE_CHAR_ITALIC 
).GetPosture();
                         aNewAttr.Put( SvxPostureItem( eFI == ITALIC_NORMAL ?
                                             ITALIC_NONE : ITALIC_NORMAL,
                                             EE_CHAR_ITALIC ) );
@@ -462,8 +460,7 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                     break;
                     case SID_ATTR_CHAR_UNDERLINE:
                     {
-                        FontLineStyle eFU = static_cast<const 
SvxUnderlineItem&>( aEditAttr.
-                                        Get( EE_CHAR_UNDERLINE ) 
).GetLineStyle();
+                        FontLineStyle eFU = aEditAttr.Get( EE_CHAR_UNDERLINE 
).GetLineStyle();
                         aNewAttr.Put( SvxUnderlineItem( eFU == 
LINESTYLE_SINGLE ?
                                             LINESTYLE_NONE : LINESTYLE_SINGLE,
                                             EE_CHAR_UNDERLINE ) );
@@ -471,8 +468,7 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                     break;
                     case SID_ATTR_CHAR_OVERLINE:
                     {
-                        FontLineStyle eFO = static_cast<const 
SvxOverlineItem&>( aEditAttr.
-                                        Get( EE_CHAR_OVERLINE ) 
).GetLineStyle();
+                        FontLineStyle eFO = aEditAttr.Get( EE_CHAR_OVERLINE 
).GetLineStyle();
                         aNewAttr.Put( SvxOverlineItem( eFO == LINESTYLE_SINGLE 
?
                                             LINESTYLE_NONE : LINESTYLE_SINGLE,
                                             EE_CHAR_OVERLINE ) );
@@ -480,26 +476,22 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                     break;
                     case SID_ATTR_CHAR_CONTOUR:
                     {
-                        aNewAttr.Put( SvxContourItem( !static_cast<const 
SvxContourItem&>( aEditAttr.
-                                        Get( EE_CHAR_OUTLINE ) ).GetValue(), 
EE_CHAR_OUTLINE ) );
+                        aNewAttr.Put( SvxContourItem( !aEditAttr.Get( 
EE_CHAR_OUTLINE ).GetValue(), EE_CHAR_OUTLINE ) );
                     }
                     break;
                     case SID_ATTR_CHAR_SHADOWED:
                     {
-                        aNewAttr.Put( SvxShadowedItem( !static_cast<const 
SvxShadowedItem&>( aEditAttr.
-                                        Get( EE_CHAR_SHADOW ) ).GetValue(), 
EE_CHAR_SHADOW ) );
+                        aNewAttr.Put( SvxShadowedItem( !aEditAttr.Get( 
EE_CHAR_SHADOW ).GetValue(), EE_CHAR_SHADOW ) );
                     }
                     break;
                     case SID_ATTR_CHAR_CASEMAP:
                     {
-                        aNewAttr.Put( SvxCaseMapItem( static_cast<const 
SvxCaseMapItem&>( aEditAttr.
-                                        Get( EE_CHAR_CASEMAP ) ) ) );
+                        aNewAttr.Put( SvxCaseMapItem( aEditAttr.Get( 
EE_CHAR_CASEMAP ) ) );
                     }
                     break;
                     case SID_ATTR_CHAR_STRIKEOUT:
                     {
-                        FontStrikeout eFSO = ( static_cast<const 
SvxCrossedOutItem&>( aEditAttr.
-                                        Get( EE_CHAR_STRIKEOUT ) 
).GetStrikeout() );
+                        FontStrikeout eFSO = aEditAttr.Get( EE_CHAR_STRIKEOUT 
).GetStrikeout();
                         aNewAttr.Put( SvxCrossedOutItem( eFSO == 
STRIKEOUT_SINGLE ?
                                             STRIKEOUT_NONE : STRIKEOUT_SINGLE, 
EE_CHAR_STRIKEOUT ) );
                     }
@@ -549,8 +541,8 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                     case SID_SET_SUPER_SCRIPT:
                     {
                         SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT );
-                        SvxEscapement eEsc = (SvxEscapement ) 
static_cast<const SvxEscapementItem&>(
-                                        aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+                        SvxEscapement eEsc = (SvxEscapement )
+                                        aEditAttr.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
 
                         if( eEsc == SvxEscapement::Superscript )
                             aItem.SetEscapement( SvxEscapement::Off );
@@ -562,8 +554,8 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                     case SID_SET_SUB_SCRIPT:
                     {
                         SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT );
-                        SvxEscapement eEsc = (SvxEscapement ) 
static_cast<const SvxEscapementItem&>(
-                                        aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+                        SvxEscapement eEsc = (SvxEscapement )
+                                        aEditAttr.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
 
                         if( eEsc == SvxEscapement::Subscript )
                             aItem.SetEscapement( SvxEscapement::Off );
@@ -674,8 +666,8 @@ void TextObjectBar::Execute( SfxRequest &rReq )
             else if(nSlot ==  SID_SET_SUPER_SCRIPT )
             {
                 SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
-                SvxEscapement eEsc = (SvxEscapement) static_cast<const 
SvxEscapementItem&>(
-                                aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+                SvxEscapement eEsc = (SvxEscapement)
+                                aEditAttr.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
 
                 if( eEsc == SvxEscapement::Superscript )
                     aItem.SetEscapement( SvxEscapement::Off );
@@ -688,8 +680,8 @@ void TextObjectBar::Execute( SfxRequest &rReq )
             else if( nSlot ==  SID_SET_SUB_SCRIPT )
             {
                 SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
-                SvxEscapement eEsc = (SvxEscapement) static_cast<const 
SvxEscapementItem&>(
-                                aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+                SvxEscapement eEsc = (SvxEscapement)
+                                aEditAttr.Get( EE_CHAR_ESCAPEMENT 
).GetEnumValue();
 
                 if( eEsc == SvxEscapement::Subscript )
                     aItem.SetEscapement( SvxEscapement::Off );
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 6e327c690ae1..6b0259bfeaae 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -3382,7 +3382,7 @@ void DrawViewShell::ExecChar( SfxRequest &rReq )
             }
             else
             {
-                FontLineStyle eFU = static_cast<const SvxUnderlineItem&>( 
aEditAttr.Get( EE_CHAR_UNDERLINE ) ).GetLineStyle();
+                FontLineStyle eFU = aEditAttr.Get( EE_CHAR_UNDERLINE 
).GetLineStyle();
                 aNewAttr.Put( SvxUnderlineItem( eFU != LINESTYLE_NONE 
?LINESTYLE_NONE : LINESTYLE_SINGLE,  EE_CHAR_UNDERLINE ) );
             }//aNewAttr.Put( (const SvxUnderlineItem&)aEditAttr.Get( 
EE_CHAR_UNDERLINE ) );
         }
@@ -3440,8 +3440,7 @@ void DrawViewShell::ExecChar( SfxRequest &rReq )
     case SID_SET_SUB_SCRIPT:
         {
             SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT );
-            SvxEscapement eEsc = (SvxEscapement ) static_cast<const 
SvxEscapementItem&>(
-                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+            SvxEscapement eEsc = (SvxEscapement ) aEditAttr.Get( 
EE_CHAR_ESCAPEMENT ).GetEnumValue();
             if( eEsc == SvxEscapement::Subscript )
                 aItem.SetEscapement( SvxEscapement::Off );
             else
@@ -3452,8 +3451,7 @@ void DrawViewShell::ExecChar( SfxRequest &rReq )
     case SID_SET_SUPER_SCRIPT:
         {
             SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT );
-            SvxEscapement eEsc = (SvxEscapement ) static_cast<const 
SvxEscapementItem&>(
-                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+            SvxEscapement eEsc = (SvxEscapement ) aEditAttr.Get( 
EE_CHAR_ESCAPEMENT ).GetEnumValue();
             if( eEsc == SvxEscapement::Superscript )
                 aItem.SetEscapement( SvxEscapement::Off );
             else
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
index b4833f19a2bd..dc13ed8cbca8 100644
--- a/sd/source/ui/view/drviewsf.cxx
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -718,8 +718,8 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
             rSet.InvalidateItem(SID_ATTR_PARA_ULSPACE);
         }
 
-        SvxEscapement eEsc = (SvxEscapement) static_cast<const 
SvxEscapementItem&>(
-                        pSet->Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue();
+        SvxEscapement eEsc = (SvxEscapement)
+                        pSet->Get( EE_CHAR_ESCAPEMENT ).GetEnumValue();
         if( eEsc == SvxEscapement::Superscript )
         {
             rSet.Put( SfxBoolItem( SID_SET_SUPER_SCRIPT, true ) );
diff --git a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx 
b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
index a3c09c83038d..0aea03d3ed54 100644
--- a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
@@ -157,7 +157,7 @@ void CalculateHorizontalScalingFactor( const SdrObject* 
pCustomShape,
     sal_uInt16 nOutlinesCount2d = rOutline2d.Count();
 
     vcl::Font aFont;
-    const SvxFontItem& rFontItem = static_cast<const 
SvxFontItem&>(pCustomShape->GetMergedItem( EE_CHAR_FONTINFO ));
+    const SvxFontItem& rFontItem = pCustomShape->GetMergedItem( 
EE_CHAR_FONTINFO );
     aFont.SetFontHeight( pCustomShape->GetLogicRect().GetHeight() / 
rFWData.nMaxParagraphsPerTextArea );
     aFont.SetAlignment( ALIGN_TOP );
     aFont.SetFamilyName( rFontItem.GetFamilyName() );
@@ -253,10 +253,10 @@ void GetTextAreaOutline( const FWData& rFWData, const 
SdrObject* pCustomShape, F
             aFont.SetStyleName( rFontItem.GetStyleName() );
             aFont.SetOrientation( 0 );
 
-            const SvxPostureItem& rPostureItem = static_cast<const 
SvxPostureItem&>(pCustomShape->GetMergedItem( EE_CHAR_ITALIC ));
+            const SvxPostureItem& rPostureItem = pCustomShape->GetMergedItem( 
EE_CHAR_ITALIC );
             aFont.SetItalic( rPostureItem.GetPosture() );
 
-            const SvxWeightItem& rWeightItem = static_cast<const 
SvxWeightItem&>(pCustomShape->GetMergedItem( EE_CHAR_WEIGHT ));
+            const SvxWeightItem& rWeightItem = pCustomShape->GetMergedItem( 
EE_CHAR_WEIGHT );
             aFont.SetWeight( rWeightItem.GetWeight() );
 
             // initializing virtual device
@@ -267,7 +267,7 @@ void GetTextAreaOutline( const FWData& rFWData, const 
SdrObject* pCustomShape, F
             if ( aParagraphIter->nFrameDirection == 
SvxFrameDirection::Horizontal_RL_TB )
                 pVirDev->SetLayoutMode( ComplexTextLayoutFlags::BiDiRtl );
 
-            const SvxCharScaleWidthItem& rCharScaleWidthItem = 
static_cast<const SvxCharScaleWidthItem&>(pCustomShape->GetMergedItem( 
EE_CHAR_FONTWIDTH ));
+            const SvxCharScaleWidthItem& rCharScaleWidthItem = 
pCustomShape->GetMergedItem( EE_CHAR_FONTWIDTH );
             sal_uInt16 nCharScaleWidth = rCharScaleWidthItem.GetValue();
             std::unique_ptr<long[]> pDXArry;
             sal_Int32 nWidth = 0;
diff --git a/svx/source/engine3d/view3d.cxx b/svx/source/engine3d/view3d.cxx
index dd4396c91a56..8c63c38f2923 100644
--- a/svx/source/engine3d/view3d.cxx
+++ b/svx/source/engine3d/view3d.cxx
@@ -652,7 +652,7 @@ void 
E3dView::ImpChangeSomeAttributesFor3DConversion(SdrObject* pObj)
     if(dynamic_cast<const SdrTextObj*>( pObj) !=  nullptr)
     {
         const SfxItemSet& rSet = pObj->GetMergedItemSet();
-        const SvxColorItem& rTextColorItem = static_cast<const 
SvxColorItem&>(rSet.Get(EE_CHAR_COLOR));
+        const SvxColorItem& rTextColorItem = rSet.Get(EE_CHAR_COLOR);
         if(rTextColorItem.GetValue() == RGB_Color(COL_BLACK))
         {
             //For black text objects, the color set to gray
diff --git a/svx/source/table/tablertfexporter.cxx 
b/svx/source/table/tablertfexporter.cxx
index cf54d971184e..37d793de6df3 100644
--- a/svx/source/table/tablertfexporter.cxx
+++ b/svx/source/table/tablertfexporter.cxx
@@ -200,9 +200,9 @@ void SdrTableRtfExporter::WriteCell( sal_Int32 nCol, 
sal_Int32 nRow )
 
     const SfxItemSet& rCellSet = xCell->GetItemSet();
 
-    const SvxWeightItem&        rWeightItem     = static_cast<const 
SvxWeightItem&>   ( rCellSet.Get( EE_CHAR_WEIGHT ) );
-    const SvxPostureItem&       rPostureItem    = static_cast<const 
SvxPostureItem&>  ( rCellSet.Get( EE_CHAR_ITALIC ) );
-    const SvxUnderlineItem&     rUnderlineItem  = static_cast<const 
SvxUnderlineItem&>( rCellSet.Get( EE_CHAR_UNDERLINE ) );
+    const SvxWeightItem&        rWeightItem     = rCellSet.Get( EE_CHAR_WEIGHT 
);
+    const SvxPostureItem&       rPostureItem    = rCellSet.Get( EE_CHAR_ITALIC 
);
+    const SvxUnderlineItem&     rUnderlineItem  = rCellSet.Get( 
EE_CHAR_UNDERLINE );
 
     const sal_Char* pChar;
 
diff --git a/svx/source/toolbars/fontworkbar.cxx 
b/svx/source/toolbars/fontworkbar.cxx
index 01a8c424117b..d7d35fb7c0be 100644
--- a/svx/source/toolbars/fontworkbar.cxx
+++ b/svx/source/toolbars/fontworkbar.cxx
@@ -107,7 +107,7 @@ void SetCharacterSpacingState( SdrView const * pSdrView, 
SfxItemSet& rSet )
         if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
         {
             sal_Int32 nOldCharacterSpacing = nCharacterSpacing;
-            const SvxCharScaleWidthItem& rCharScaleWidthItem = 
static_cast<const SvxCharScaleWidthItem&>(pObj->GetMergedItem( 
EE_CHAR_FONTWIDTH ));
+            const SvxCharScaleWidthItem& rCharScaleWidthItem = 
pObj->GetMergedItem( EE_CHAR_FONTWIDTH );
             nCharacterSpacing = rCharScaleWidthItem.GetValue();
             if ( ( nOldCharacterSpacing != -1 ) && ( nOldCharacterSpacing != 
nCharacterSpacing ) )
             {
@@ -131,7 +131,7 @@ void SetKernCharacterPairsState( SdrView const * pSdrView, 
SfxItemSet& rSet )
         SdrObject* pObj = rMarkList.GetMark( i )->GetMarkedSdrObj();
         if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
         {
-            const SvxKerningItem& rKerningItem = static_cast<const 
SvxKerningItem&>(pObj->GetMergedItem( EE_CHAR_KERNING ));
+            const SvxKerningItem& rKerningItem = pObj->GetMergedItem( 
EE_CHAR_KERNING );
             if ( rKerningItem.GetValue() )
                 bChecked = true;
         }
diff --git a/sw/source/uibase/dochdl/swdtflvr.cxx 
b/sw/source/uibase/dochdl/swdtflvr.cxx
index 00c42f143d4b..8618a05ca217 100644
--- a/sw/source/uibase/dochdl/swdtflvr.cxx
+++ b/sw/source/uibase/dochdl/swdtflvr.cxx
@@ -620,7 +620,7 @@ bool SwTransferable::WriteObject( 
tools::SvRef<SotStorageStream>& xStream,
             // for the changed pool defaults from drawing layer pool set those
             // attributes as hard attributes to preserve them for saving
             const SfxItemPool& rItemPool = pModel->GetItemPool();
-            const SvxFontHeightItem& rDefaultFontHeight = static_cast<const 
SvxFontHeightItem&>(rItemPool.GetDefaultItem(EE_CHAR_FONTHEIGHT));
+            const SvxFontHeightItem& rDefaultFontHeight = 
rItemPool.GetDefaultItem(EE_CHAR_FONTHEIGHT);
 
             // SW should have no MasterPages
             OSL_ENSURE(0 == pModel->GetMasterPageCount(), "SW with MasterPages 
(!)");
@@ -633,7 +633,7 @@ bool SwTransferable::WriteObject( 
tools::SvRef<SotStorageStream>& xStream,
                 while(aIter.IsMore())
                 {
                     SdrObject* pObj = aIter.Next();
-                    const SvxFontHeightItem& rItem = static_cast<const 
SvxFontHeightItem&>(pObj->GetMergedItem(EE_CHAR_FONTHEIGHT));
+                    const SvxFontHeightItem& rItem = 
pObj->GetMergedItem(EE_CHAR_FONTHEIGHT);
 
                     if(rItem.GetHeight() == rDefaultFontHeight.GetHeight())
                     {
diff --git a/sw/source/uibase/shells/annotsh.cxx 
b/sw/source/uibase/shells/annotsh.cxx
index 07e6da2a0eac..f7c789f496c0 100644
--- a/sw/source/uibase/shells/annotsh.cxx
+++ b/sw/source/uibase/shells/annotsh.cxx
@@ -280,7 +280,7 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
                 }
                 else
                 {
-                    FontLineStyle eFU = static_cast<const SvxUnderlineItem&>( 
aEditAttr.Get( EE_CHAR_UNDERLINE ) ).GetLineStyle();
+                    FontLineStyle eFU = aEditAttr.Get( EE_CHAR_UNDERLINE 
).GetLineStyle();
                     aNewAttr.Put( SvxUnderlineItem( eFU != LINESTYLE_NONE 
?LINESTYLE_NONE : LINESTYLE_SINGLE,  EE_CHAR_UNDERLINE ) );
                 }
             }
@@ -288,7 +288,7 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
         }
         case SID_ATTR_CHAR_OVERLINE:
         {
-             FontLineStyle eFO = static_cast<const 
SvxOverlineItem&>(aEditAttr.Get(EE_CHAR_OVERLINE)).GetLineStyle();
+            FontLineStyle eFO = aEditAttr.Get(EE_CHAR_OVERLINE).GetLineStyle();
             aNewAttr.Put(SvxOverlineItem(eFO == LINESTYLE_SINGLE ? 
LINESTYLE_NONE : LINESTYLE_SINGLE, EE_CHAR_OVERLINE));
             break;
         }
@@ -356,8 +356,8 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
         case FN_SET_SUPER_SCRIPT:
         {
             SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
-            SvxEscapement eEsc = (SvxEscapement ) static_cast<const 
SvxEscapementItem&>(
-                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+            SvxEscapement eEsc = (SvxEscapement )
+                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ).GetEnumValue();
 
             if( eEsc == SvxEscapement::Superscript )
                 aItem.SetEscapement( SvxEscapement::Off );
@@ -369,8 +369,8 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
         case FN_SET_SUB_SCRIPT:
         {
             SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
-            SvxEscapement eEsc = (SvxEscapement ) static_cast<const 
SvxEscapementItem&>(
-                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+            SvxEscapement eEsc = (SvxEscapement )
+                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ).GetEnumValue();
 
             if( eEsc == SvxEscapement::Subscript )
                 aItem.SetEscapement( SvxEscapement::Off );
diff --git a/sw/source/uibase/shells/drwtxtex.cxx 
b/sw/source/uibase/shells/drwtxtex.cxx
index 696500197643..05cdf39bdc91 100644
--- a/sw/source/uibase/shells/drwtxtex.cxx
+++ b/sw/source/uibase/shells/drwtxtex.cxx
@@ -175,7 +175,7 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
             }
             else
             {
-                FontLineStyle eFU = static_cast<const 
SvxUnderlineItem&>(aEditAttr.Get(EE_CHAR_UNDERLINE)).GetLineStyle();
+                FontLineStyle eFU = 
aEditAttr.Get(EE_CHAR_UNDERLINE).GetLineStyle();
                 aNewAttr.Put( SvxUnderlineItem(eFU == LINESTYLE_SINGLE ? 
LINESTYLE_NONE : LINESTYLE_SINGLE, EE_CHAR_UNDERLINE) );
             }
         }
@@ -183,7 +183,7 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
 
         case SID_ATTR_CHAR_OVERLINE:
         {
-            FontLineStyle eFO = static_cast<const 
SvxOverlineItem&>(aEditAttr.Get(EE_CHAR_OVERLINE)).GetLineStyle();
+            FontLineStyle eFO = aEditAttr.Get(EE_CHAR_OVERLINE).GetLineStyle();
             aNewAttr.Put(SvxOverlineItem(eFO == LINESTYLE_SINGLE ? 
LINESTYLE_NONE : LINESTYLE_SINGLE, EE_CHAR_OVERLINE));
         }
         break;
@@ -302,8 +302,8 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
         case FN_SET_SUPER_SCRIPT:
         {
             SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
-            SvxEscapement eEsc = (SvxEscapement ) static_cast<const 
SvxEscapementItem&>(
-                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+            SvxEscapement eEsc = (SvxEscapement )
+                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ).GetEnumValue();
 
             if( eEsc == SvxEscapement::Superscript )
                 aItem.SetEscapement( SvxEscapement::Off );
@@ -315,8 +315,8 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
         case FN_SET_SUB_SCRIPT:
         {
             SvxEscapementItem aItem(EE_CHAR_ESCAPEMENT);
-            SvxEscapement eEsc = (SvxEscapement ) static_cast<const 
SvxEscapementItem&>(
-                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ) 
).GetEnumValue();
+            SvxEscapement eEsc = (SvxEscapement )
+                            aEditAttr.Get( EE_CHAR_ESCAPEMENT ).GetEnumValue();
 
             if( eEsc == SvxEscapement::Subscript )
                 aItem.SetEscapement( SvxEscapement::Off );
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to