181 lines
4.4 KiB
C#
181 lines
4.4 KiB
C#
using System;
|
|
using CPF.Drawing;
|
|
using CPF.ReoGrid.Graphics;
|
|
|
|
namespace CPF.ReoGrid
|
|
{
|
|
public abstract class ReferenceStyle
|
|
{
|
|
public Worksheet Worksheet
|
|
{
|
|
get
|
|
{
|
|
return this.sheet;
|
|
}
|
|
}
|
|
|
|
internal ReferenceStyle(Worksheet sheet)
|
|
{
|
|
this.sheet = sheet;
|
|
}
|
|
|
|
internal virtual void SetStyle(RangePosition range, WorksheetRangeStyle style)
|
|
{
|
|
this.SetStyle(range.Row, range.Col, range.Rows, range.Cols, style);
|
|
}
|
|
|
|
internal virtual void SetStyle(int row, int col, int rows, int cols, WorksheetRangeStyle style)
|
|
{
|
|
this.Worksheet.SetRangeStyles(row, col, rows, cols, style);
|
|
}
|
|
|
|
internal virtual void SetStyle<T>(RangePosition range, PlainStyleFlag flag, T value)
|
|
{
|
|
this.SetStyle<T>(range.Row, range.Col, range.Rows, range.Cols, flag, value);
|
|
}
|
|
|
|
internal virtual void SetStyle<T>(int row, int col, int rows, int cols, PlainStyleFlag flag, T value)
|
|
{
|
|
WorksheetRangeStyle worksheetRangeStyle = new WorksheetRangeStyle
|
|
{
|
|
Flag = flag
|
|
};
|
|
if (flag <= PlainStyleFlag.HorizontalAlign)
|
|
{
|
|
if (flag <= PlainStyleFlag.FontStyleStrikethrough)
|
|
{
|
|
long num = flag - PlainStyleFlag.FontName;
|
|
if (num <= 3L)
|
|
{
|
|
switch ((uint)num)
|
|
{
|
|
case 0U:
|
|
worksheetRangeStyle.FontName = (string)((object)value);
|
|
goto IL_284;
|
|
case 1U:
|
|
worksheetRangeStyle.FontSize = (float)((object)value);
|
|
goto IL_284;
|
|
case 2U:
|
|
goto IL_284;
|
|
case 3U:
|
|
worksheetRangeStyle.Bold = (bool)((object)value);
|
|
goto IL_284;
|
|
}
|
|
}
|
|
if (flag != PlainStyleFlag.FontStyleItalic)
|
|
{
|
|
if (flag == PlainStyleFlag.FontStyleStrikethrough)
|
|
{
|
|
worksheetRangeStyle.Strikethrough = (bool)((object)value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
worksheetRangeStyle.Italic = (bool)((object)value);
|
|
}
|
|
}
|
|
else if (flag <= PlainStyleFlag.TextColor)
|
|
{
|
|
if (flag != PlainStyleFlag.FontStyleUnderline)
|
|
{
|
|
if (flag == PlainStyleFlag.TextColor)
|
|
{
|
|
worksheetRangeStyle.TextColor = (Color)((object)value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
worksheetRangeStyle.Underline = (bool)((object)value);
|
|
}
|
|
}
|
|
else if (flag != PlainStyleFlag.BackColor)
|
|
{
|
|
if (flag == PlainStyleFlag.HorizontalAlign)
|
|
{
|
|
worksheetRangeStyle.HAlign = (ReoGridHorAlign)((object)value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
worksheetRangeStyle.BackColor = (Color)((object)value);
|
|
}
|
|
}
|
|
else if (flag <= PlainStyleFlag.FillPatternStyle)
|
|
{
|
|
if (flag != PlainStyleFlag.VerticalAlign)
|
|
{
|
|
if (flag != PlainStyleFlag.FillPatternColor)
|
|
{
|
|
if (flag == PlainStyleFlag.FillPatternStyle)
|
|
{
|
|
worksheetRangeStyle.FillPatternStyle = (HatchStyles)((object)value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
worksheetRangeStyle.FillPatternColor = (Color)((object)value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
worksheetRangeStyle.VAlign = (ReoGridVerAlign)((object)value);
|
|
}
|
|
}
|
|
else if (flag <= PlainStyleFlag.Indent)
|
|
{
|
|
if (flag != PlainStyleFlag.TextWrap)
|
|
{
|
|
if (flag == PlainStyleFlag.Indent)
|
|
{
|
|
worksheetRangeStyle.Indent = (ushort)((object)value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
worksheetRangeStyle.TextWrapMode = (TextWrapMode)((object)value);
|
|
}
|
|
}
|
|
else if (flag != PlainStyleFlag.Padding)
|
|
{
|
|
if (flag == PlainStyleFlag.RotationAngle)
|
|
{
|
|
worksheetRangeStyle.RotationAngle = (float)((int)((object)value));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
worksheetRangeStyle.Padding = (PaddingValue)((object)value);
|
|
}
|
|
IL_284:
|
|
this.Worksheet.SetRangeStyles(row, col, rows, cols, worksheetRangeStyle);
|
|
}
|
|
|
|
internal virtual T GetStyle<T>(RangePosition range, PlainStyleFlag flag)
|
|
{
|
|
return this.GetStyle<T>(range.Row, range.Col, range.Rows, range.Cols, flag);
|
|
}
|
|
|
|
internal virtual T GetStyle<T>(int row, int col, int rows, int cols, PlainStyleFlag flag)
|
|
{
|
|
Type typeFromHandle = typeof(T);
|
|
return (T)((object)Convert.ChangeType(this.Worksheet.GetRangeStyle(row, col, rows, cols, flag), typeFromHandle));
|
|
}
|
|
|
|
internal virtual void CheckForReferenceOwner(object owner)
|
|
{
|
|
bool flag = this.Worksheet == null || owner == null;
|
|
if (flag)
|
|
{
|
|
throw new ReferenceObjectNotAssociatedException("Reference style must be associated with an instance of owner.");
|
|
}
|
|
}
|
|
|
|
public static implicit operator WorksheetRangeStyle(ReferenceStyle refStyle)
|
|
{
|
|
return new WorksheetRangeStyle();
|
|
}
|
|
|
|
private Worksheet sheet;
|
|
}
|
|
}
|