diff options
author | panoskorovesis <panoskorovesis@outlook.com> | 2021-08-04 16:13:27 +0300 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2021-08-10 09:49:55 +0200 |
commit | 640508cb3783fa9ba8ecf8acd257356c68b9cf48 (patch) | |
tree | b496dd9f8e5e76907ce3b8f5a1c66ef8d206bf44 | |
parent | 23bb4465057ff71e3042fdb10d3a722ff54b861f (diff) |
Add Handler for BmpExScale Write
The handler separates MetaBmpExScaleAction::Write from metaact.hxx
Write implementation is now in SvmWriter.hxx
Change-Id: Ie00f4a4d886c9c01a00c963b97dd905e05851b94
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120157
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r-- | include/vcl/filter/SvmWriter.hxx | 1 | ||||
-rw-r--r-- | vcl/source/filter/svm/SvmWriter.cxx | 20 |
2 files changed, 21 insertions, 0 deletions
diff --git a/include/vcl/filter/SvmWriter.hxx b/include/vcl/filter/SvmWriter.hxx index 54deb03a52dc..9bf3a3f50bc6 100644 --- a/include/vcl/filter/SvmWriter.hxx +++ b/include/vcl/filter/SvmWriter.hxx @@ -60,6 +60,7 @@ public: void BmpScaleHandler(MetaBmpScaleAction* pAction); void BmpScalePartHandler(MetaBmpScalePartAction* pAction); void BmpExHandler(MetaBmpExAction* pAction); + void BmpExScaleHandler(MetaBmpExScaleAction* pAction); void OverlineColorHandler(MetaOverlineColorAction* pAction); void TextAlignHandler(MetaTextAlignAction* pAction); void MapModeHandler(MetaMapModeAction* pAction); diff --git a/vcl/source/filter/svm/SvmWriter.cxx b/vcl/source/filter/svm/SvmWriter.cxx index acd14be4ddda..d0e72957ff0a 100644 --- a/vcl/source/filter/svm/SvmWriter.cxx +++ b/vcl/source/filter/svm/SvmWriter.cxx @@ -228,6 +228,13 @@ void SvmWriter::MetaActionHandler(MetaAction* pAction, ImplMetaWriteData* pData) } break; + case MetaActionType::BMPEXSCALE: + { + auto* pMetaAction = static_cast<MetaBmpExScaleAction*>(pAction); + BmpExScaleHandler(pMetaAction); + } + break; + case MetaActionType::OVERLINECOLOR: { auto* pMetaAction = static_cast<MetaOverlineColorAction*>(pAction); @@ -630,6 +637,19 @@ void SvmWriter::BmpExHandler(MetaBmpExAction* pAction) } } +void SvmWriter::BmpExScaleHandler(MetaBmpExScaleAction* pAction) +{ + if (!pAction->GetBitmapEx().GetBitmap().IsEmpty()) + { + mrStream.WriteUInt16(static_cast<sal_uInt16>(pAction->GetType())); + VersionCompatWrite aCompat(mrStream, 1); + WriteDIBBitmapEx(pAction->GetBitmapEx(), mrStream); + TypeSerializer aSerializer(mrStream); + aSerializer.writePoint(pAction->GetPoint()); + aSerializer.writeSize(pAction->GetSize()); + } +} + void SvmWriter::OverlineColorHandler(MetaOverlineColorAction* pAction) { mrStream.WriteUInt16(static_cast<sal_uInt16>(pAction->GetType())); |