public int ChangeColumnStartX(int column_index, int dx) { IEnumerator enumerator = this.ColumnDatas.GetEnumerator(); float num = (float)base.Width; if (enumerator.MoveNext()) { do { ColumnData columnData = enumerator.Current as ColumnData; num -= columnData.MinWidth; }while (enumerator.MoveNext()); } if (num <= 0f) { return(0); } ColumnData columnData2 = this.ColumnDatas[column_index] as ColumnData; float num2 = (float)base.Width - columnData2.StartX; float num3 = 0f; float num4 = 0f; enumerator = this.ColumnDatas.GetRange(column_index, this.ColumnDatas.Count - column_index).GetEnumerator(); if (enumerator.MoveNext()) { do { ColumnData columnData3 = enumerator.Current as ColumnData; num3 = columnData3.MinWidth + num3; num4 = columnData3.Proportion + num4; }while (enumerator.MoveNext()); if (num4 != 0f) { goto IL_DE; } } num4 = 1f; IL_DE: num2 -= num3; float num5 = (float)dx; float num6 = num2 - num5; if (num6 < 0f) { dx = (int)((double)num2); if (column_index > 0) { ColumnData columnData4 = this.ColumnDatas[column_index - 1] as ColumnData; float num7 = columnData4.Width + (float)dx; if (num7 >= columnData4.MinWidth) { columnData4.Width = num7; columnData4.Proportion = (num7 - columnData4.MinWidth) / num; } else { if (columnData4.Width <= columnData4.MinWidth) { return(0); } dx = (int)((double)(columnData4.MinWidth - columnData4.Width)); float minWidth = columnData4.MinWidth; columnData4.Width = minWidth; columnData4.Proportion = (minWidth - columnData4.MinWidth) / num; } } float num8 = columnData2.StartX + (float)dx; enumerator = this.ColumnDatas.GetRange(column_index, this.ColumnDatas.Count - column_index).GetEnumerator(); if (enumerator.MoveNext()) { do { ColumnData columnData5 = enumerator.Current as ColumnData; columnData5.StartX = num8; float minWidth2 = columnData5.MinWidth; columnData5.Width = minWidth2; num8 = minWidth2 + num8; }while (enumerator.MoveNext()); } return(dx); } num2 = num6; if (num2 > 0f) { if (column_index > 0) { ColumnData columnData6 = this.ColumnDatas[column_index - 1] as ColumnData; float num9 = columnData6.Width + num5; if (num9 >= columnData6.MinWidth) { columnData6.Width = num9; columnData6.Proportion = (num9 - columnData6.MinWidth) / num; } else { if (columnData6.Width <= columnData6.MinWidth) { return(0); } num2 = num5 + num2; dx = (int)((double)(columnData6.MinWidth - columnData6.Width)); num5 = (float)dx; num2 -= num5; float minWidth3 = columnData6.MinWidth; columnData6.Width = minWidth3; columnData6.Proportion = (minWidth3 - columnData6.MinWidth) / num; } } float num10 = columnData2.StartX + num5; enumerator = this.ColumnDatas.GetRange(column_index, this.ColumnDatas.Count - column_index).GetEnumerator(); if (enumerator.MoveNext()) { float num11 = 1f / num4; float num12 = 1f / num; do { ColumnData columnData7 = enumerator.Current as ColumnData; columnData7.StartX = num10; float num13 = columnData7.Proportion * num11 * num2 + columnData7.MinWidth; columnData7.Width = num13; columnData7.Proportion = (num13 - columnData7.MinWidth) * num12; num10 = columnData7.Width + num10; }while (enumerator.MoveNext()); } return(dx); } return(0); }
public unsafe PropertyTree(int descriptionlines, NewAssetPicker.ObjectType objecttype, NPropertyClipboard *clipboard) { this.ItemChanged = null; this.SelectedIndexChanged = null; this.TrackSelected = null; Color backColor = Color.FromKnownColor(KnownColor.Window); this.BackColor = backColor; this.PropTreeDescription = new Label(); Color backColor2 = Color.FromKnownColor(KnownColor.Control); this.PropTreeDescription.BackColor = backColor2; Color foreColor = Color.FromKnownColor(KnownColor.ControlText); this.PropTreeDescription.ForeColor = foreColor; this.PropTreeDescription.BorderStyle = BorderStyle.Fixed3D; this.PropTreeDescription.Width = base.Width; this.PropTreeDescription.Height = (this.Font.Height + 2) * descriptionlines; this.PropTreeDescription.Dock = DockStyle.Bottom; this.PropTreeCore = new PropertyTreeCore(base.Width, base.Height, base.Height, 2, this.PropTreeDescription, objecttype, clipboard); Point location = new Point(0, 20); this.PropTreeCore.Location = location; ArrayList arrayList = new ArrayList(); arrayList.Add(new ColumnItem(new string((sbyte *)(& < Module >.?? _C@_07CKMABNOK@Setting?$AA@)), 90)); arrayList.Add(new ColumnItem(new string((sbyte *)(& < Module >.?? _C@_05LPIJGKJ@Value?$AA@)), 70)); IEnumerator enumerator = arrayList.GetEnumerator(); float proportion = 1f / (float)arrayList.Count; if (enumerator.MoveNext()) { do { ColumnItem columnItem = enumerator.Current as ColumnItem; ColumnData columnData = new ColumnData(columnItem.Name, (int)((double)columnItem.MinWidth)); columnData.Proportion = proportion; this.ColumnDatas.Add(columnData); }while (enumerator.MoveNext()); } this.PropTreeHeader = new HeaderControl(this.PropTreeCore); this.PropTreeHeader.Width = this.PropTreeCore.GetViewControlWidth(); this.PropTreeHeader.Height = 20; this.PropTreeCorner = new Control(); Point location2 = new Point(this.PropTreeHeader.Width, 0); this.PropTreeCorner.Location = location2; this.PropTreeCorner.Width = base.Width - this.PropTreeHeader.Width; this.PropTreeCorner.Height = 20; Color backColor3 = Color.FromKnownColor(KnownColor.Control); this.PropTreeCorner.BackColor = backColor3; int num = base.Height - this.PropTreeHeader.Height; this.PropTreeCore.Height = num - this.PropTreeDescription.Height; this.PropTreeHeader.RecalcColumnDatas(); this.PropTreeHeader.Refresh(); this.PropTreeCore.Refresh(); this.OwnControls.Add(this.PropTreeHeader); this.OwnControls.Add(this.PropTreeCorner); this.OwnControls.Add(this.PropTreeCore); this.OwnControls.Add(this.PropTreeDescription); this.PropTreeCore.ItemChanged += new PropertyTreeCore.__Delegate_ItemChanged(this.PropTreeCore_ItemChanged); this.PropTreeCore.SelectedIndexChanged += new PropertyTreeCore.__Delegate_SelectedIndexChanged(this.PropTreeCore_SelectedIndexChanged); this.PropTreeCore.TrackSelected += new PropertyTreeCore.TrackSelectedHandler(this.PropTreeCore_TrackSelected); }