LibreOffice Module sw (master) 1
hffrm.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_SW_SOURCE_CORE_INC_HFFRM_HXX
21#define INCLUDED_SW_SOURCE_CORE_INC_HFFRM_HXX
22
23#include "layfrm.hxx"
24
25class SwViewShell;
26
28{
29private:
30 std::vector<basegfx::B2DPolygon> GetSubsidiaryLinesPolygons(const SwViewShell& rViewShell) const;
31
32protected:
33 void FormatSize(SwTwips nUL, const SwBorderAttrs * pAttrs);
34 void FormatPrt(SwTwips & nUL, const SwBorderAttrs * pAttrs);
35 inline bool GetEatSpacing() const; // in hffrm.cxx
36
37public:
39 virtual void Format( vcl::RenderContext* pRenderContext, const SwBorderAttrs *pAttrs = nullptr ) override;
40 virtual SwTwips GrowFrame( SwTwips,
41 bool bTst = false, bool bInfo = false ) override;
43 bool bTst = false, bool bInfo = false ) override;
44 virtual void PaintSubsidiaryLines( const SwPageFrame*, const SwRect& ) const override;
45 void AddSubsidiaryLinesBounds(const SwViewShell& rViewShell, RectangleVector& rRects) const;
46};
47
49class SwHeaderFrame final : public SwHeadFootFrame
50{
51public:
52 SwHeaderFrame( SwFrameFormat* pFrame, SwFrame* pSib ) : SwHeadFootFrame(pFrame, pSib, SwFrameType::Header) {};
53
54 void dumpAsXml(xmlTextWriterPtr writer = nullptr) const override;
55};
56
58class SwFooterFrame final : public SwHeadFootFrame
59{
60public:
61 SwFooterFrame( SwFrameFormat* pFrame, SwFrame* pSib ) : SwHeadFootFrame(pFrame, pSib, SwFrameType::Footer) {};
62
63 void dumpAsXml(xmlTextWriterPtr writer = nullptr) const override;
64};
65
66#endif
67
68/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Footer in the document layout, inside a page.
Definition: hffrm.hxx:59
SwFooterFrame(SwFrameFormat *pFrame, SwFrame *pSib)
Definition: hffrm.hxx:61
void dumpAsXml(xmlTextWriterPtr writer=nullptr) const override
Definition: hffrm.cxx:781
Style of a layout element.
Definition: frmfmt.hxx:72
Base class of the Writer layout elements.
Definition: frame.hxx:315
std::vector< basegfx::B2DPolygon > GetSubsidiaryLinesPolygons(const SwViewShell &rViewShell) const
Definition: paintfrm.cxx:7211
SwHeadFootFrame(SwFrameFormat *pFrame, SwFrame *, SwFrameType aType)
Definition: hffrm.cxx:96
virtual void PaintSubsidiaryLines(const SwPageFrame *, const SwRect &) const override
Definition: paintfrm.cxx:7228
virtual SwTwips ShrinkFrame(SwTwips, bool bTst=false, bool bInfo=false) override
Definition: hffrm.cxx:540
void AddSubsidiaryLinesBounds(const SwViewShell &rViewShell, RectangleVector &rRects) const
Definition: paintfrm.cxx:7240
void FormatPrt(SwTwips &nUL, const SwBorderAttrs *pAttrs)
Definition: hffrm.cxx:114
virtual SwTwips GrowFrame(SwTwips, bool bTst=false, bool bInfo=false) override
Definition: hffrm.cxx:440
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr) override
"Formats" the Frame; Frame and PrtArea.
Definition: hffrm.cxx:415
bool GetEatSpacing() const
Definition: hffrm.cxx:652
void FormatSize(SwTwips nUL, const SwBorderAttrs *pAttrs)
Definition: hffrm.cxx:220
Header in the document layout, inside a page.
Definition: hffrm.hxx:50
SwHeaderFrame(SwFrameFormat *pFrame, SwFrame *pSib)
Definition: hffrm.hxx:52
void dumpAsXml(xmlTextWriterPtr writer=nullptr) const override
Definition: hffrm.cxx:768
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame.
Definition: layfrm.hxx:36
A page of the document layout.
Definition: pagefrm.hxx:60
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
struct _xmlTextWriter * xmlTextWriterPtr
SwFrameType
Definition: frame.hxx:75
Header
Footer
std::vector< tools::Rectangle > RectangleVector
tools::Long SwTwips
Definition: swtypes.hxx:51