void AutoFitColumn() { ColumnLayout viewportResizingColumnLayoutFromX; if (IsResizingColumns) { EndColumnResizing(); } HitTestInformation savedHitTestInformation = GetHitInfo(); if (savedHitTestInformation.HitTestType == HitTestType.ColumnHeader) { viewportResizingColumnLayoutFromX = GetViewportResizingColumnLayoutFromX(savedHitTestInformation.ColumnViewportIndex, savedHitTestInformation.HitPoint.X); bool flag = false; if (viewportResizingColumnLayoutFromX == null) { if (savedHitTestInformation.ColumnViewportIndex == 0) { viewportResizingColumnLayoutFromX = GetViewportResizingColumnLayoutFromX(-1, savedHitTestInformation.HitPoint.X); } if ((viewportResizingColumnLayoutFromX == null) && ((savedHitTestInformation.ColumnViewportIndex == 0) || (savedHitTestInformation.ColumnViewportIndex == -1))) { viewportResizingColumnLayoutFromX = GetRowHeaderResizingColumnLayoutFromX(savedHitTestInformation.HitPoint.X); flag = true; } } if (viewportResizingColumnLayoutFromX != null) { int column = viewportResizingColumnLayoutFromX.Column; if (!flag) { AutoFitColumnInternal(column, true, false); } else { ColumnAutoFitUndoAction command = new ColumnAutoFitUndoAction(ActiveSheet, new ColumnAutoFitExtent[] { new ColumnAutoFitExtent(column) }, true); DoCommand(command); } } } else if (savedHitTestInformation.HitTestType == HitTestType.Corner) { viewportResizingColumnLayoutFromX = GetRowHeaderColumnLayoutModel().FindColumn(savedHitTestInformation.HeaderInfo.ResizingColumn); if (viewportResizingColumnLayoutFromX != null) { int num2 = viewportResizingColumnLayoutFromX.Column; ColumnAutoFitUndoAction action2 = new ColumnAutoFitUndoAction(ActiveSheet, new ColumnAutoFitExtent[] { new ColumnAutoFitExtent(num2) }, true); DoCommand(action2); } } }
void AutoFitColumnForTouch(HitTestInformation hi) { ColumnLayout viewportResizingColumnLayoutFromXForTouch; if (IsTouchResizingColumns) { EndTouchColumnResizing(); } if (hi.HitTestType == HitTestType.ColumnHeader) { viewportResizingColumnLayoutFromXForTouch = GetViewportResizingColumnLayoutFromXForTouch(hi.ColumnViewportIndex, hi.HitPoint.X); bool flag = false; if (viewportResizingColumnLayoutFromXForTouch == null) { if (hi.ColumnViewportIndex == 0) { viewportResizingColumnLayoutFromXForTouch = GetViewportResizingColumnLayoutFromXForTouch(-1, hi.HitPoint.X); } if ((viewportResizingColumnLayoutFromXForTouch == null) && ((hi.ColumnViewportIndex == 0) || (hi.ColumnViewportIndex == -1))) { viewportResizingColumnLayoutFromXForTouch = GetRowHeaderResizingColumnLayoutFromXForTouch(hi.HitPoint.X); flag = true; } } if (viewportResizingColumnLayoutFromXForTouch != null) { int column = viewportResizingColumnLayoutFromXForTouch.Column; if (!flag) { AutoFitColumnInternal(column, true, false); } else { ColumnAutoFitUndoAction command = new ColumnAutoFitUndoAction(ActiveSheet, new ColumnAutoFitExtent[] { new ColumnAutoFitExtent(column) }, true); DoCommand(command); } } } else if (hi.HitTestType == HitTestType.Corner) { viewportResizingColumnLayoutFromXForTouch = GetRowHeaderColumnLayoutModel().FindColumn(hi.HeaderInfo.ResizingColumn); if (viewportResizingColumnLayoutFromXForTouch != null) { int num2 = viewportResizingColumnLayoutFromXForTouch.Column; ColumnAutoFitUndoAction action2 = new ColumnAutoFitUndoAction(ActiveSheet, new ColumnAutoFitExtent[] { new ColumnAutoFitExtent(num2) }, true); DoCommand(action2); } } }
void AutoFitColumnInternal(int columnIndex, bool supportUndo, bool isRowHeader) { List <ColumnAutoFitExtent> list = new List <ColumnAutoFitExtent>(); if (ActiveSheet.IsSelected(-1, columnIndex)) { foreach (CellRange range in ActiveSheet.Selections) { if (range.Row == -1) { int num = (range.Column == -1) ? 0 : range.Column; int num2 = (range.Column == -1) ? ActiveSheet.ColumnCount : range.ColumnCount; for (int i = num; i < (num + num2); i++) { list.Add(new ColumnAutoFitExtent(i)); } } } } else { list.Add(new ColumnAutoFitExtent(columnIndex)); } ColumnAutoFitExtent[] columns = new ColumnAutoFitExtent[list.Count]; list.CopyTo(columns); ColumnAutoFitUndoAction command = new ColumnAutoFitUndoAction(ActiveSheet, columns, isRowHeader); if (supportUndo) { DoCommand(command); } else { command.Execute(this); } }