android: Update app-specific/MIME type icons
[LibreOffice.git] / sw / source / filter / xml / xmlitmap.hxx
blobeacd530ef62b3c19176c5d86a6bd9d81f49095a2
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SW_SOURCE_FILTER_XML_XMLITMAP_HXX
21 #define INCLUDED_SW_SOURCE_FILTER_XML_XMLITMAP_HXX
23 #include <sal/types.h>
24 #include <tools/ref.hxx>
25 #include <xmloff/xmltoken.hxx>
26 #include <o3tl/span.hxx>
27 #include <memory>
29 #define MID_SW_FLAG_MASK 0x0000ffff
31 // this flags are used in the item mapper for import and export
32 #define MID_SW_FLAG_SPECIAL_ITEM_IMPORT 0x80000000
33 #define MID_SW_FLAG_NO_ITEM_IMPORT 0x40000000
34 #define MID_SW_FLAG_SPECIAL_ITEM_EXPORT 0x20000000
35 #define MID_SW_FLAG_NO_ITEM_EXPORT 0x10000000
36 #define MID_SW_FLAG_ELEMENT_ITEM_IMPORT 0x08000000
37 #define MID_SW_FLAG_ELEMENT_ITEM_EXPORT 0x04000000
38 #define MID_SW_FLAG_ELEMENT_ITEM 0x0c000000 // both import and export
40 struct SvXMLItemMapEntry
42 sal_uInt16 nNameSpace; // declares the Namespace in which this item
43 // exists
44 sal_uInt16 nWhichId; // the WhichId to identify the item
45 // in the pool
46 enum ::xmloff::token::XMLTokenEnum const eLocalName;
47 // the local name for the item inside
48 // the Namespace (as an XMLTokenEnum)
49 sal_uInt32 nMemberId; // the memberid specifies which part
50 // of the item should be imported or
51 // exported with this Namespace
52 // and localName
53 SvXMLItemMapEntry(
54 sal_uInt16 nameSpace,
55 enum ::xmloff::token::XMLTokenEnum localName,
56 sal_uInt16 whichId,
57 sal_uInt32 memberId)
58 : nNameSpace(nameSpace), nWhichId(whichId), eLocalName(localName), nMemberId(memberId) {}
61 /** this class manages an array of SvXMLItemMapEntry. It is
62 used for optimizing the static array on startup of import
63 or export */
64 class SvXMLItemMapEntries final : public SvRefBase
66 o3tl::span<SvXMLItemMapEntry const> mpEntries;
68 public:
69 explicit SvXMLItemMapEntries(o3tl::span<SvXMLItemMapEntry const> pEntries) : mpEntries(pEntries) {}
70 virtual ~SvXMLItemMapEntries() override;
72 SvXMLItemMapEntry const * getByName( sal_Int32 nElement ) const;
73 SvXMLItemMapEntry const & getByIndex( sal_uInt16 nIndex ) const { return mpEntries[nIndex]; }
75 sal_uInt16 getCount() const { return mpEntries.size(); }
78 typedef tools::SvRef<SvXMLItemMapEntries> SvXMLItemMapEntriesRef;
80 extern const o3tl::span<SvXMLItemMapEntry const> aXMLTableItemMap;
81 extern const o3tl::span<SvXMLItemMapEntry const> aXMLTableColItemMap;
82 extern const o3tl::span<SvXMLItemMapEntry const> aXMLTableRowItemMap;
83 extern const o3tl::span<SvXMLItemMapEntry const> aXMLTableCellItemMap;
85 #endif // INCLUDED_SW_SOURCE_FILTER_XML_XMLITMAP_HXX
87 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */