Beispiel #1
0
        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);
        }
Beispiel #2
0
            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;
            }
Beispiel #3
0
        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();
             * }
             */
        }
Beispiel #5
0
        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;
        }
Beispiel #7
0
        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();
            }
        }