private static void putFrameIntoBuffer(Node[,] buffer, Rect dimensions, FrameBorders borders, ZCharAttribute? borderColors, ZCharAttribute? fillColors) { currentBuffer = buffer; fillColors = fillColors ?? new ZCharAttribute(); var node = new Node{ Colors = fillColors.Value, NodeEnumItem = NodeEnum.None }; for (var i = dimensions.Top+1; i < dimensions.Bottom; i++) for (var j = dimensions.Left+1; j < dimensions.Right; j++) buffer[i, j] = node; applyBorders( SidesEnum.Down | SidesEnum.Right, dimensions.Left, dimensions.Top, borders.LeftBorder, borders.TopBorder, borderColors); for (var i = dimensions.Left + 1; i < dimensions.Right; i++) applyBorders(SidesEnum.Left | SidesEnum.Right, i, dimensions.Top, borders.LeftBorder, borders.TopBorder, borderColors); applyBorders( SidesEnum.Down | SidesEnum.Left, dimensions.Right, dimensions.Top, borders.RightBorder, borders.TopBorder, borderColors); for (var i = dimensions.Top + 1; i < dimensions.Bottom; i++) { applyBorders(SidesEnum.Up | SidesEnum.Down, dimensions.Left, i, borders.LeftBorder, borders.TopBorder, borderColors); applyBorders(SidesEnum.Up | SidesEnum.Down, dimensions.Right, i, borders.RightBorder, borders.TopBorder, borderColors); } applyBorders( SidesEnum.Up | SidesEnum.Right, dimensions.Left, dimensions.Bottom, borders.LeftBorder, borders.BottomBorder, borderColors); for (var i = dimensions.Left + 1; i < dimensions.Right; i++) applyBorders(SidesEnum.Left | SidesEnum.Right, i, dimensions.Bottom, borders.LeftBorder, borders.BottomBorder, borderColors); applyBorders( SidesEnum.Up | SidesEnum.Left, dimensions.Right, dimensions.Bottom, borders.RightBorder, borders.BottomBorder, borderColors); }
public Cell(Rect rect) { Dimensions = rect; Borders = new FrameBorders(); }