Mono.Terminal.ListView.ProcessKey C# (CSharp) Method

ProcessKey() public method

public ProcessKey ( int c ) : bool
c int
return bool
        public override bool ProcessKey(int c)
        {
            int n;

            switch (c){
            case 16: // Control-p
            case Curses.KeyUp:
                if (selected > 0){
                    selected--;
                    if (selected < top)
                        top = selected;
                    SelectedChanged ();
                    Redraw ();
                    return true;
                } else
                    return false;

            case 14: // Control-n
            case Curses.KeyDown:
                if (selected+1 < items){
                    selected++;
                    if (selected >= top + h){
                        top++;
                    }
                    SelectedChanged ();
                    Redraw ();
                    return true;
                } else
                    return false;

            case 22: //  Control-v
            case Curses.KeyNPage:
                n = (selected + h);
                if (n > items)
                    n = items-1;
                if (n != selected){
                    selected = n;
                    if (items >= h)
                        top = selected;
                    else
                        top = 0;
                    SelectedChanged ();
                    Redraw ();
                }
                return true;

            case Curses.KeyPPage:
                n = (selected - h);
                if (n < 0)
                    n = 0;
                if (n != selected){
                    selected = n;
                    top = selected;
                    SelectedChanged ();
                    Redraw ();
                }
                return true;

            default:
                return provider.ProcessKey (c);
            }
        }