Update ooo320-m1
[ooovba.git] / xmloff / source / text / XMLSectionImportContext.hxx
blobd860a4e2120bbfa239d0ebb8e4734729f5d78160
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: XMLSectionImportContext.hxx,v $
10 * $Revision: 1.13 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _XMLOFF_XMLSECTIONIMPORTCONTEXT_HXX_
32 #define _XMLOFF_XMLSECTIONIMPORTCONTEXT_HXX_
34 #include <xmloff/xmlictxt.hxx>
35 #include <com/sun/star/uno/Reference.h>
36 #include <com/sun/star/uno/Sequence.h>
38 namespace com { namespace sun { namespace star {
39 namespace text { class XTextRange; }
40 namespace beans { class XPropertySet; }
41 namespace xml { namespace sax { class XAttributeList; } }
42 } } }
43 namespace rtl { class OUString; }
44 class XMLTextImportHelper;
47 /**
48 * Import text sections.
50 * This context may *also* be used for index header sections. The
51 * differentiates its behaviour based on GetLocalName().
53 class XMLSectionImportContext : public SvXMLImportContext
55 /// start position; ranges aquired via getStart(),getEnd() don't move
56 ::com::sun::star::uno::Reference<
57 ::com::sun::star::text::XTextRange> xStartRange;
59 /// end position
60 ::com::sun::star::uno::Reference<
61 ::com::sun::star::text::XTextRange> xEndRange;
63 /// TextSection (as XPropertySet) for passing down to data source elements
64 ::com::sun::star::uno::Reference<
65 ::com::sun::star::beans::XPropertySet> xSectionPropertySet;
67 const ::rtl::OUString sTextSection;
68 const ::rtl::OUString sIndexHeaderSection;
69 const ::rtl::OUString sCondition;
70 const ::rtl::OUString sIsVisible;
71 const ::rtl::OUString sProtectionKey;
72 const ::rtl::OUString sIsProtected;
73 const ::rtl::OUString sIsCurrentlyVisible;
74 const ::rtl::OUString sEmpty;
76 ::rtl::OUString sXmlId;
77 ::rtl::OUString sStyleName;
78 ::rtl::OUString sName;
79 ::rtl::OUString sCond;
80 ::com::sun::star::uno::Sequence<sal_Int8> aSequence;
81 sal_Bool bProtect;
82 sal_Bool bCondOK;
83 sal_Bool bIsVisible;
84 sal_Bool bValid;
85 sal_Bool bSequenceOK;
86 sal_Bool bIsCurrentlyVisible;
87 sal_Bool bIsCurrentlyVisibleOK;
89 sal_Bool bHasContent;
91 public:
93 TYPEINFO();
95 XMLSectionImportContext(
96 SvXMLImport& rImport,
97 sal_uInt16 nPrfx,
98 const ::rtl::OUString& rLocalName );
100 ~XMLSectionImportContext();
102 protected:
104 virtual void StartElement(
105 const ::com::sun::star::uno::Reference<
106 ::com::sun::star::xml::sax::XAttributeList> & xAttrList);
108 virtual void EndElement();
110 virtual SvXMLImportContext *CreateChildContext(
111 sal_uInt16 nPrefix,
112 const ::rtl::OUString& rLocalName,
113 const ::com::sun::star::uno::Reference<
114 ::com::sun::star::xml::sax::XAttributeList> & xAttrList );
116 void ProcessAttributes(
117 const ::com::sun::star::uno::Reference<
118 ::com::sun::star::xml::sax::XAttributeList> & xAttrList );
121 #endif