예제 #1
0
        //‚±‚ê‚ð‘—‚Á‚Ä‚­‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Í vi‚ʼnº•ûƒXƒNƒ[ƒ‹
        protected void ProcessDeleteLines(string param)
        {
            int d = ParseInt(param, 1);

            /*
             * TerminalDocument doc = GetDocument();
             * _manipulator.Clear(GetConnection().TerminalWidth);
             * GLine target = doc.CurrentLine;
             * for(int i=0; i<d; i++) {
             *      target.Clear();
             *      target = target.NextLine;
             * }
             */

            TerminalDocument doc = GetDocument();
            int caret_col        = doc.CaretColumn;
            int offset           = doc.CurrentLineNumber - doc.TopLineNumber;

            //GLine nl = _manipulator.Export();
            //doc.ReplaceCurrentLine(nl);
            if (doc.ScrollingBottom == -1)
            {
                doc.SetScrollingRegion(0, doc.TerminalHeight - 1);
            }

            for (int i = 0; i < d; i++)
            {
                doc.ScrollDown(/* doc.CurrentLineNumber, doc.ScrollingBottom */);
                doc.CurrentLineNumber = doc.TopLineNumber + offset;
            }
            //_manipulator.Load(doc.CurrentLine, caret_col);
        }
예제 #2
0
        private void ProcessScrollUp(string param)
        {
            int d = ParseInt(param, 1);

            TerminalDocument doc = GetDocument();
            int caret_col        = doc.CaretColumn;
            int offset           = doc.CurrentLineNumber - doc.TopLineNumber;

            //GLine nl = _manipulator.Export();
            doc.CleanLineRange(0, doc.TerminalWidth);             // .ReplaceCurrentLine(nl);
            if (doc.ScrollingBottom == -1)
            {
                doc.SetScrollingRegion(0, GetDocument().TerminalHeight - 1);
            }
            for (int i = 0; i < d; i++)
            {
                doc.ScrollDown(doc.ScrollingTop, doc.ScrollingBottom);              // TerminalDocument's "Scroll-Down" means XTerm's "Scroll-Up"
                doc.CurrentLineNumber = doc.TopLineNumber + offset;                 // find correct GLine
            }
            //_manipulator.Load(doc.CurrentLine, caret_col);
        }