summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-04-12 14:03:04 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-04-13 12:02:20 +0200
commit7bf1e66ac51a582527b35b852586cf7474bc7ba8 (patch)
treeb74f9d4ab878fe517542fd4e13dfea9e49b8725e /oox
parent93d58279cd56fd026db4dfb68d04fc22edba1abc (diff)
convert AX_FONTDATA to o3tl::typed_flags
Change-Id: If51119fbdde4b1d923b794d126fdae99ca238f81 Reviewed-on: https://gerrit.libreoffice.org/36463 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'oox')
-rw-r--r--oox/source/ole/axcontrol.cxx27
-rw-r--r--oox/source/ole/axfontdata.cxx18
2 files changed, 27 insertions, 18 deletions
diff --git a/oox/source/ole/axcontrol.cxx b/oox/source/ole/axcontrol.cxx
index 283c0e48dc61..24b33d842840 100644
--- a/oox/source/ole/axcontrol.cxx
+++ b/oox/source/ole/axcontrol.cxx
@@ -851,10 +851,14 @@ void AxFontDataModel::importProperty( sal_Int32 nPropId, const OUString& rValue
switch( nPropId )
{
case XML_FontName: maFontData.maFontName = rValue; break;
- case XML_FontEffects: maFontData.mnFontEffects = AttributeConversion::decodeUnsigned( rValue ); break;
+ case XML_FontEffects:
+ maFontData.mnFontEffects = static_cast<AxFontFlags>(AttributeConversion::decodeUnsigned( rValue ));
+ break;
case XML_FontHeight: maFontData.mnFontHeight = AttributeConversion::decodeInteger( rValue ); break;
case XML_FontCharSet: maFontData.mnFontCharSet = AttributeConversion::decodeInteger( rValue ); break;
- case XML_ParagraphAlign: maFontData.mnHorAlign = static_cast<AxHorizontalAlign>(AttributeConversion::decodeInteger( rValue )); break;
+ case XML_ParagraphAlign:
+ maFontData.mnHorAlign = static_cast<AxHorizontalAlign>(AttributeConversion::decodeInteger( rValue ));
+ break;
default: AxControlModelBase::importProperty( nPropId, rValue );
}
}
@@ -875,10 +879,13 @@ void AxFontDataModel::convertProperties( PropertyMap& rPropMap, const ControlCon
rPropMap.setProperty( PROP_FontName, maFontData.maFontName );
// font effects
- rPropMap.setProperty( PROP_FontWeight, getFlagValue( maFontData.mnFontEffects, AX_FONTDATA_BOLD, awt::FontWeight::BOLD, awt::FontWeight::NORMAL ) );
- rPropMap.setProperty( PROP_FontSlant, getFlagValue( maFontData.mnFontEffects, AX_FONTDATA_ITALIC, FontSlant_ITALIC, FontSlant_NONE ) );
- rPropMap.setProperty( PROP_FontUnderline, getFlagValue( maFontData.mnFontEffects, AX_FONTDATA_UNDERLINE, maFontData.mbDblUnderline ? awt::FontUnderline::DOUBLE : awt::FontUnderline::SINGLE, awt::FontUnderline::NONE ) );
- rPropMap.setProperty( PROP_FontStrikeout, getFlagValue( maFontData.mnFontEffects, AX_FONTDATA_STRIKEOUT, awt::FontStrikeout::SINGLE, awt::FontStrikeout::NONE ) );
+ rPropMap.setProperty( PROP_FontWeight, maFontData.mnFontEffects & AxFontFlags::Bold ? awt::FontWeight::BOLD : awt::FontWeight::NORMAL );
+ rPropMap.setProperty( PROP_FontSlant, maFontData.mnFontEffects & AxFontFlags::Italic ? FontSlant_ITALIC : FontSlant_NONE );
+ if (maFontData.mnFontEffects & AxFontFlags::Underline)
+ rPropMap.setProperty( PROP_FontUnderline, maFontData.mbDblUnderline ? awt::FontUnderline::DOUBLE : awt::FontUnderline::SINGLE );
+ else
+ rPropMap.setProperty( PROP_FontUnderline, awt::FontUnderline::NONE );
+ rPropMap.setProperty( PROP_FontStrikeout, maFontData.mnFontEffects & AxFontFlags::Strikeout ? awt::FontStrikeout::SINGLE : awt::FontStrikeout::NONE );
rPropMap.setProperty( PROP_FontHeight, maFontData.getHeightPoints() );
// font character set
@@ -912,17 +919,17 @@ void AxFontDataModel::convertFromProperties( PropertySet& rPropSet, const Contro
rPropSet.getProperty( maFontData.maFontName, PROP_FontName );
float fontWeight = (float)0;
if ( rPropSet.getProperty(fontWeight, PROP_FontWeight ) )
- setFlag( maFontData.mnFontEffects, AX_FONTDATA_BOLD, ( fontWeight == awt::FontWeight::BOLD ) );
+ setFlag( maFontData.mnFontEffects, AxFontFlags::Bold, ( fontWeight == awt::FontWeight::BOLD ) );
FontSlant nSlant = FontSlant_NONE;
if ( rPropSet.getProperty( nSlant, PROP_FontSlant ) )
- setFlag( maFontData.mnFontEffects, AX_FONTDATA_ITALIC, ( nSlant == FontSlant_ITALIC ) );
+ setFlag( maFontData.mnFontEffects, AxFontFlags::Italic, ( nSlant == FontSlant_ITALIC ) );
sal_Int16 nUnderLine = awt::FontUnderline::NONE;
if ( rPropSet.getProperty( nUnderLine, PROP_FontUnderline ) )
- setFlag( maFontData.mnFontEffects, AX_FONTDATA_UNDERLINE, nUnderLine != awt::FontUnderline::NONE );
+ setFlag( maFontData.mnFontEffects, AxFontFlags::Underline, nUnderLine != awt::FontUnderline::NONE );
sal_Int16 nStrikeout = awt::FontStrikeout::NONE ;
if ( rPropSet.getProperty( nStrikeout, PROP_FontStrikeout ) )
- setFlag( maFontData.mnFontEffects, AX_FONTDATA_STRIKEOUT, nStrikeout != awt::FontStrikeout::NONE );
+ setFlag( maFontData.mnFontEffects, AxFontFlags::Strikeout, nStrikeout != awt::FontStrikeout::NONE );
float fontHeight = 0.0;
if ( rPropSet.getProperty( fontHeight, PROP_FontHeight ) )
diff --git a/oox/source/ole/axfontdata.cxx b/oox/source/ole/axfontdata.cxx
index 22a31b0e15e5..b3da64439a04 100644
--- a/oox/source/ole/axfontdata.cxx
+++ b/oox/source/ole/axfontdata.cxx
@@ -26,7 +26,7 @@ namespace oox {
namespace ole {
AxFontData::AxFontData() :
- mnFontEffects( 0 ),
+ mnFontEffects( AxFontFlags::NONE ),
mnFontHeight( 160 ),
mnFontCharSet( WINDOWS_CHARSET_DEFAULT ),
mnHorAlign( AxHorizontalAlign::Left ),
@@ -51,7 +51,9 @@ bool AxFontData::importBinaryModel( BinaryInputStream& rInStrm )
{
AxBinaryPropertyReader aReader( rInStrm );
aReader.readStringProperty( maFontName );
- aReader.readIntProperty< sal_uInt32 >( mnFontEffects );
+ sal_uInt32 nTmp32 = 0;
+ aReader.readIntProperty< sal_uInt32 >( nTmp32 );
+ mnFontEffects = static_cast<AxFontFlags>(nTmp32);
aReader.readIntProperty< sal_Int32 >( mnFontHeight );
aReader.skipIntProperty< sal_Int32 >(); // font offset
aReader.readIntProperty< sal_uInt8 >( mnFontCharSet );
@@ -68,7 +70,7 @@ void AxFontData::exportBinaryModel( BinaryOutputStream& rOutStrm )
{
AxBinaryPropertyWriter aWriter( rOutStrm );
aWriter.writeStringProperty( maFontName );
- aWriter.writeIntProperty< sal_uInt32 >( mnFontEffects );
+ aWriter.writeIntProperty< sal_uInt32 >( static_cast<sal_uInt32>(mnFontEffects) );
aWriter.writeIntProperty< sal_Int32 >( mnFontHeight );
aWriter.skipProperty(); // font offset
// TODO make AxFontDataModel::convertFromProperties convert the textencoding
@@ -86,11 +88,11 @@ bool AxFontData::importStdFont( BinaryInputStream& rInStrm )
if( OleHelper::importStdFont( aFontInfo, rInStrm, false ) )
{
maFontName = aFontInfo.maName;
- mnFontEffects = 0;
- setFlag( mnFontEffects, AX_FONTDATA_BOLD, aFontInfo.mnWeight >= OLE_STDFONT_BOLD );
- setFlag( mnFontEffects, AX_FONTDATA_ITALIC, getFlag( aFontInfo.mnFlags, OLE_STDFONT_ITALIC ) );
- setFlag( mnFontEffects, AX_FONTDATA_UNDERLINE, getFlag( aFontInfo.mnFlags, OLE_STDFONT_UNDERLINE ) );
- setFlag( mnFontEffects, AX_FONTDATA_STRIKEOUT, getFlag( aFontInfo.mnFlags,OLE_STDFONT_STRIKE ) );
+ mnFontEffects = AxFontFlags::NONE;
+ setFlag( mnFontEffects, AxFontFlags::Bold, aFontInfo.mnWeight >= OLE_STDFONT_BOLD );
+ setFlag( mnFontEffects, AxFontFlags::Italic, getFlag( aFontInfo.mnFlags, OLE_STDFONT_ITALIC ) );
+ setFlag( mnFontEffects, AxFontFlags::Underline, getFlag( aFontInfo.mnFlags, OLE_STDFONT_UNDERLINE ) );
+ setFlag( mnFontEffects, AxFontFlags::Strikeout, getFlag( aFontInfo.mnFlags,OLE_STDFONT_STRIKE ) );
mbDblUnderline = false;
// StdFont stores font height in 1/10,000 of points
setHeightPoints( getLimitedValue< sal_Int16, sal_Int32 >( aFontInfo.mnHeight / 10000, 0, SAL_MAX_INT16 ) );