diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2020-12-24 09:22:35 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2020-12-30 08:25:11 +0100 |
commit | 3482f5903079f680686a067974a24d135f44ebaf (patch) | |
tree | 1f5558da88189fa63c4a32fab34e514cf59b3c03 /include/vcl/TypeSerializer.hxx | |
parent | 4d3806c945b695488e2c5a9c83ed44ab8842511d (diff) |
vcl: remove {Read,Write}ImpGraphic and ImplExportNative from Graphic
ReadImpGraphic and WriteImpGraphic have been reimplemented in the
TypeSerializer some time ago, but the code has not yet been moved
to use that class. This commits does that and changes all the code
using those 2 methods and removes them. With this implemented in
the TypeSerializer, it is easier to handle
In addition it also removes ImplExportNative (and the method on
the Graphic interface). This was really used only in one method,
and it could be implemented in the mthod itself.
Change-Id: I0982429d1c1d5ed7ef07627d87ed9a08df43f040
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108256
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'include/vcl/TypeSerializer.hxx')
-rw-r--r-- | include/vcl/TypeSerializer.hxx | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/include/vcl/TypeSerializer.hxx b/include/vcl/TypeSerializer.hxx new file mode 100644 index 000000000000..7be2f54198e7 --- /dev/null +++ b/include/vcl/TypeSerializer.hxx @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_VCL_INC_TYPESERIALIZER_HXX +#define INCLUDED_VCL_INC_TYPESERIALIZER_HXX + +#include <vcl/dllapi.h> +#include <tools/GenericTypeSerializer.hxx> +#include <vcl/gradient.hxx> +#include <vcl/gfxlink.hxx> +#include <vcl/graph.hxx> + +constexpr sal_uInt32 createMagic(char char1, char char2, char char3, char char4) +{ + return (static_cast<sal_uInt32>(char1) << 24) | (static_cast<sal_uInt32>(char2) << 16) + | (static_cast<sal_uInt32>(char3) << 8) | (static_cast<sal_uInt32>(char4) << 0); +} + +constexpr sal_uInt32 constSvgMagic = createMagic('s', 'v', 'g', '0'); +constexpr sal_uInt32 constWmfMagic = createMagic('w', 'm', 'f', '0'); +constexpr sal_uInt32 constEmfMagic = createMagic('e', 'm', 'f', '0'); +constexpr sal_uInt32 constPdfMagic = createMagic('p', 'd', 'f', '0'); + +class VCL_DLLPUBLIC TypeSerializer : public tools::GenericTypeSerializer +{ +public: + TypeSerializer(SvStream& rStream); + + void readGradient(Gradient& rGradient); + void writeGradient(const Gradient& rGradient); + + void readGfxLink(GfxLink& rGfxLink); + void writeGfxLink(const GfxLink& rGfxLink); + + void readGraphic(Graphic& rGraphic); + void writeGraphic(const Graphic& rGraphic); +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |