Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #ifndef _XIMPSTYLE_HXX
30 : : #define _XIMPSTYLE_HXX
31 : :
32 : : #include <xmloff/xmlictxt.hxx>
33 : : #include "sdxmlimp_impl.hxx"
34 : : #include "ximppage.hxx"
35 : : #include <xmloff/xmlstyle.hxx>
36 : : #include <com/sun/star/view/PaperOrientation.hpp>
37 : : #include <vector>
38 : :
39 : : class SvNumberFormatter;
40 : : class SvXMLNumFmtHelper;
41 : :
42 : : //////////////////////////////////////////////////////////////////////////////
43 : : // special style:style context inside style:page-master context
44 : :
45 : : class SdXMLPageMasterStyleContext: public SvXMLStyleContext
46 : : {
47 : : sal_Int32 mnBorderBottom;
48 : : sal_Int32 mnBorderLeft;
49 : : sal_Int32 mnBorderRight;
50 : : sal_Int32 mnBorderTop;
51 : : sal_Int32 mnWidth;
52 : : sal_Int32 mnHeight;
53 : : com::sun::star::view::PaperOrientation meOrientation;
54 : :
55 : : const SdXMLImport& GetSdImport() const { return (const SdXMLImport&)GetImport(); }
56 : 378 : SdXMLImport& GetSdImport() { return (SdXMLImport&)GetImport(); }
57 : :
58 : : public:
59 : : TYPEINFO();
60 : :
61 : : SdXMLPageMasterStyleContext(
62 : : SdXMLImport& rImport,
63 : : sal_uInt16 nPrfx,
64 : : const rtl::OUString& rLName,
65 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
66 : : virtual ~SdXMLPageMasterStyleContext();
67 : :
68 : 25 : sal_Int32 GetBorderBottom() const { return mnBorderBottom; }
69 : 25 : sal_Int32 GetBorderLeft() const { return mnBorderLeft; }
70 : 25 : sal_Int32 GetBorderRight() const { return mnBorderRight; }
71 : 25 : sal_Int32 GetBorderTop() const { return mnBorderTop; }
72 : 25 : sal_Int32 GetWidth() const { return mnWidth; }
73 : 25 : sal_Int32 GetHeight() const { return mnHeight; }
74 : 25 : com::sun::star::view::PaperOrientation GetOrientation() const { return meOrientation; }
75 : : };
76 : :
77 : : //////////////////////////////////////////////////////////////////////////////
78 : : // style:page-master context
79 : :
80 : : class SdXMLPageMasterContext: public SvXMLStyleContext
81 : : {
82 : : rtl::OUString msName;
83 : : SdXMLPageMasterStyleContext*mpPageMasterStyle;
84 : :
85 : : const SdXMLImport& GetSdImport() const { return (const SdXMLImport&)GetImport(); }
86 : 54 : SdXMLImport& GetSdImport() { return (SdXMLImport&)GetImport(); }
87 : :
88 : : public:
89 : : TYPEINFO();
90 : :
91 : : SdXMLPageMasterContext(
92 : : SdXMLImport& rImport,
93 : : sal_uInt16 nPrfx,
94 : : const rtl::OUString& rLName,
95 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
96 : : virtual ~SdXMLPageMasterContext();
97 : :
98 : : virtual SvXMLImportContext *CreateChildContext(
99 : : sal_uInt16 nPrefix, const rtl::OUString& rLocalName,
100 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
101 : :
102 : : const rtl::OUString& GetName() const { return msName; }
103 : 25 : const SdXMLPageMasterStyleContext* GetPageMasterStyle() const { return mpPageMasterStyle; }
104 : : };
105 : :
106 : : //////////////////////////////////////////////////////////////////////////////
107 : : // style:masterpage context
108 : :
109 : : class SdXMLMasterPageContext: public SdXMLGenericPageContext
110 : : {
111 : : rtl::OUString msPageMasterName;
112 : : rtl::OUString msName;
113 : : rtl::OUString msDisplayName;
114 : : rtl::OUString msStyleName;
115 : :
116 : : public:
117 : : TYPEINFO();
118 : :
119 : : SdXMLMasterPageContext(
120 : : SdXMLImport& rImport,
121 : : sal_uInt16 nPrfx,
122 : : const rtl::OUString& rLName,
123 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList,
124 : : com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes);
125 : : virtual ~SdXMLMasterPageContext();
126 : :
127 : : virtual SvXMLImportContext *CreateChildContext(
128 : : sal_uInt16 nPrefix, const rtl::OUString& rLocalName,
129 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
130 : :
131 : : virtual void EndElement();
132 : :
133 : : const rtl::OUString& GetPageMasterName() const { return msPageMasterName; }
134 : : const rtl::OUString& GetEncodedName() const { return msName; }
135 : 33 : const rtl::OUString& GetDisplayName() const { return msDisplayName; }
136 : :
137 : : };
138 : : typedef ::std::vector< SdXMLMasterPageContext* > ImpMasterPageList;
139 : :
140 : : //////////////////////////////////////////////////////////////////////////////
141 : : // presentation:placeholder context
142 : :
143 : : class SdXMLPresentationPlaceholderContext: public SvXMLImportContext
144 : : {
145 : : rtl::OUString msName;
146 : : sal_Int32 mnX;
147 : : sal_Int32 mnY;
148 : : sal_Int32 mnWidth;
149 : : sal_Int32 mnHeight;
150 : :
151 : : const SdXMLImport& GetSdImport() const { return (const SdXMLImport&)GetImport(); }
152 : 868 : SdXMLImport& GetSdImport() { return (SdXMLImport&)GetImport(); }
153 : :
154 : : public:
155 : : SdXMLPresentationPlaceholderContext(
156 : : SdXMLImport& rImport,
157 : : sal_uInt16 nPrfx,
158 : : const rtl::OUString& rLName,
159 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
160 : : virtual ~SdXMLPresentationPlaceholderContext();
161 : :
162 : 30 : const rtl::OUString& GetName() const { return msName; }
163 : 0 : sal_Int32 GetX() const { return mnX; }
164 : : sal_Int32 GetY() const { return mnY; }
165 : : sal_Int32 GetWidth() const { return mnWidth; }
166 : : sal_Int32 GetHeight() const { return mnHeight; }
167 : : };
168 : : typedef ::std::vector< SdXMLPresentationPlaceholderContext* > ImpPlaceholderList;
169 : :
170 : : //////////////////////////////////////////////////////////////////////////////
171 : : // style:presentation-page-layout context
172 : :
173 : : class SdXMLPresentationPageLayoutContext: public SvXMLStyleContext
174 : : {
175 : : rtl::OUString msName;
176 : : ImpPlaceholderList maList;
177 : : sal_uInt16 mnTypeId;
178 : :
179 : : const SdXMLImport& GetSdImport() const { return (const SdXMLImport&)GetImport(); }
180 : 62 : SdXMLImport& GetSdImport() { return (SdXMLImport&)GetImport(); }
181 : :
182 : : public:
183 : : TYPEINFO();
184 : :
185 : : SdXMLPresentationPageLayoutContext(
186 : : SdXMLImport& rImport,
187 : : sal_uInt16 nPrfx,
188 : : const rtl::OUString& rLName,
189 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
190 : : virtual ~SdXMLPresentationPageLayoutContext();
191 : :
192 : : virtual SvXMLImportContext *CreateChildContext(
193 : : sal_uInt16 nPrefix, const rtl::OUString& rLocalName,
194 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
195 : :
196 : : virtual void EndElement();
197 : 24 : sal_uInt16 GetTypeId() const { return mnTypeId; }
198 : : };
199 : :
200 : : //////////////////////////////////////////////////////////////////////////////
201 : : // office:styles context
202 : :
203 : : class SdXMLStylesContext : public SvXMLStylesContext
204 : : {
205 : : UniReference< SvXMLImportPropertyMapper > xPresImpPropMapper;
206 : : sal_Bool mbIsAutoStyle;
207 : : SvXMLNumFmtHelper* mpNumFmtHelper;
208 : : SvNumberFormatter* mpNumFormatter;
209 : :
210 : 55 : const SdXMLImport& GetSdImport() const { return (const SdXMLImport&)GetImport(); }
211 : 851 : SdXMLImport& GetSdImport() { return (SdXMLImport&)GetImport(); }
212 : :
213 : : void ImpSetGraphicStyles() const;
214 : : void ImpSetCellStyles() const;
215 : : void ImpSetGraphicStyles( com::sun::star::uno::Reference< com::sun::star::container::XNameAccess >& xPageStyles,
216 : : sal_uInt16 nFamily, const rtl::OUString& rPrefix) const;
217 : :
218 : : protected:
219 : : virtual SvXMLStyleContext* CreateStyleChildContext(
220 : : sal_uInt16 nPrefix,
221 : : const rtl::OUString& rLocalName,
222 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
223 : :
224 : : virtual SvXMLStyleContext *CreateStyleStyleChildContext(
225 : : sal_uInt16 nFamily,
226 : : sal_uInt16 nPrefix,
227 : : const rtl::OUString& rLocalName,
228 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
229 : :
230 : : virtual SvXMLStyleContext *CreateDefaultStyleStyleChildContext(
231 : : sal_uInt16 nFamily, sal_uInt16 nPrefix,
232 : : const ::rtl::OUString& rLocalName,
233 : : const ::com::sun::star::uno::Reference<
234 : : ::com::sun::star::xml::sax::XAttributeList > & xAttrList );
235 : : public:
236 : : TYPEINFO();
237 : :
238 : : SdXMLStylesContext(
239 : : SdXMLImport& rImport,
240 : : sal_uInt16 nPrfx,
241 : : const rtl::OUString& rLName,
242 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList,
243 : : sal_Bool bIsAutoStyle);
244 : : virtual ~SdXMLStylesContext();
245 : :
246 : : virtual sal_uInt16 GetFamily( const rtl::OUString& rFamily ) const;
247 : : virtual void EndElement();
248 : : virtual UniReference< SvXMLImportPropertyMapper > GetImportPropertyMapper(sal_uInt16 nFamily) const;
249 : :
250 : : void SetMasterPageStyles(SdXMLMasterPageContext& rMaster) const;
251 : :
252 : : ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > getPageLayouts() const;
253 : : };
254 : :
255 : : //////////////////////////////////////////////////////////////////////////////
256 : : // office:master-styles context
257 : : //
258 : : class SdXMLMasterStylesContext : public SvXMLImportContext
259 : : {
260 : : ImpMasterPageList maMasterPageList;
261 : :
262 : : const SdXMLImport& GetSdImport() const { return (const SdXMLImport&)GetImport(); }
263 : 87 : SdXMLImport& GetSdImport() { return (SdXMLImport&)GetImport(); }
264 : :
265 : : public:
266 : : TYPEINFO();
267 : :
268 : : SdXMLMasterStylesContext(
269 : : SdXMLImport& rImport,
270 : : sal_uInt16 nPrfx,
271 : : const rtl::OUString& rLName);
272 : : virtual ~SdXMLMasterStylesContext();
273 : :
274 : : virtual SvXMLImportContext* CreateChildContext(
275 : : sal_uInt16 nPrefix,
276 : : const rtl::OUString& rLocalName,
277 : : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
278 : :
279 : : const ImpMasterPageList& GetMasterPageList() const { return maMasterPageList; }
280 : : };
281 : :
282 : : //////////////////////////////////////////////////////////////////////////////
283 : : // <pres:header-decl>, <pres:footer-decl> and <pres:date-time-decl>
284 : :
285 [ # # ]: 0 : class SdXMLHeaderFooterDeclContext : public SvXMLStyleContext
286 : : {
287 : : public:
288 : : SdXMLHeaderFooterDeclContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
289 : : const ::rtl::OUString& rLName,
290 : : const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
291 : :
292 : : virtual sal_Bool IsTransient() const;
293 : : virtual void EndElement();
294 : : virtual void Characters( const ::rtl::OUString& rChars );
295 : :
296 : : private:
297 : : ::rtl::OUString maStrName;
298 : : ::rtl::OUString maStrText;
299 : : ::rtl::OUString maStrDateTimeFormat;
300 : : sal_Bool mbFixed;
301 : : };
302 : :
303 : :
304 : : #endif // _XIMPSTYLE_HXX
305 : :
306 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|