new: EmphasisItem

This commit is contained in:
jp 2000-10-30 11:51:04 +00:00
parent 7041e60fe0
commit 55db9cd721
11 changed files with 142 additions and 27 deletions

View file

@ -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

View file

@ -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 && \

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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 ------------------------

View file

@ -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 );

View file

@ -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 )

View file

@ -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 );

View file

@ -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;

View file

@ -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;
}