1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef _XMLOFF_XMLINDEXMARKEXPORT_HXX_ 25 #define _XMLOFF_XMLINDEXMARKEXPORT_HXX_ 26 27 #include <rtl/ustrbuf.hxx> 28 #include <com/sun/star/uno/Reference.h> 29 #include <com/sun/star/uno/Sequence.h> 30 31 class SvXMLExport; 32 class XMLTextParagraphExport; 33 namespace com { namespace sun { namespace star { 34 namespace beans { class XPropertySet; } 35 } } } 36 namespace rtl { 37 class OUString; 38 class OUStringBuffer; 39 } 40 41 42 /** 43 * This class handles the export of index marks for table of content, 44 * alphabetical and user index. 45 * 46 * Marks for bibliography indices are internally modelled as text 47 * fields and thus handled in txtparae.cxx 48 */ 49 class XMLIndexMarkExport 50 { 51 ::rtl::OUString sLevel; 52 ::rtl::OUString sUserIndexName; 53 ::rtl::OUString sPrimaryKey; 54 ::rtl::OUString sSecondaryKey; 55 ::rtl::OUString sDocumentIndexMark; 56 ::rtl::OUString sIsStart; 57 ::rtl::OUString sIsCollapsed; 58 ::rtl::OUString sAlternativeText; 59 ::rtl::OUString sTextReading; 60 ::rtl::OUString sPrimaryKeyReading; 61 ::rtl::OUString sSecondaryKeyReading; 62 ::rtl::OUString sMainEntry; 63 64 65 SvXMLExport& rExport; 66 XMLTextParagraphExport& rParaExport; 67 68 public: 69 XMLIndexMarkExport(SvXMLExport& rExp, 70 XMLTextParagraphExport& rParaExp); 71 72 ~XMLIndexMarkExport(); 73 74 /** 75 * export by the property set of its *text* *portion*. 76 * 77 * The text portion supplies us with the properties of the index 78 * mark itself, as well as the information whether we are at the 79 * start or end of an index mark, or whether the index mark is 80 * collapsed. 81 */ 82 void ExportIndexMark( 83 const ::com::sun::star::uno::Reference< 84 ::com::sun::star::beans::XPropertySet> & rPropSet, 85 sal_Bool bAutoStyles); 86 87 protected: 88 89 /// export attributes of table-of-content index marks 90 void ExportTOCMarkAttributes( 91 const ::com::sun::star::uno::Reference< 92 ::com::sun::star::beans::XPropertySet> & rPropSet); 93 94 /// export attributes of user index marks 95 void ExportUserIndexMarkAttributes( 96 const ::com::sun::star::uno::Reference< 97 ::com::sun::star::beans::XPropertySet> & rPropSet); 98 99 /// export attributes of alphabetical index marks 100 void ExportAlphabeticalIndexMarkAttributes( 101 const ::com::sun::star::uno::Reference< 102 ::com::sun::star::beans::XPropertySet> & rPropSet); 103 104 /// create a numerical ID for this index mark 105 /// (represented by its properties) 106 void GetID( 107 ::rtl::OUStringBuffer& sBuffer, 108 const ::com::sun::star::uno::Reference< 109 ::com::sun::star::beans::XPropertySet> & rPropSet); 110 111 }; 112 113 #endif 114