using System; using System.Diagnostics; using CPF.Drawing; using CPF.ReoGrid.Events; namespace CPF.ReoGrid { public class RowHeader : ReoGridHeader { internal RowHeader(Worksheet sheet) : base(sheet) { } public int Top { get; internal set; } internal ushort InnerHeight { get; set; } public ushort Height { get { return this.InnerHeight; } set { this.VerifyWorksheet(); base.Worksheet.SetRowsHeight(this.Row, 1, value); } } internal ushort LastHeight { get; set; } public int Bottom { get { return this.Top + (int)this.InnerHeight; } internal set { int num = value - this.Top; bool flag = num < 0; if (flag) { num = 0; } this.InnerHeight = (ushort)num; } } internal int Row { get; set; } public override int Index { get { return this.Row; } } public string Text { get { return this.text; } set { this.text = value; bool flag = base.Worksheet != null; if (flag) { base.Worksheet.RequestInvalidate(); } } } public Color? TextColor { get { return this.textColor; } set { bool flag = this.textColor != value; if (flag) { this.textColor = value; bool flag2 = base.Worksheet != null; if (flag2) { base.Worksheet.RequestInvalidate(); } } } } internal WorksheetRangeStyle InnerStyle { get; set; } public RowHeaderStyle Style { get { bool flag = this.refStyle == null; if (flag) { this.refStyle = new RowHeaderStyle(base.Worksheet, this); } return this.refStyle; } } public bool IsAutoHeight { get; set; } public override bool IsVisible { get { return this.InnerHeight > 0; } set { this.VerifyWorksheet(); if (value) { base.Worksheet.ShowRows(this.Row, 1); } else { base.Worksheet.HideRows(this.Row, 1); } } } private void VerifyWorksheet() { bool flag = base.Worksheet == null; if (flag) { throw new Exception("Row header must be associated to a grid instance."); } } public void FitHeightToCells(bool byAction = false) { base.Worksheet.AutoFitRowHeight(this.Row, byAction); } internal RowHeader Clone(Worksheet newSheet) { return new RowHeader(newSheet) { Top = this.Top, InnerHeight = this.InnerHeight, InnerStyle = ((this.InnerStyle == null) ? null : WorksheetRangeStyle.Clone(this.InnerStyle)), IsAutoHeight = this.IsAutoHeight, TextColor = this.TextColor, text = this.text, Body = base.Body, Row = this.Row, LastHeight = this.LastHeight }; } //[DebuggerBrowsable(DebuggerBrowsableState.Never)] public event EventHandler HeightChanged; internal void RaiseHeightChangedEvent() { bool flag = this.HeightChanged != null; if (flag) { this.HeightChanged(this, new RowsHeightChangedEventArgs(this.Row, 1, (int)this.InnerHeight)); } } private string text; private Color? textColor; private RowHeaderStyle refStyle = null; } }