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(RangePosition range, PlainStyleFlag flag, T value) { this.SetStyle(range.Row, range.Col, range.Rows, range.Cols, flag, value); } internal virtual void SetStyle(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(RangePosition range, PlainStyleFlag flag) { return this.GetStyle(range.Row, range.Col, range.Rows, range.Cols, flag); } internal virtual T GetStyle(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; } }