1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 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/. 8 */ 9 10 #pragma once 11 12 #include <rtl/ustring.hxx> 13 14 #include <unordered_map> 15 16 /** 17 * Provide mapping from ODF text formatting styles to EditEngine's, for 18 * rich-text cell content import. 19 */ 20 class ScXMLEditAttributeMap 21 { 22 public: 23 struct Entry 24 { 25 sal_uInt16 nmXMLNS; 26 const char* mpXMLName; 27 const char* mpAPIName; 28 sal_uInt16 mnItemID; 29 sal_uInt8 mnFlag; 30 }; 31 32 ScXMLEditAttributeMap(); 33 34 const Entry* getEntryByAPIName(const OUString& rAPIName) const; 35 const Entry* getEntryByItemID(sal_uInt16 nItemID) const; 36 37 private: 38 typedef std::unordered_map<OUString, const Entry*> StrToEntriesType; 39 typedef std::unordered_map<sal_uInt16, const Entry*> IndexToEntriesType; 40 StrToEntriesType maAPIEntries; 41 IndexToEntriesType maItemIDEntries; 42 }; 43 44 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 45