1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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 .
23 #include <sal/types.h>
24 #include <tools/ref.hxx>
25 #include <xmloff/xmltoken.hxx>
28 #define MID_SW_FLAG_MASK 0x0000ffff
30 // 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_SPECIAL_ITEM 0xa0000000 // both import and export
37 #define MID_SW_FLAG_NO_ITEM 0x50000000 // both import and export
38 #define MID_SW_FLAG_ELEMENT_ITEM_IMPORT 0x08000000
39 #define MID_SW_FLAG_ELEMENT_ITEM_EXPORT 0x04000000
40 #define MID_SW_FLAG_ELEMENT_ITEM 0x0c000000 // both import and export
44 struct SvXMLItemMapEntry
46 sal_uInt16 nNameSpace
; // declares the Namespace in which this item
48 enum ::xmloff::token::XMLTokenEnum eLocalName
;
49 // the local name for the item inside
50 // the Namespace (as an XMLTokenEnum)
51 sal_uInt16 nWhichId
; // the WichId to identify the item
53 sal_uInt32 nMemberId
; // the memberid specifies which part
54 // of the item should be imported or
55 // exported with this Namespace
61 class SvXMLItemMapEntries_impl
;
63 /** this class manages an array of SvXMLItemMapEntry. It is
64 used for optimizing the static array on startup of import
66 class SvXMLItemMapEntries
: public SvRefBase
69 SvXMLItemMapEntries_impl
* mpImpl
;
72 SvXMLItemMapEntries( SvXMLItemMapEntry
* pEntrys
);
73 virtual ~SvXMLItemMapEntries();
75 SvXMLItemMapEntry
* getByName( sal_uInt16 nNameSpace
,
76 const OUString
& rString
,
77 SvXMLItemMapEntry
* pStartAt
= NULL
) const;
78 SvXMLItemMapEntry
* getByIndex( sal_uInt16 nIndex
) const;
80 sal_uInt16
getCount() const;
83 SV_DECL_REF( SvXMLItemMapEntries
)
84 SV_IMPL_REF( SvXMLItemMapEntries
)
87 #endif // _XMLITMAP_HXX
89 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */