/* -*- 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/. */ #pragma once #include namespace com::sun::star { namespace embed { class XEmbeddedObject; } namespace io { class XInputStream; } } namespace writerfilter::rtftok { class RTFSprms; class RTFShape; class RTFPicture; /// Value of an RTF keyword class RTFValue : public Value { RTFValue(int nValue, OUString sValue, const RTFSprms* pAttributes, const RTFSprms* pSprms, css::uno::Reference xShape, css::uno::Reference xStream, css::uno::Reference xObject, bool bForceString, const RTFShape* pShape, const RTFPicture* pPicture); public: using Pointer_t = tools::SvRef; RTFValue(); explicit RTFValue(int nValue); RTFValue(OUString sValue, bool bForce = false); explicit RTFValue(const RTFSprms& rAttributes); RTFValue(const RTFSprms& rAttributes, const RTFSprms& rSprms); explicit RTFValue(css::uno::Reference xShape); explicit RTFValue(css::uno::Reference xStream); explicit RTFValue(css::uno::Reference xObject); explicit RTFValue(const RTFShape& aShape); explicit RTFValue(const RTFPicture& rPicture); ~RTFValue() override; void setString(const OUString& sValue); int getInt() const override; OUString getString() const override; css::uno::Any getAny() const override; writerfilter::Reference::Pointer_t getProperties() override; writerfilter::Reference::Pointer_t getBinary() override; #ifdef DBG_UTIL std::string toString() const override; #endif RTFValue* Clone() const; RTFValue* CloneWithSprms(RTFSprms const& rAttributes, RTFSprms const& rSprms) const; RTFSprms& getAttributes() const; RTFSprms& getSprms() const; RTFShape& getShape() const; RTFPicture& getPicture() const; bool equals(const RTFValue& rOther) const; RTFValue& operator=(RTFValue const& rOther) = delete; private: int m_nValue = 0; OUString m_sValue; mutable tools::SvRef m_pAttributes; mutable tools::SvRef m_pSprms; css::uno::Reference m_xShape; css::uno::Reference m_xStream; css::uno::Reference m_xObject; bool m_bForceString = false; mutable tools::SvRef m_pShape; mutable tools::SvRef m_pPicture; }; } // namespace writerfilter::rtftok /* vim:set shiftwidth=4 softtabstop=4 expandtab: */