230 lines
7.0 KiB
C#
230 lines
7.0 KiB
C#
|
#region MigraDoc - Creating Documents on the Fly
|
||
|
//
|
||
|
// Authors:
|
||
|
// Klaus Potzesny
|
||
|
//
|
||
|
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
|
||
|
//
|
||
|
// http://www.pdfsharp.com
|
||
|
// http://www.migradoc.com
|
||
|
// http://sourceforge.net/projects/pdfsharp
|
||
|
//
|
||
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||
|
// copy of this software and associated documentation files (the "Software"),
|
||
|
// to deal in the Software without restriction, including without limitation
|
||
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||
|
// and/or sell copies of the Software, and to permit persons to whom the
|
||
|
// Software is furnished to do so, subject to the following conditions:
|
||
|
//
|
||
|
// The above copyright notice and this permission notice shall be included
|
||
|
// in all copies or substantial portions of the Software.
|
||
|
//
|
||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||
|
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||
|
// DEALINGS IN THE SOFTWARE.
|
||
|
#endregion
|
||
|
|
||
|
using PdfSharp.Drawing;
|
||
|
|
||
|
namespace MigraDoc.Rendering
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// Abstract base class to serve as a layoutable unit.
|
||
|
/// </summary>
|
||
|
public class LayoutInfo
|
||
|
{
|
||
|
public LayoutInfo()
|
||
|
{ }
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the height necessary to start the document object.
|
||
|
/// </summary>
|
||
|
public XUnit StartingHeight
|
||
|
{
|
||
|
get { return _startingHeight; }
|
||
|
set { _startingHeight = value; }
|
||
|
}
|
||
|
XUnit _startingHeight;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the height necessary to end the document object.
|
||
|
/// </summary>
|
||
|
public XUnit TrailingHeight
|
||
|
{
|
||
|
get { return _trailingHeight; }
|
||
|
set { _trailingHeight = value; }
|
||
|
}
|
||
|
XUnit _trailingHeight;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Indicates whether the document object shall be kept on one page
|
||
|
/// with its successor.
|
||
|
/// </summary>
|
||
|
public bool KeepWithNext
|
||
|
{
|
||
|
get { return _keepWithNext; }
|
||
|
set { _keepWithNext = value; }
|
||
|
}
|
||
|
bool _keepWithNext;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Indicates whether the document object shall be kept together on one page.
|
||
|
/// </summary>
|
||
|
public bool KeepTogether
|
||
|
{
|
||
|
get { return _keepTogether; }
|
||
|
set { _keepTogether = value; }
|
||
|
}
|
||
|
bool _keepTogether;
|
||
|
|
||
|
/// <summary>
|
||
|
/// The space that shall be kept free above the element's content.
|
||
|
/// </summary>
|
||
|
public virtual XUnit MarginTop
|
||
|
{
|
||
|
get { return _marginTop; }
|
||
|
set { _marginTop = value; }
|
||
|
}
|
||
|
XUnit _marginTop;
|
||
|
|
||
|
/// <summary>
|
||
|
/// The space that shall be kept free right to the element's content.
|
||
|
/// </summary>
|
||
|
public XUnit MarginRight
|
||
|
{
|
||
|
get { return _marginRight; }
|
||
|
set { _marginRight = value; }
|
||
|
}
|
||
|
XUnit _marginRight;
|
||
|
|
||
|
/// <summary>
|
||
|
/// The space that shall be kept free below the element's content.
|
||
|
/// </summary>
|
||
|
public XUnit MarginBottom
|
||
|
{
|
||
|
get { return _marginBottom; }
|
||
|
set { _marginBottom = value; }
|
||
|
}
|
||
|
XUnit _marginBottom;
|
||
|
|
||
|
/// <summary>
|
||
|
/// The space that shall be kept free left to the element's content.
|
||
|
/// </summary>
|
||
|
public XUnit MarginLeft
|
||
|
{
|
||
|
get { return _marginLeft; }
|
||
|
set { _marginLeft = value; }
|
||
|
}
|
||
|
XUnit _marginLeft;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the Area needed by the content (including padding and borders for e.g. paragraphs).
|
||
|
/// </summary>
|
||
|
public Area ContentArea
|
||
|
{
|
||
|
get { return _contentArea; }
|
||
|
set { _contentArea = value; }
|
||
|
}
|
||
|
Area _contentArea;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the a value indicating whether the element shall appear on a new page.
|
||
|
/// </summary>
|
||
|
public bool PageBreakBefore
|
||
|
{
|
||
|
get { return _pageBreakBefore; }
|
||
|
set { _pageBreakBefore = value; }
|
||
|
}
|
||
|
bool _pageBreakBefore;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the reference point for horizontal positioning.
|
||
|
/// </summary>
|
||
|
/// <remarks>Default value is AreaBoundary.</remarks>
|
||
|
public HorizontalReference HorizontalReference
|
||
|
{
|
||
|
get { return _horizontalReference; }
|
||
|
set { _horizontalReference = value; }
|
||
|
}
|
||
|
HorizontalReference _horizontalReference;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the reference point for vertical positioning.
|
||
|
/// </summary>
|
||
|
/// <remarks>Default value is PreviousElement.</remarks>
|
||
|
public VerticalReference VerticalReference
|
||
|
{
|
||
|
get { return _verticalReference; }
|
||
|
set { _verticalReference = value; }
|
||
|
}
|
||
|
VerticalReference _verticalReference;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the horizontal alignment of the element.
|
||
|
/// </summary>
|
||
|
/// <remarks>Default value is Near.</remarks>
|
||
|
public ElementAlignment HorizontalAlignment
|
||
|
{
|
||
|
get { return _horizontalAlignment; }
|
||
|
set { _horizontalAlignment = value; }
|
||
|
}
|
||
|
ElementAlignment _horizontalAlignment;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the vertical alignment of the element.
|
||
|
/// </summary>
|
||
|
/// <remarks>Default value is Near.</remarks>
|
||
|
public ElementAlignment VerticalAlignment
|
||
|
{
|
||
|
get { return _verticalAlignment; }
|
||
|
set { _verticalAlignment = value; }
|
||
|
}
|
||
|
ElementAlignment _verticalAlignment;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the floating behavior of surrounding elements.
|
||
|
/// </summary>
|
||
|
/// <remarks>Default value is TopBottom.</remarks>
|
||
|
public Floating Floating
|
||
|
{
|
||
|
get { return _floating; }
|
||
|
set { _floating = value; }
|
||
|
}
|
||
|
Floating _floating;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the top position of the element.
|
||
|
/// </summary>
|
||
|
public XUnit Top
|
||
|
{
|
||
|
get { return _top; }
|
||
|
set { _top = value; }
|
||
|
}
|
||
|
XUnit _top;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the left position of the element.
|
||
|
/// </summary>
|
||
|
public XUnit Left
|
||
|
{
|
||
|
get { return _left; }
|
||
|
set { _left = value; }
|
||
|
}
|
||
|
XUnit _left;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the minimum width of the element.
|
||
|
/// </summary>
|
||
|
public XUnit MinWidth
|
||
|
{
|
||
|
get { return _minWidth; }
|
||
|
set { _minWidth = value; }
|
||
|
}
|
||
|
XUnit _minWidth;
|
||
|
}
|
||
|
}
|