summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--svx/source/editeng/editdoc.cxx30
-rw-r--r--svx/source/editeng/editdoc.hxx6
-rw-r--r--svx/source/editeng/eerdll.cxx11
-rw-r--r--svx/source/editeng/impedit2.cxx109
-rw-r--r--svx/source/editeng/impedit3.cxx39
5 files changed, 118 insertions, 77 deletions
diff --git a/svx/source/editeng/editdoc.cxx b/svx/source/editeng/editdoc.cxx
index 25fe923f59ff..ab6d5d7ae440 100644
--- a/svx/source/editeng/editdoc.cxx
+++ b/svx/source/editeng/editdoc.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: editdoc.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: mt $ $Date: 2000-11-02 15:25:36 $
+ * last change: $Author: mt $ $Date: 2000-11-06 11:44:20 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1179,7 +1179,7 @@ void EditDoc::RemoveItemsFromPool( ContentNode* pNode )
}
}
-void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, BOOL bSearchInParent, short nScriptType )
+void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, BOOL bSearchInParent )
{
Font aPrevFont( rFont );
rFont.SetAlign( ALIGN_BASELINE );
@@ -1188,16 +1188,16 @@ void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, BOOL bSearchInParent, s
if ( bSearchInParent )
{
rFont.SetColor( ((const SvxColorItem&)rSet.Get( EE_CHAR_COLOR )).GetValue() );
- const SvxFontItem& rFontItem = (const SvxFontItem&)rSet.Get( GetScriptItemId( EE_CHAR_FONTINFO, nScriptType ) );
+ const SvxFontItem& rFontItem = (const SvxFontItem&)rSet.Get( EE_CHAR_FONTINFO );
rFont.SetName( rFontItem.GetFamilyName() );
rFont.SetFamily( rFontItem.GetFamily() );
rFont.SetPitch( rFontItem.GetPitch() );
rFont.SetCharSet( rFontItem.GetCharSet() );
- rFont.SetSize( Size( ((const SvxFontWidthItem&)rSet.Get( EE_CHAR_FONTWIDTH )).GetWidth(), ((const SvxFontHeightItem&)rSet.Get( GetScriptItemId( EE_CHAR_FONTHEIGHT, nScriptType ) ) ).GetHeight() ) );
- rFont.SetWeight( ((const SvxWeightItem&)rSet.Get( GetScriptItemId( EE_CHAR_WEIGHT, nScriptType ))).GetWeight() );
+ rFont.SetSize( Size( ((const SvxFontWidthItem&)rSet.Get( EE_CHAR_FONTWIDTH )).GetWidth(), ((const SvxFontHeightItem&)rSet.Get( EE_CHAR_FONTHEIGHT ) ).GetHeight() ) );
+ rFont.SetWeight( ((const SvxWeightItem&)rSet.Get( EE_CHAR_WEIGHT )).GetWeight() );
rFont.SetUnderline( ((const SvxUnderlineItem&)rSet.Get( EE_CHAR_UNDERLINE )).GetUnderline() );
rFont.SetStrikeout( ((const SvxCrossedOutItem&)rSet.Get( EE_CHAR_STRIKEOUT )).GetStrikeout() );
- rFont.SetItalic( ((const SvxPostureItem&)rSet.Get( GetScriptItemId( EE_CHAR_ITALIC, nScriptType ))).GetPosture() );
+ rFont.SetItalic( ((const SvxPostureItem&)rSet.Get( EE_CHAR_ITALIC )).GetPosture() );
rFont.SetOutline( ((const SvxContourItem&)rSet.Get( EE_CHAR_OUTLINE )).GetValue() );
rFont.SetShadow( ((const SvxShadowedItem&)rSet.Get( EE_CHAR_SHADOW )).GetValue() );
rFont.SetEscapement( ((const SvxEscapementItem&)rSet.Get( EE_CHAR_ESCAPEMENT)).GetEsc() );
@@ -1210,26 +1210,26 @@ void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, BOOL bSearchInParent, s
{
if ( rSet.GetItemState( EE_CHAR_COLOR ) == SFX_ITEM_ON )
rFont.SetColor( ((const SvxColorItem&)rSet.Get( EE_CHAR_COLOR )).GetValue() );
- if ( rSet.GetItemState( GetScriptItemId( EE_CHAR_FONTINFO, nScriptType ) ) == SFX_ITEM_ON )
+ if ( rSet.GetItemState( EE_CHAR_FONTINFO ) == SFX_ITEM_ON )
{
- const SvxFontItem& rFontItem = (const SvxFontItem&)rSet.Get( GetScriptItemId( EE_CHAR_FONTINFO, nScriptType ) );
+ const SvxFontItem& rFontItem = (const SvxFontItem&)rSet.Get( EE_CHAR_FONTINFO );
rFont.SetName( rFontItem.GetFamilyName() );
rFont.SetFamily( rFontItem.GetFamily() );
rFont.SetPitch( rFontItem.GetPitch() );
rFont.SetCharSet( rFontItem.GetCharSet() );
}
- if ( rSet.GetItemState( GetScriptItemId( EE_CHAR_FONTHEIGHT, nScriptType ) ) == SFX_ITEM_ON )
- rFont.SetSize( Size( rFont.GetSize().Width(), ((const SvxFontHeightItem&)rSet.Get( GetScriptItemId( EE_CHAR_FONTHEIGHT, nScriptType ) )).GetHeight() ) );
+ if ( rSet.GetItemState( EE_CHAR_FONTHEIGHT ) == SFX_ITEM_ON )
+ rFont.SetSize( Size( rFont.GetSize().Width(), ((const SvxFontHeightItem&)rSet.Get( EE_CHAR_FONTHEIGHT ) ).GetHeight() ) );
if ( rSet.GetItemState( EE_CHAR_FONTWIDTH ) == SFX_ITEM_ON )
rFont.SetSize( Size( ((const SvxFontWidthItem&)rSet.Get( EE_CHAR_FONTWIDTH )).GetWidth(), rFont.GetSize().Height() ) );
- if ( rSet.GetItemState( GetScriptItemId( EE_CHAR_WEIGHT, nScriptType ) ) == SFX_ITEM_ON )
- rFont.SetWeight( ((const SvxWeightItem&)rSet.Get( GetScriptItemId( EE_CHAR_WEIGHT, nScriptType ) )).GetWeight() );
+ if ( rSet.GetItemState( EE_CHAR_WEIGHT ) == SFX_ITEM_ON )
+ rFont.SetWeight( ((const SvxWeightItem&)rSet.Get( EE_CHAR_WEIGHT )).GetWeight() );
if ( rSet.GetItemState( EE_CHAR_UNDERLINE ) == SFX_ITEM_ON )
rFont.SetUnderline( ((const SvxUnderlineItem&)rSet.Get( EE_CHAR_UNDERLINE )).GetUnderline() );
if ( rSet.GetItemState( EE_CHAR_STRIKEOUT ) == SFX_ITEM_ON )
rFont.SetStrikeout( ((const SvxCrossedOutItem&)rSet.Get( EE_CHAR_STRIKEOUT )).GetStrikeout() );
- if ( rSet.GetItemState( GetScriptItemId( EE_CHAR_ITALIC, nScriptType ) ) == SFX_ITEM_ON )
- rFont.SetItalic( ((const SvxPostureItem&)rSet.Get( GetScriptItemId( EE_CHAR_ITALIC, nScriptType ) )).GetPosture() );
+ if ( rSet.GetItemState( EE_CHAR_ITALIC ) == SFX_ITEM_ON )
+ rFont.SetItalic( ((const SvxPostureItem&)rSet.Get( EE_CHAR_ITALIC )).GetPosture() );
if ( rSet.GetItemState( EE_CHAR_OUTLINE ) == SFX_ITEM_ON )
rFont.SetOutline( ((const SvxContourItem&)rSet.Get( EE_CHAR_OUTLINE )).GetValue() );
if ( rSet.GetItemState( EE_CHAR_SHADOW ) == SFX_ITEM_ON )
diff --git a/svx/source/editeng/editdoc.hxx b/svx/source/editeng/editdoc.hxx
index 7259e679c589..5577cb836be5 100644
--- a/svx/source/editeng/editdoc.hxx
+++ b/svx/source/editeng/editdoc.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: editdoc.hxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: mt $ $Date: 2000-11-02 15:25:36 $
+ * last change: $Author: mt $ $Date: 2000-11-06 11:44:20 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -90,7 +90,7 @@ DBG_NAMEEX( EE_TextPortion );
#define CHARPOSGROW 16
#define DEFTAB 720
-void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, BOOL bSearchInParent = TRUE, short nScriptType = 0 );
+void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, BOOL bSearchInParent = TRUE );
USHORT GetScriptItemId( USHORT nItemId, short nScriptType );
BOOL IsScriptItemValid( USHORT nItemId, short nScriptType );
diff --git a/svx/source/editeng/eerdll.cxx b/svx/source/editeng/eerdll.cxx
index a9df048b7eeb..7322d5ab36d5 100644
--- a/svx/source/editeng/eerdll.cxx
+++ b/svx/source/editeng/eerdll.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: eerdll.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: mt $ $Date: 2000-11-02 15:25:36 $
+ * last change: $Author: mt $ $Date: 2000-11-06 11:44:20 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -159,10 +159,17 @@ SfxPoolItem** GlobalEditData::GetDefItems()
ppDefItems[25] = new SvxLanguageItem( LANGUAGE_GERMAN, EE_CHAR_LANGUAGE );
ppDefItems[26] = new SvxLanguageItem( LANGUAGE_DONTKNOW, EE_CHAR_LANGUAGE_CJK );
ppDefItems[27] = new SvxLanguageItem( LANGUAGE_DONTKNOW, EE_CHAR_LANGUAGE_CTL );
+#ifdef DEBUG
+ ppDefItems[28] = new SvxFontItem( FAMILY_DONTKNOW, String( RTL_CONSTASCII_USTRINGPARAM( "Tahoma" ) ), String(), PITCH_DONTKNOW, RTL_TEXTENCODING_UNICODE, EE_CHAR_FONTINFO_CJK );
+ ppDefItems[29] = new SvxFontItem( FAMILY_DONTKNOW, String( RTL_CONSTASCII_USTRINGPARAM( "Tahoma" ) ), String(), PITCH_DONTKNOW, RTL_TEXTENCODING_UNICODE, EE_CHAR_FONTINFO_CTL );
+ ppDefItems[30] = new SvxFontHeightItem( 560, 100, EE_CHAR_FONTHEIGHT_CJK );
+ ppDefItems[31] = new SvxFontHeightItem( 560, 100, EE_CHAR_FONTHEIGHT_CTL );
+#else
ppDefItems[28] = new SvxFontItem( EE_CHAR_FONTINFO_CJK );
ppDefItems[29] = new SvxFontItem( EE_CHAR_FONTINFO_CTL );
ppDefItems[30] = new SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT_CJK );
ppDefItems[31] = new SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT_CTL );
+#endif
ppDefItems[32] = new SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CJK );
ppDefItems[33] = new SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CTL );
ppDefItems[34] = new SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CJK );
diff --git a/svx/source/editeng/impedit2.cxx b/svx/source/editeng/impedit2.cxx
index 137a56065c3b..9fb88be329f2 100644
--- a/svx/source/editeng/impedit2.cxx
+++ b/svx/source/editeng/impedit2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: impedit2.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: mt $ $Date: 2000-11-02 15:25:36 $
+ * last change: $Author: mt $ $Date: 2000-11-06 11:44:20 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -628,6 +628,14 @@ void ImpEditEngine::Command( const CommandEvent& rCEvt, EditView* pView )
else
pView->GetWindow()->SetExtTextInputPos( 0, 0, NULL );
}
+ else if ( rCEvt.GetCommand() == COMMAND_INPUTCONTEXTCHANGE )
+ {
+ int x = 0;
+ }
+ else if ( rCEvt.GetCommand() == COMMAND_CURSORPOS )
+ {
+ int x = 0;
+ }
#endif // !SVX_LIGHT
@@ -1345,77 +1353,86 @@ EditSelection ImpEditEngine::SelectWord( const EditSelection& rCurSel, sal_Int16
void ImpEditEngine::InitScriptTypes( USHORT nPara )
{
- uno::Reference < text::XBreakIterator > xBI = ImplGetBreakIterator();
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- ContentNode* pNode = pParaPortion->GetNode();
ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
- ::rtl::OUString aText( *pNode );
- USHORT nTextLen = aText.getLength();
-
rTypes.Remove( 0, rTypes.Count() );
- long nPos = 0;
- short nScriptType = xBI->getScriptType( aText, nPos );
- rTypes.Insert( ScriptTypePosInfo( nScriptType, nPos, nTextLen ), rTypes.Count() );
- nPos = xBI->endOfScript( aText, nPos, nScriptType );
- while ( nPos != (-1) )
+ ContentNode* pNode = pParaPortion->GetNode();
+ if ( pNode->Len() )
{
- rTypes[rTypes.Count()-1].nEndPos = nPos;
+ uno::Reference < text::XBreakIterator > xBI = ImplGetBreakIterator();
+ ::rtl::OUString aText( *pNode );
+ USHORT nTextLen = aText.getLength();
- nScriptType = xBI->getScriptType( aText, nPos );
- if ( nScriptType == text::ScriptType::WEAK )
- nScriptType = rTypes[rTypes.Count()-1].nScriptType;
+ long nPos = 0;
+ short nScriptType = xBI->getScriptType( aText, nPos );
rTypes.Insert( ScriptTypePosInfo( nScriptType, nPos, nTextLen ), rTypes.Count() );
nPos = xBI->endOfScript( aText, nPos, nScriptType );
- }
+ while ( ( nPos != (-1) ) && ( nPos < nTextLen ) )
+ {
+ rTypes[rTypes.Count()-1].nEndPos = nPos;
+
+ nScriptType = xBI->getScriptType( aText, nPos );
+ if ( nScriptType == text::ScriptType::WEAK )
+ nScriptType = rTypes[rTypes.Count()-1].nScriptType;
+
+ rTypes.Insert( ScriptTypePosInfo( nScriptType, nPos, nTextLen ), rTypes.Count() );
+ nPos = xBI->endOfScript( aText, nPos, nScriptType );
+ }
- if ( rTypes[0].nScriptType == text::ScriptType::WEAK )
- rTypes[0].nScriptType = ( rTypes.Count() > 1 ) ? rTypes[1].nScriptType : text::ScriptType::LATIN;
+ if ( rTypes[0].nScriptType == text::ScriptType::WEAK )
+ rTypes[0].nScriptType = ( rTypes.Count() > 1 ) ? rTypes[1].nScriptType : text::ScriptType::LATIN;
+ }
}
short ImpEditEngine::GetScriptType( const EditPaM& rPaM ) const
{
- USHORT nPara = GetEditDoc().GetPos( rPaM.GetNode() );
- ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- if ( !pParaPortion->aScriptInfos.Count() )
- ((ImpEditEngine*)this)->InitScriptTypes( nPara );
+ short nScriptType = text::ScriptType::LATIN;
- ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
- USHORT nPos = rPaM.GetIndex();
- short nScriptType = 0;
- for ( USHORT n = 0; n < rTypes.Count(); n++ )
+ if ( rPaM.GetNode()->Len() )
{
- if ( ( rTypes[n].nStartPos <= nPos ) && ( rTypes[n].nEndPos >= nPos ) )
- {
- nScriptType = rTypes[n].nScriptType;
- break;
+ USHORT nPara = GetEditDoc().GetPos( rPaM.GetNode() );
+ ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
+ if ( !pParaPortion->aScriptInfos.Count() )
+ ((ImpEditEngine*)this)->InitScriptTypes( nPara );
+
+ ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
+ USHORT nPos = rPaM.GetIndex();
+ for ( USHORT n = 0; n < rTypes.Count(); n++ )
+ {
+ if ( ( rTypes[n].nStartPos <= nPos ) && ( rTypes[n].nEndPos >= nPos ) )
+ {
+ nScriptType = rTypes[n].nScriptType;
+ break;
+ }
}
}
-
- DBG_ASSERT( nScriptType, "Script not found!" );
return nScriptType;
}
BOOL ImpEditEngine::IsScriptChange( const EditPaM& rPaM ) const
{
- USHORT nPara = GetEditDoc().GetPos( rPaM.GetNode() );
- ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- if ( !pParaPortion->aScriptInfos.Count() )
- ((ImpEditEngine*)this)->InitScriptTypes( nPara );
-
- ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
- USHORT nPos = rPaM.GetIndex();
BOOL bScriptChange = FALSE;
- for ( USHORT n = 0; n < rTypes.Count(); n++ )
+
+ if ( rPaM.GetNode()->Len() )
{
- if ( rTypes[n].nStartPos == nPos )
- {
- bScriptChange = TRUE;
- break;
+ USHORT nPara = GetEditDoc().GetPos( rPaM.GetNode() );
+ ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
+ if ( !pParaPortion->aScriptInfos.Count() )
+ ((ImpEditEngine*)this)->InitScriptTypes( nPara );
+
+ ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
+ USHORT nPos = rPaM.GetIndex();
+ for ( USHORT n = 0; n < rTypes.Count(); n++ )
+ {
+ if ( rTypes[n].nStartPos == nPos )
+ {
+ bScriptChange = TRUE;
+ break;
+ }
}
}
-
return bScriptChange;
}
diff --git a/svx/source/editeng/impedit3.cxx b/svx/source/editeng/impedit3.cxx
index 4cca8479e9bc..1825a741a958 100644
--- a/svx/source/editeng/impedit3.cxx
+++ b/svx/source/editeng/impedit3.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: impedit3.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: mt $ $Date: 2000-11-02 15:25:36 $
+ * last change: $Author: mt $ $Date: 2000-11-06 11:44:20 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -85,6 +85,10 @@
#include <kernitem.hxx>
#include <lrspitem.hxx>
#include <ulspitem.hxx>
+#include <fontitem.hxx>
+#include <wghtitem.hxx>
+#include <postitem.hxx>
+
#include <textconv.hxx>
@@ -1740,8 +1744,7 @@ void ImpEditEngine::CreateTextPortions( ParaPortion* pParaPortion, sal_uInt16& r
DBG_ASSERT( pNode->Len(), "CreateTextPortions sollte nicht fuer leere Absaetze verwendet werden!" );
SortedPositions aPositions;
- sal_uInt32 nZero = 0;
- aPositions.Insert( nZero );
+ aPositions.Insert( (sal_uInt32) 0 );
sal_uInt16 nAttr = 0;
EditCharAttrib* pAttrib = GetAttrib( pNode->GetCharAttribs().GetAttribs(), nAttr );
@@ -1756,6 +1759,13 @@ void ImpEditEngine::CreateTextPortions( ParaPortion* pParaPortion, sal_uInt16& r
}
aPositions.Insert( pNode->Len() );
+ if ( !pParaPortion->aScriptInfos.Count() )
+ ((ImpEditEngine*)this)->InitScriptTypes( GetParaPortions().GetPos( pParaPortion ) );
+
+ const ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
+ for ( USHORT nT = 0; nT < rTypes.Count(); nT++ )
+ aPositions.Insert( rTypes[nT].nStartPos );
+
if ( mpIMEInfos && mpIMEInfos->pAttribs && ( mpIMEInfos->aPos.GetNode() == pNode ) )
{
sal_uInt16 nLastAttr = 0xFFFF;
@@ -1823,24 +1833,20 @@ void ImpEditEngine::RecalcTextPortion( ParaPortion* pParaPortion, sal_uInt16 nSt
ContentNode* const pNode = pParaPortion->GetNode();
if ( nNewChars > 0 )
{
- // Wenn an nStartPos ein Attribut beginnt/endet, fngt eine neue Portion
+ // Wenn an nStartPos ein Attribut beginnt/endet, faengt eine neue Portion
// an, ansonsten wird die Portion an nStartPos erweitert.
- if ( pNode->GetCharAttribs().HasBoundingAttrib( nStartPos ) )
+ if ( pNode->GetCharAttribs().HasBoundingAttrib( nStartPos ) || IsScriptChange( EditPaM( pNode, nStartPos ) ) )
{
sal_uInt16 nNewPortionPos = 0;
if ( nStartPos )
nNewPortionPos = SplitTextPortion( pParaPortion, nStartPos ) + 1;
-// else if ( ( pParaPortion->GetTextPortions().Count() == 1 ) &&
-// !pParaPortion->GetTextPortions()[0]->GetLen() )
-// pParaPortion->GetTextPortions().Reset(); // DummyPortion
// Eine leere Portion kann hier stehen, wenn der Absatz leer war,
// oder eine Zeile durch einen harten Zeilenumbruch entstanden ist.
if ( ( nNewPortionPos < pParaPortion->GetTextPortions().Count() ) &&
!pParaPortion->GetTextPortions()[nNewPortionPos]->GetLen() )
{
- // Dann die leere Portion verwenden.
DBG_ASSERT( pParaPortion->GetTextPortions()[nNewPortionPos]->GetKind() == PORTIONKIND_TEXT, "Leere Portion war keine TextPortion!" );
pParaPortion->GetTextPortions()[nNewPortionPos]->GetLen() += nNewChars;
}
@@ -1969,7 +1975,18 @@ void ImpEditEngine::SeekCursor( ContentNode* pNode, sal_uInt16 nPos, SvxFont& rF
short nScriptType = GetScriptType( EditPaM( pNode, nPos ) );
if ( ( nScriptType == text::ScriptType::ASIAN ) || ( nScriptType == text::ScriptType::COMPLEX ) )
- CreateFont( rFont, pNode->GetContentAttribs().GetItems(), FALSE, nScriptType );
+ {
+ const SvxFontItem& rFontItem = (const SvxFontItem&)pNode->GetContentAttribs().GetItem( GetScriptItemId( EE_CHAR_FONTINFO, nScriptType ) );
+ rFont.SetName( rFontItem.GetFamilyName() );
+ rFont.SetFamily( rFontItem.GetFamily() );
+ rFont.SetPitch( rFontItem.GetPitch() );
+ rFont.SetCharSet( rFontItem.GetCharSet() );
+ Size aSz( rFont.GetSize() );
+ aSz.Height() = ((const SvxFontHeightItem&)pNode->GetContentAttribs().GetItem( GetScriptItemId( EE_CHAR_FONTHEIGHT, nScriptType ) ) ).GetHeight();
+ rFont.SetSize( aSz );
+ rFont.SetWeight( ((const SvxWeightItem&)pNode->GetContentAttribs().GetItem( GetScriptItemId( EE_CHAR_WEIGHT, nScriptType ))).GetWeight() );
+ rFont.SetItalic( ((const SvxPostureItem&)pNode->GetContentAttribs().GetItem( GetScriptItemId( EE_CHAR_ITALIC, nScriptType ))).GetPosture() );
+ }
const SvxFontWidthItem& rWidthItem =
(const SvxFontWidthItem&)pNode->GetContentAttribs().GetItem( EE_CHAR_FONTWIDTH);