Beispiel #1
0
        //これを送ってくるアプリケーションは viで上方スクロール
        protected void ProcessInsertLines(string param)
        {
            int d = ParseInt(param, 1);

            /*
             * TerminalDocument doc = GetDocument();
             * for(int i=0; i<d; i++)
             *      doc.InsertAfter(doc.CurrentLine, new GLine(GetConnection().TerminalWidth));
             */
            TerminalDocument doc = GetDocument();
            int   caret_pos      = _manipulator.CaretColumn;
            int   offset         = doc.CurrentLineNumber - doc.TopLineNumber;
            GLine nl             = _manipulator.Export();

            doc.ReplaceCurrentLine(nl);
            if (doc.ScrollingBottom == -1)
            {
                doc.SetScrollingRegion(0, GetConnection().TerminalHeight - 1);
            }

            for (int i = 0; i < d; i++)
            {
                doc.ScrollUp(doc.CurrentLineNumber, doc.ScrollingBottom);
                doc.CurrentLineNumber = doc.TopLineNumber + offset;
            }
            _manipulator.Load(doc.CurrentLine, caret_pos);
        }
Beispiel #2
0
        private void ProcessScrollDown(string param)
        {
            int d = ParseInt(param, 1);

            TerminalDocument doc = GetDocument();
            int   caret_col      = _manipulator.CaretColumn;
            int   offset         = doc.CurrentLineNumber - doc.TopLineNumber;
            GLine nl             = _manipulator.Export();

            doc.ReplaceCurrentLine(nl);
            if (doc.ScrollingBottom == -1)
            {
                doc.SetScrollingRegion(0, GetDocument().TerminalHeight - 1);
            }
            for (int i = 0; i < d; i++)
            {
                doc.ScrollUp(doc.ScrollingTop, doc.ScrollingBottom); // TerminalDocument's "Scroll-Up" means XTerm's "Scroll-Down"
                doc.CurrentLineNumber = doc.TopLineNumber + offset;  // find correct GLine
            }
            _manipulator.Load(doc.CurrentLine, caret_col);
        }
Beispiel #3
0
        //これを送ってくるアプリケーションは viで上方スクロール
        protected void ProcessInsertLines(string param)
        {
            int d = ParseInt(param, 1);

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

            doc.UpdateCurrentLine(_manipulator);
            if (doc.ScrollingBottom == -1)
            {
                doc.SetScrollingRegion(0, GetDocument().TerminalHeight - 1);
            }

            for (int i = 0; i < d; i++)
            {
                doc.ScrollUp(doc.CurrentLineNumber, doc.ScrollingBottom);
                doc.CurrentLineNumber = doc.TopLineNumber + offset;
            }
            _manipulator.Load(doc.CurrentLine, caret_pos);
        }