summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper/TablePositionHandler.hxx
blob: 5f77cee10439b0b3faa16891e103c1d554c8c79e (plain)
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
/* -*- 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/.
 */
#ifndef INCLUDED_POSITIONHANDLER_HXX
#define INCLUDED_POSITIONHANDLER_HXX

#include <WriterFilterDllApi.hxx>
#include <resourcemodel/LoggedResources.hxx>
#include <boost/shared_ptr.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>

namespace writerfilter {
    namespace dmapper {

        /// Handler for floating table positioning
        class WRITERFILTER_DLLPRIVATE TablePositionHandler
            : public LoggedProperties
        {
            rtl::OUString m_aVertAnchor;
            rtl::OUString m_aYSpec;
            rtl::OUString m_aHorzAnchor;
            rtl::OUString m_aXSpec;
            sal_Int32 m_nY;
            sal_Int32 m_nX;

            // Properties
            virtual void lcl_attribute(Id Name, Value & val);
            virtual void lcl_sprm(Sprm & sprm);

            public:
            TablePositionHandler();
            virtual ~TablePositionHandler();

            /** Compute the UNO properties for the frame containing the table based
                on the received tokens.

                Note that the properties will need to be adjusted with the table
                properties before actually using them.
              */
            com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> getTablePosition() const;
        };

        typedef boost::shared_ptr<TablePositionHandler> TablePositionHandlerPtr;
    } // namespace dmapper
} // namespace writerfilter

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */