using System; using System.Diagnostics; using CPF.Drawing; using CPF.ReoGrid.Events; namespace CPF.ReoGrid { public class ColumnHeader : ReoGridHeader { internal ColumnHeader(Worksheet sheet) : base(sheet) { } public int Left { get; internal set; } internal ushort InnerWidth { get; set; } public ushort Width { get { return this.InnerWidth; } set { this.VerifyWorksheet(); base.Worksheet.SetColumnsWidth(this.Col, 1, value); } } internal ushort LastWidth { get; set; } internal int Col { get; set; } public override int Index { get { return this.Col; } } internal string RenderText { get; set; } public string Text { get { return this.text; } set { this.text = value; this.RenderText = ((value == null) ? RGUtility.GetAlphaChar((long)this.Col) : value); bool flag = base.Worksheet != null; if (flag) { base.Worksheet.RequestInvalidate(); } } } public int Right { get { return this.Left + (int)this.InnerWidth; } internal set { int num = value - this.Left; bool flag = num < 0; if (flag) { num = 0; } this.InnerWidth = (ushort)num; } } internal WorksheetRangeStyle InnerStyle { get; set; } public ColumnHeaderStyle Style { get { bool flag = this.refStyle == null; if (flag) { this.refStyle = new ColumnHeaderStyle(base.Worksheet, this); } return this.refStyle; } } public bool IsAutoWidth { get; set; } public override bool IsVisible { get { return this.InnerWidth > 0; } set { this.VerifyWorksheet(); if (value) { base.Worksheet.ShowColumns(this.Col, 1); } else { base.Worksheet.HideColumns(this.Col, 1); } } } private void VerifyWorksheet() { bool flag = base.Worksheet == null; if (flag) { throw new Exception("Column header must be associated to worksheet instance."); } } public Color? TextColor { get; set; } public void FitWidthToCells(bool byAction = false) { base.Worksheet.AutoFitColumnWidth(this.Col, byAction); } internal ColumnHeader Clone(Worksheet newSheet) { return new ColumnHeader(newSheet) { Left = this.Left, InnerWidth = this.InnerWidth, InnerStyle = ((this.InnerStyle == null) ? null : new WorksheetRangeStyle(this.InnerStyle)), IsAutoWidth = this.IsAutoWidth, TextColor = this.TextColor, text = this.text, RenderText = this.RenderText, Body = base.Body, DefaultCellBody = base.DefaultCellBody, Col = this.Col, LastWidth = this.LastWidth }; } //[DebuggerBrowsable(DebuggerBrowsableState.Never)] public event EventHandler WidthChanged; internal void RaiseWidthChangedEvent() { bool flag = this.WidthChanged != null; if (flag) { this.WidthChanged(this, new ColumnsWidthChangedEventArgs(this.Col, 1, (int)this.InnerWidth)); } } private string text = null; private ColumnHeaderStyle refStyle; } }