diff options
author | jp <jp@openoffice.org> | 2000-10-30 11:51:04 +0000 |
---|---|---|
committer | jp <jp@openoffice.org> | 2000-10-30 11:51:04 +0000 |
commit | 55db9cd721d46ea1ac95531088a564cf64272404 (patch) | |
tree | f0819b89b529908bd59984771523c974acb1c0bc /sw | |
parent | 7041e60fe0d1635a97cdf17d5dac747d6bae48e4 (diff) |
new: EmphasisItem
Diffstat (limited to 'sw')
-rw-r--r-- | sw/inc/charatr.hxx | 16 | ||||
-rw-r--r-- | sw/inc/format.hxx | 6 | ||||
-rw-r--r-- | sw/inc/hintids.hxx | 7 | ||||
-rw-r--r-- | sw/inc/swatrset.hxx | 9 | ||||
-rw-r--r-- | sw/inc/txatbase.hxx | 16 | ||||
-rw-r--r-- | sw/inc/txtatr.hxx | 19 | ||||
-rw-r--r-- | sw/source/core/bastyp/init.cxx | 13 | ||||
-rw-r--r-- | sw/source/core/inc/swfont.hxx | 24 | ||||
-rw-r--r-- | sw/source/core/txtnode/swfont.cxx | 13 | ||||
-rw-r--r-- | sw/source/core/txtnode/thints.cxx | 11 | ||||
-rw-r--r-- | sw/source/core/txtnode/txtatr2.cxx | 35 |
11 files changed, 142 insertions, 27 deletions
diff --git a/sw/inc/charatr.hxx b/sw/inc/charatr.hxx index 7e65a2d47737..c8a77c2215cc 100644 --- a/sw/inc/charatr.hxx +++ b/sw/inc/charatr.hxx @@ -2,9 +2,9 @@ * * $RCSfile: charatr.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 17:14:24 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:49:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -61,8 +61,12 @@ #ifndef _CHARATR_HXX #define _CHARATR_HXX -#include "format.hxx" -#include "hintids.hxx" // fuer die WhichIds +#ifndef _FORMAT_HXX +#include <format.hxx> +#endif +#ifndef _HINTIDS_HXX +#include <hintids.hxx> // fuer die WhichIds +#endif /****************************************************************************** @@ -130,6 +134,8 @@ inline const SvxBlinkItem &SwAttrSet::GetBlink(BOOL bInP) const { return (const SvxBlinkItem&)Get( RES_CHRATR_BLINK,bInP); } inline const SvxBrushItem &SwAttrSet::GetChrBackground( BOOL bInP ) const { return (const SvxBrushItem&)Get( RES_CHRATR_BACKGROUND, bInP ); } +inline const SvxEmphasisMarkItem &SwAttrSet::GetEmphasisMark( BOOL bInP ) const + { return (const SvxEmphasisMarkItem&)Get( RES_CHRATR_EMPHASIS_MARK, bInP ); } /****************************************************************************** * Implementierung der Charakter-Attribut Methoden vom SwFmt @@ -176,5 +182,7 @@ inline const SvxBlinkItem &SwFmt::GetBlink(BOOL bInP) const { return aSet.GetBlink(bInP); } inline const SvxBrushItem &SwFmt::GetChrBackground(BOOL bInP) const { return aSet.GetChrBackground(bInP); } +inline const SvxEmphasisMarkItem &SwFmt::GetEmphasisMark( BOOL bInP ) const + { return aSet.GetEmphasisMark(bInP); } #endif diff --git a/sw/inc/format.hxx b/sw/inc/format.hxx index b31111c3ce1e..87fac94234d0 100644 --- a/sw/inc/format.hxx +++ b/sw/inc/format.hxx @@ -2,9 +2,9 @@ * * $RCSfile: format.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 17:14:26 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:49:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -242,6 +242,8 @@ public: inline const SvxWeightItem &GetCTLWeight( BOOL = TRUE ) const; inline const SfxBoolItem &GetWritingDirection( BOOL = TRUE ) const; + inline const SvxEmphasisMarkItem &GetEmphasisMark( BOOL = TRUE ) const; + // Frame-Attribute - impl. steht im frmatr.hxx, // fuer LINUX, SINIX, HPUX auch in gcc_outl.cxx #if ( defined GCC && defined C272 && \ diff --git a/sw/inc/hintids.hxx b/sw/inc/hintids.hxx index 5ba6e893a966..d1130b5a4a6f 100644 --- a/sw/inc/hintids.hxx +++ b/sw/inc/hintids.hxx @@ -2,9 +2,9 @@ * * $RCSfile: hintids.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: os $ $Date: 2000-10-16 10:29:28 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:49:29 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -120,7 +120,7 @@ RES_CHRATR_BEGIN = HINT_BEGIN, RES_CHRATR_CTL_POSTURE, // 30 RES_CHRATR_CTL_WEIGHT, // 31 RES_CHRATR_WRITING_DIRECTION, // 32 - RES_CHRATR_DUMMY2, // 33 + RES_CHRATR_EMPHASIS_MARK, // 33 RES_CHRATR_DUMMY3, // 34 RES_CHRATR_DUMMY4, // 35 RES_CHRATR_DUMMY5, // 36 @@ -442,6 +442,7 @@ BOOL IsInRange( const USHORT* pRange, const USHORT nId ); #define ITEMID_NOHYPHENHERE RES_CHRATR_NOHYPHEN #define ITEMID_NOLINEBREAK RES_CHRATR_NOLINEBREAK #define ITEMID_WORDLINEMODE RES_CHRATR_WORDLINEMODE +#define ITEMID_EMPHASISMARK RES_CHRATR_EMPHASIS_MARK //Defines fuer die ehemaligen FrmAttribute, die jetzt in frmitems.hxx //von svx zu finden sind. diff --git a/sw/inc/swatrset.hxx b/sw/inc/swatrset.hxx index 792efce4c2d5..abfc1d4cba9c 100644 --- a/sw/inc/swatrset.hxx +++ b/sw/inc/swatrset.hxx @@ -2,9 +2,9 @@ * * $RCSfile: swatrset.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 17:14:28 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:49:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -97,6 +97,7 @@ class SvxEscapementItem; class SvxCaseMapItem; class SvxNoHyphenItem; class SvxBlinkItem; +class SvxEmphasisMarkItem; // Frame-Attribute class SwFmtFillOrder; @@ -268,6 +269,7 @@ public: inline const SvxPostureItem &GetCTLPosture( BOOL = TRUE ) const; inline const SvxWeightItem &GetCTLWeight( BOOL = TRUE ) const; inline const SfxBoolItem &GetWritingDirection( BOOL = TRUE ) const; + inline const SvxEmphasisMarkItem &GetEmphasisMark( BOOL = TRUE ) const; // Frame-Attribute - impl. steht im frmatr.hxx inline const SwFmtFillOrder &GetFillOrder( BOOL = TRUE ) const; @@ -340,6 +342,9 @@ public: /************************************************************************* $Log: not supported by cvs2svn $ + Revision 1.1.1.1 2000/09/18 17:14:28 hr + initial import + Revision 1.48 2000/09/18 16:03:29 willem.vandorp OpenOffice header added. diff --git a/sw/inc/txatbase.hxx b/sw/inc/txatbase.hxx index e376c2a22c47..c9b3a9aa3b60 100644 --- a/sw/inc/txatbase.hxx +++ b/sw/inc/txatbase.hxx @@ -2,9 +2,9 @@ * * $RCSfile: txatbase.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: jp $ $Date: 2000-10-23 11:58:55 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:49:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -97,6 +97,7 @@ class SvxCharSetColorItem; class SvXMLAttrContainerItem; class SwFmtRuby; class SwFmt2Lines; +class SvxEmphasisMarkItem; class SwFmtCharFmt; class SwFmtINetFmt; @@ -188,6 +189,8 @@ public: inline const SwFmtRuby &GetRuby() const; inline const SwFmt2Lines &Get2Lines() const; + inline const SvxEmphasisMarkItem &GetEmphasisMark() const; + private: SwTxtAttr( const SwTxtAttr& ); SwTxtAttr& operator=( const SwTxtAttr& ); @@ -418,9 +421,18 @@ inline const SwFmt2Lines& SwTxtAttr::Get2Lines() const return (const SwFmt2Lines&)*pAttr; } +inline const SvxEmphasisMarkItem& SwTxtAttr::GetEmphasisMark() const +{ + ASSERT( pAttr && pAttr->Which() == RES_CHRATR_EMPHASIS_MARK, "Falsche Abfrage" ); + return (const SvxEmphasisMarkItem&)*pAttr; +} + /************************************************************************* $Log: not supported by cvs2svn $ + Revision 1.2 2000/10/23 11:58:55 jp + new attributes Ruby and 2Lines + Revision 1.1.1.1 2000/09/18 17:14:28 hr initial import diff --git a/sw/inc/txtatr.hxx b/sw/inc/txtatr.hxx index 3c622cc9255b..3e3d8015bf00 100644 --- a/sw/inc/txtatr.hxx +++ b/sw/inc/txtatr.hxx @@ -2,9 +2,9 @@ * * $RCSfile: txtatr.hxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: jp $ $Date: 2000-10-23 11:58:55 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:49:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -462,6 +462,21 @@ public: xub_StrLen nStart, xub_StrLen nEnd ); }; +// EMPHASIS_MARK ************************************************************ + +class SwTxtEmphasisMark : public SwTxtAttrEnd +{ + // Hier merkt es sich das SV-Attribut Weight aus dem Font. + FontEmphasisMark ePrevEmphasis; +public: + SwTxtEmphasisMark( const SvxEmphasisMarkItem& rAttr, + xub_StrLen nStart, xub_StrLen nEnd ); + + virtual void ChgFnt(SwFont *); + virtual void RstFnt(SwFont *); + virtual void ChgTxtAttr( SwTxtAttr & ); + virtual void RstTxtAttr( SwTxtAttr & ); +}; // --------------- Inline Implementierungen ------------------------ diff --git a/sw/source/core/bastyp/init.cxx b/sw/source/core/bastyp/init.cxx index 2699101df102..7fceea8faec2 100644 --- a/sw/source/core/bastyp/init.cxx +++ b/sw/source/core/bastyp/init.cxx @@ -2,9 +2,9 @@ * * $RCSfile: init.cxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: jp $ $Date: 2000-10-23 11:57:23 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:50:05 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -163,6 +163,9 @@ #ifndef _SVX_AKRNITEM_HXX //autogen #include <svx/akrnitem.hxx> #endif +#ifndef _SVX_EMPHITEM_HXX //autogen +#include <svx/emphitem.hxx> +#endif #ifndef _SVX_CMAPITEM_HXX //autogen #include <svx/cmapitem.hxx> #endif @@ -444,7 +447,7 @@ SfxItemInfo __FAR_DATA aSlotTab[] = { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_CTL_POSTURE { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_CTL_WEIGHT { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_WRITING_DIRECTION - { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_DUMMY2 + { SID_ATTR_CHAR_EMPHASISMARK, SFX_ITEM_POOLABLE }, // RES_CHRATR_EMPHASIS_MARK { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_DUMMY3 { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_DUMMY4 { 0, SFX_ITEM_POOLABLE }, // RES_CHRATR_DUMMY5 @@ -669,9 +672,11 @@ void _InitCore() aAttrTab[ RES_CHRATR_WRITING_DIRECTION - POOLATTR_BEGIN ] = new SfxBoolItem( RES_CHRATR_WRITING_DIRECTION ); + aAttrTab[ RES_CHRATR_EMPHASIS_MARK - POOLATTR_BEGIN ] = + new SvxEmphasisMarkItem(); + // CharakterAttr - Dummies aAttrTab[ RES_CHRATR_DUMMY1 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_CHRATR_DUMMY1 ); - aAttrTab[ RES_CHRATR_DUMMY2 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_CHRATR_DUMMY2 ); aAttrTab[ RES_CHRATR_DUMMY3 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_CHRATR_DUMMY3 ); aAttrTab[ RES_CHRATR_DUMMY4 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_CHRATR_DUMMY4 ); aAttrTab[ RES_CHRATR_DUMMY5 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_CHRATR_DUMMY5 ); diff --git a/sw/source/core/inc/swfont.hxx b/sw/source/core/inc/swfont.hxx index 0fbb40f1598f..e83fa7b9a264 100644 --- a/sw/source/core/inc/swfont.hxx +++ b/sw/source/core/inc/swfont.hxx @@ -2,9 +2,9 @@ * * $RCSfile: swfont.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: ama $ $Date: 2000-09-25 12:02:56 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:51:04 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -167,6 +167,7 @@ class SwSubFont : public SvxFont inline void SetShadow( const BOOL bShadow ); inline void SetAutoKern( const BOOL bAutoKern ); inline void SetWordLineMode( const BOOL bWordLineMode ); + inline void SetEmphasisMark( const FontEmphasisMark eValue ); // Methoden fuer die Hoch-/Tiefstellung inline void SetEscapement( const short nNewEsc ); @@ -266,6 +267,7 @@ public: inline void SetWordLineMode( const BOOL bWordLineMode ); inline void SetFixKerning( const short nNewKern ); inline void SetCaseMap( const SvxCaseMap eNew ); + inline void SetEmphasisMark( const FontEmphasisMark eValue ); // Methoden fuer die Hoch-/Tiefstellung inline void SetEscapement( const short nNewEsc ); @@ -341,6 +343,8 @@ public: rtl_TextEncoding GetCharSet() const { return aSub[nActual].GetCharSet(); } long GetHeight() const { return aSub[nActual].GetSize().Height(); } FontWeight GetWeight() const { return aSub[nActual].GetWeight(); } + FontEmphasisMark GetEmphasisMark() const + { return aSub[nActual].GetEmphasisMark(); } inline const XubString& GetName( const BYTE nWhich ) const { return aSub[nWhich].GetName(); } @@ -360,6 +364,8 @@ public: { return aSub[nWhich].GetSize().Height(); } inline FontWeight GetWeight( const BYTE nWhich ) const { return aSub[nWhich].GetWeight(); } + inline FontEmphasisMark GetEmphasisMark( const BYTE nWhich ) const + { return aSub[nWhich].GetEmphasisMark(); } // Macht den logischen Font im OutputDevice wirksam. void ChgPhysFnt( ViewShell *pSh, OutputDevice *pOut ); @@ -684,6 +690,20 @@ inline void SwFont::SetWordLineMode( const BOOL bWordLineMode ) aSub[1].SetWordLineMode( bWordLineMode ); aSub[2].SetWordLineMode( bWordLineMode ); } +// gekapselte SV-Font-Methode +inline void SwSubFont::SetEmphasisMark( const FontEmphasisMark eValue ) +{ + pMagic = 0; + Font::SetEmphasisMark( eValue ); +} + +inline void SwFont::SetEmphasisMark( const FontEmphasisMark eValue ) +{ + bFntChg = TRUE; + aSub[0].SetEmphasisMark( eValue ); + aSub[1].SetEmphasisMark( eValue ); + aSub[2].SetEmphasisMark( eValue ); +} // ueberladene Font-Methode inline void SwSubFont::SetSize( const Size& rSize ) diff --git a/sw/source/core/txtnode/swfont.cxx b/sw/source/core/txtnode/swfont.cxx index b312f85167e5..07afce254a25 100644 --- a/sw/source/core/txtnode/swfont.cxx +++ b/sw/source/core/txtnode/swfont.cxx @@ -2,9 +2,9 @@ * * $RCSfile: swfont.cxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-19 00:08:27 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:50:47 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -127,6 +127,9 @@ #ifndef _SVX_FONTITEM_HXX //autogen #include <svx/fontitem.hxx> #endif +#ifndef _SVX_EMPHITEM_HXX //autogen +#include <svx/emphitem.hxx> +#endif #ifndef _CHARATR_HXX #include <charatr.hxx> #endif @@ -304,6 +307,7 @@ void SwFont::SetFnt( const SwAttrSet *pAttrSet ) aSub[SW_CTL].SetLanguage( pAttrSet->GetCTLLanguage().GetLanguage() ); } SetUnderline( pAttrSet->GetUnderline().GetUnderline() ); + SetEmphasisMark( pAttrSet->GetEmphasisMark().GetEmphasisMark() ); SetStrikeout( pAttrSet->GetCrossedOut().GetStrikeout() ); SetColor( pAttrSet->GetColor().GetValue() ); SetTransparent( TRUE ); @@ -442,6 +446,10 @@ void SwFont::SetDiffFnt( const SfxItemSet *pAttrSet ) if( SFX_ITEM_SET == pAttrSet->GetItemState( RES_CHRATR_COLOR, TRUE, &pItem )) SetColor( ((SvxColorItem*)pItem)->GetValue() ); + if( SFX_ITEM_SET == pAttrSet->GetItemState( RES_CHRATR_EMPHASIS_MARK, + TRUE, &pItem )) + SetEmphasisMark( ((SvxEmphasisMarkItem*)pItem)->GetEmphasisMark() ); + SetTransparent( TRUE ); SetAlign( ALIGN_BASELINE ); if( SFX_ITEM_SET == pAttrSet->GetItemState( RES_CHRATR_CONTOUR, @@ -572,6 +580,7 @@ SwFont::SwFont( const SwAttrSet* pAttrSet ) } SetUnderline( pAttrSet->GetUnderline().GetUnderline() ); + SetEmphasisMark( pAttrSet->GetEmphasisMark().GetEmphasisMark() ); SetStrikeout( pAttrSet->GetCrossedOut().GetStrikeout() ); SetColor( pAttrSet->GetColor().GetValue() ); SetTransparent( TRUE ); diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx index de3c97dfdf19..631812c3411c 100644 --- a/sw/source/core/txtnode/thints.cxx +++ b/sw/source/core/txtnode/thints.cxx @@ -2,9 +2,9 @@ * * $RCSfile: thints.cxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: jp $ $Date: 2000-10-23 11:58:00 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:50:46 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -89,6 +89,9 @@ #ifndef _SVX_LANGITEM_HXX //autogen #include <svx/langitem.hxx> #endif +#ifndef _SVX_EMPHITEM_HXX //autogen +#include <svx/emphitem.hxx> +#endif #ifndef _TXTINET_HXX //autogen #include <txtinet.hxx> @@ -279,6 +282,10 @@ SwTxtAttr* SwTxtNode::MakeTxtAttr( const SfxPoolItem& rAttr, case RES_CHRATR_WEIGHT: pNew = new SwTxtWeight( (SvxWeightItem&)rNew, nStt, nEnd, nScript ); break; + case RES_CHRATR_EMPHASIS_MARK: + pNew = new SwTxtEmphasisMark( (SvxEmphasisMarkItem&)rNew, nStt, nEnd ); + break; + case RES_TXTATR_CHARFMT: { SwFmtCharFmt &rFmtCharFmt = (SwFmtCharFmt&) rNew; diff --git a/sw/source/core/txtnode/txtatr2.cxx b/sw/source/core/txtnode/txtatr2.cxx index 87777cb5419e..137dfbc86283 100644 --- a/sw/source/core/txtnode/txtatr2.cxx +++ b/sw/source/core/txtnode/txtatr2.cxx @@ -2,9 +2,9 @@ * * $RCSfile: txtatr2.cxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: jp $ $Date: 2000-10-23 11:58:08 $ + * last change: $Author: jp $ $Date: 2000-10-30 12:50:47 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -98,6 +98,9 @@ #ifndef _SVX_BRSHITEM_HXX //autogen #include <svx/brshitem.hxx> #endif +#ifndef _SVX_EMPHITEM_HXX //autogen +#include <svx/emphitem.hxx> +#endif #ifndef _TXTINET_HXX //autogen #include <txtinet.hxx> @@ -765,4 +768,32 @@ SwTxt2Lines::SwTxt2Lines( const SwFmt2Lines& rAttr, { } +// ****************************** + +SwTxtEmphasisMark::SwTxtEmphasisMark( const SvxEmphasisMarkItem& rAttr, + xub_StrLen nStart, xub_StrLen nEnd ) + : SwTxtAttrEnd( rAttr, nStart, nEnd ) +{} + +void SwTxtEmphasisMark::ChgFnt(SwFont *pFont) +{ + ePrevEmphasis = pFont->GetEmphasisMark(); + pFont->SetEmphasisMark( GetEmphasisMark().GetEmphasisMark() ); +} + +void SwTxtEmphasisMark::RstFnt(SwFont *pFont) +{ + pFont->SetEmphasisMark( ePrevEmphasis ); +} + +void SwTxtEmphasisMark::ChgTxtAttr( SwTxtAttr &rAttr ) +{ + ePrevEmphasis = ((SwTxtEmphasisMark&)rAttr).ePrevEmphasis; + ((SwTxtEmphasisMark&)rAttr).ePrevEmphasis = GetEmphasisMark().GetEmphasisMark(); +} + +void SwTxtEmphasisMark::RstTxtAttr( SwTxtAttr &rAttr ) +{ + ((SwTxtEmphasisMark&)rAttr).ePrevEmphasis = ePrevEmphasis; +} |