public void WriteCharMap(char input) { TextboxPointer pointerRef = DisplayArea_Component.Pointer_Component; CharacterMap[pointerRef.Anchor.Y].Insert(pointerRef.Anchor.X, input); if (DisplayArea_Component.Pointer_Component.MoveRight(DisplayArea_Component, CharacterMap)) { DisplayArea_Component.MoveRight(ref CharacterMap); } CharacterMap[pointerRef.Anchor.Y].Remove(null); }
public void SetRenderBuffer(List <List <char?> > CharacterMap) { int numOfLine = CharacterMap.Count; for (int j = 0; j < Height; j++) { if (Anchor.Y + j < CharacterMap.Count) { int numOfChar = CharacterMap[j].Count; for (int i = 0; i < Width; i++) { if (numOfChar > Anchor.X + i) { renderBuffer[i, j].DisplayCharacter = CharacterMap[j + Anchor.Y][i + Anchor.X]; } else { renderBuffer[i, j].DisplayCharacter = null; } // Find the Pixel that the pointer WAS at and reset it if (renderBuffer[i, j].BackgroundColor == ConsoleColor.Blue) { renderBuffer[i, j].ForegroundColor = ConsoleColor.Black; renderBuffer[i, j].BackgroundColor = ConsoleColor.White; } } } else { for (int i = 0; i < Width; i++) { renderBuffer[i, j].DisplayCharacter = null; } } } if (renderBuffer[0, CharacterMap.Count - Anchor.Y].BackgroundColor == ConsoleColor.Blue) { renderBuffer[0, CharacterMap.Count - Anchor.Y].ForegroundColor = ConsoleColor.Black; renderBuffer[0, CharacterMap.Count - Anchor.Y].BackgroundColor = ConsoleColor.White; } TextboxPointer p = Pointer_Component; renderBuffer[p.Anchor.X, p.Anchor.Y].BackgroundColor = p.PointerBackColor; renderBuffer[p.Anchor.X, p.Anchor.Y].ForegroundColor = p.PointerForeColor; }
public void NewLine() { TextboxPointer p = DisplayArea_Component.Pointer_Component; List <char?> currentLine = CharacterMap[p.Anchor.Y]; List <char?> newLine = new List <char?>(currentLine.GetRange( p.Anchor.X, currentLine.Count - p.Anchor.X)); currentLine.RemoveRange(p.Anchor.X, currentLine.Count - p.Anchor.X); p.Anchor.Y++; p.Anchor.X = 0; CharacterMap.Insert(p.Anchor.Y, newLine); }
public void WriteCharMap(char input) { TextboxPointer pointerRef = DisplayArea_Component.Pointer_Component; CharacterMap[pointerRef.Anchor.Y].Insert(pointerRef.Anchor.X, input); CharacterMap[pointerRef.Anchor.Y].Remove(null); /* * if (pointerRef.Anchor.X != DisplayArea_Component.Width) * { * DisplayArea_Component.Pointer_Component.MoveRight(); * } * else * { * DisplayArea_Component.MoveRight(); * } */ }
public void MergeLine() { TextboxPointer p = DisplayArea_Component.Pointer_Component; p.MoveLeft(DisplayArea_Component, CharacterMap); List <char?> targetLine = CharacterMap[p.Anchor.Y]; //p.Anchor.X = targetLine.Count; try { targetLine.AddRange(CharacterMap[p.Anchor.Y + 1]); CharacterMap.RemoveAt(p.Anchor.Y + 1); } catch (ArgumentOutOfRangeException) { } //p.Anchor.Y--; }
public void SetRenderBuffer(ref List <List <char?> > CharacterMap) { for (int j = 0; j < Height; j++) { for (int i = 0; i < Width; i++) { try { renderBuffer[i, j].DisplayCharacter = CharacterMap[j][i]; } catch (IndexOutOfRangeException) { renderBuffer[i, j].DisplayCharacter = null; } } } TextboxPointer p = Pointer_Component; renderBuffer[p.Anchor.X, p.Anchor.Y].BackgroundColor = p.PointerBackColor; renderBuffer[p.Anchor.X, p.Anchor.Y].ForegroundColor = p.PointerForeColor; }
public void RemoveCharMap() { TextboxPointer p = DisplayArea_Component.Pointer_Component; if (p.Anchor.X > 0) { CharacterMap[p.Anchor.Y].RemoveAt(p.Anchor.X - 1); } else { MergeLine(); return; } // Deprecated if (DisplayArea_Component.Pointer_Component.Anchor.X != DisplayArea_Component.Width) { DisplayArea_Component.Pointer_Component.MoveLeft(DisplayArea_Component, CharacterMap); } else { DisplayArea_Component.MoveLeft(); } }