diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-07-24 10:51:33 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-07-24 12:11:10 +0200 |
commit | f841985d9c80556001fbd6bd856eb84f49e805ab (patch) | |
tree | 48915582275ff2006433adc487e6a08487a6dd66 /include | |
parent | 0e701dbaa7e2b1ec00ecfcb50d29252302d2d0bd (diff) |
svl: add an SfxGrabBagItem
The intention is that this can be used as a grab bag of properties which
are not handled properly, yet we want the roundtrip of them to alien
formats.
See
http://lists.freedesktop.org/archives/libreoffice/2013-July/054428.html
for more details.
Change-Id: I3781b3b3bf1380d30683039f037d9a4292ba2f4a
Diffstat (limited to 'include')
-rw-r--r-- | include/svl/grabbagitem.hxx | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/include/svl/grabbagitem.hxx b/include/svl/grabbagitem.hxx new file mode 100644 index 000000000000..f32e8e5a51a2 --- /dev/null +++ b/include/svl/grabbagitem.hxx @@ -0,0 +1,44 @@ +/* -*- 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/. + */ +#ifndef _SFXGRABBAGITEM_HXX +#define _SFXGRABBAGITEM_HXX + +#include <map> + +#include "svl/svldllapi.h" +#include <tools/rtti.hxx> +#include <svl/poolitem.hxx> +#include <com/sun/star/uno/Any.hxx> + +/// Grab bag item provides a string-any map for interim interop purposes. +class SVL_DLLPUBLIC SfxGrabBagItem : public SfxPoolItem +{ +private: + std::map<OUString, com::sun::star::uno::Any> m_aMap; + +public: + TYPEINFO(); + + SfxGrabBagItem(); + SfxGrabBagItem(sal_uInt16 nWhich, const std::map<OUString, com::sun::star::uno::Any> *pMap = 0); + SfxGrabBagItem(const SfxGrabBagItem& rItem); + ~SfxGrabBagItem(); + + void SetGrabBag(const std::map<OUString, com::sun::star::uno::Any>& rMap); + const std::map<OUString, com::sun::star::uno::Any>& GetGrabBag() const; + + virtual int operator==(const SfxPoolItem&) const; + virtual SfxPoolItem* Clone(SfxItemPool *pPool = 0) const; + + virtual bool PutValue(const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0); + virtual bool QueryValue(com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0) const; +}; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |