using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace HotelPms.Share.Windows.Report
{
///
/// 単位:1/100インチ
///
public abstract class OutputStyle
{
///
/// 文言出力用テンプレート
/// 例:ページ:{0}/{1}
///
public string Template { get; set; } = string.Empty;
private Font m_Font = new Font("MS UI Gothic", 9F);
public Font Font
{
get { return m_Font; }
set { m_Font = value; }
}
private float m_Left = 0F;
public float Left
{
get { return m_Left; }
set { m_Left = value; }
}
private float m_Top = 0F;
public float Top
{
get { return m_Top; }
set { m_Top = value; }
}
private int m_MaxCharLen = 0;
public int MaxCharLen
{
get { return m_MaxCharLen; }
set { m_MaxCharLen = value; }
}
private float m_Width = 0F;
///
/// Padding含む
///
public float Width
{
get { return m_Width; }
set { m_Width = value; }
}
///
/// Padding含む
///
public float Height { get; set; } = 0F;
public RectangleF RectangleF
{
get { return new RectangleF(m_Left, m_Top, m_Width, Height); }
set { m_Left = value.Left; m_Top = value.Top; m_Width = value.Width; Height = value.Height; }
}
///
/// 1/100インチ
///
private Padding m_Padding = new Padding(0);
public Padding Padding
{
get { return m_Padding; }
set { m_Padding = value; }
}
private List m_BorderList = new List();
///
/// 0.Left 1.Right 2.Top 3.Bottom
///
public List BorderList
{
get { return m_BorderList; }
set { m_BorderList = value; }
}
private Border m_LeftBorder = new Border(Border.TypeIndex.Left);
public Border LeftBorder
{
get { return m_LeftBorder; }
set { m_LeftBorder = value; }
}
private Border m_RightBorder = new Border(Border.TypeIndex.Right);
public Border RightBorder
{
get { return m_RightBorder; }
set { m_RightBorder = value; }
}
private Border m_TopBorder = new Border(Border.TypeIndex.Top);
public Border TopBorder
{
get { return m_TopBorder; }
set { m_TopBorder = value; }
}
private Border m_BottomBorder = new Border(Border.TypeIndex.Bottom);
public Border BottomBorder
{
get { return m_BottomBorder; }
set { m_BottomBorder = value; }
}
// 概要:
// 垂直方向の平面上のテキスト配置情報を取得または設定します。
//
// 戻り値:
// テキスト配置情報を指定する System.Drawing.StringAlignment 列挙体。
private StringAlignment m_Alignment = StringAlignment.Center;
public StringAlignment Alignment
{
get { return m_Alignment; }
set { m_Alignment = value; }
}
private StringAlignment m_LineAlignment = StringAlignment.Center;
//
// 概要:
// 水平方向の平面上の行配置を取得または設定します。
//
// 戻り値:
// 行配置を表す System.Drawing.StringAlignment 列挙体。
public StringAlignment LineAlignment
{
get { return m_LineAlignment; }
set { m_LineAlignment = value; }
}
public OutputStyle()
{
m_BorderList.Add(m_LeftBorder);
m_BorderList.Add(m_RightBorder);
m_BorderList.Add(m_TopBorder);
m_BorderList.Add(m_BottomBorder);
}
public object Clone()
{
return this.MemberwiseClone();
}
}
}