1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_XMLOFF_FORMLAYERIMPORT_HXX
#define INCLUDED_XMLOFF_FORMLAYERIMPORT_HXX
#include <sal/config.h>
#include <xmloff/dllapi.h>
#include <com/sun/star/uno/Reference.hxx>
#include <salhelper/simplereferenceobject.hxx>
#include <memory>
namespace com::sun::star::beans { class XPropertySet; }
namespace com::sun::star::drawing { class XDrawPage; }
namespace com::sun::star::xml::sax { class XAttributeList; }
class SvXMLImport;
class SvXMLImportContext;
class SvXMLStylesContext;
namespace xmloff
{
//= OFormLayerXMLImport
class OFormLayerXMLImport_Impl;
/** allows you to import a <form:form> element
*/
class XMLOFF_DLLPUBLIC OFormLayerXMLImport final
:public ::salhelper::SimpleReferenceObject
{
std::unique_ptr<OFormLayerXMLImport_Impl> m_pImpl;
public:
OFormLayerXMLImport(SvXMLImport& _rImporter);
virtual ~OFormLayerXMLImport() override;
/** start importing the forms of the given page
<p>starting the import of a new page (by using this method) invalidates the current page position.</p>
@see endPage
*/
void startPage(
const css::uno::Reference< css::drawing::XDrawPage >& _rxDrawPage);
/** creates an import context for the office:forms element
*/
static SvXMLImportContext* createOfficeFormsContext(
SvXMLImport& _rImport,
sal_uInt16 _nPrefix,
const OUString& _rLocalName);
/** create an SvXMLImportContext instance which is able to import the <form:form>
element.
<p>You must have called <method>startPage</method> before you can create such an import context.</p>
@see startPage
@see endPage
*/
SvXMLImportContext* createContext(
const sal_uInt16 _nPrefix,
const OUString& _rLocalName,
const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttribs);
/** lookup a control given by id.
<p>The control must be part of the page which is currently being imported.</p>
<p>(And, of course, the control must have been imported already at the moment you call this.)</p>
@see startPage
*/
css::uno::Reference< css::beans::XPropertySet >
lookupControl(const OUString& _rId);
/** end importing the forms of the current page
<p>You must call this method if you want the import to be finished correctly. Without calling
it, you will lose information.</p>
@see startPage
*/
void endPage();
/** announces the auto-style context to the form importer
*/
void setAutoStyleContext(SvXMLStylesContext* _pNewContext);
/** sets the given number style on the given control
@param _rxControlModel
the control model which's style is to be set
@param _rControlNumerStyleName
the style name for the control's number style
*/
void applyControlNumberStyle(
const css::uno::Reference< css::beans::XPropertySet >& _rxControlModel,
const OUString& _rControlNumerStyleName
);
/** to be called when the document has been completely imported
<p>For some documents (currently: only some spreadsheet documents) it's necessary
do to a post processing, since not all information from the file can be processed
if the document is not completed, yet.</p>
*/
void documentDone( );
};
} // namespace xmloff
#endif // INCLUDED_XMLOFF_FORMLAYERIMPORT_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|