def move(self, direction, absolute=False, pad_name=None, refresh=True):
<EOL>cursor_line = [ '<STR_LIT>' ]<EOL>scroll_only = [ '<STR_LIT>' ]<EOL>if not pad_name:<EOL><INDENT>pad_name = self.current_pad<EOL><DEDENT>pad = self.pads[pad_name]<EOL>if pad_name == '<STR_LIT>' and self.no_streams:<EOL><INDENT>return<EOL><DEDENT>(row, col) = pad.getyx()<EOL>new_row    = row<EOL>offset = self.offsets[pad_name]<EOL>new_offset = offset<EOL>if pad_name in scroll_only:<EOL><INDENT>if absolute:<EOL><INDENT>if direction > <NUM_LIT:0>:<EOL><INDENT>new_offset = pad.getmaxyx()[<NUM_LIT:0>] - self.pad_h + <NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>new_offset = <NUM_LIT:0><EOL><DEDENT><DEDENT>else:<EOL><INDENT>if direction > <NUM_LIT:0>:<EOL><INDENT>new_offset = min(pad.getmaxyx()[<NUM_LIT:0>] - self.pad_h + <NUM_LIT:1>, offset + self.pad_h)<EOL><DEDENT>elif offset > <NUM_LIT:0>:<EOL><INDENT>new_offset = max(<NUM_LIT:0>, offset - self.pad_h)<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>if absolute and direction >= <NUM_LIT:0> and direction < pad.getmaxyx()[<NUM_LIT:0>]:<EOL><INDENT>if direction < offset:<EOL><INDENT>new_offset = direction<EOL><DEDENT>elif direction > offset + self.pad_h - <NUM_LIT:2>:<EOL><INDENT>new_offset = direction - self.pad_h + <NUM_LIT:2><EOL><DEDENT>new_row = direction<EOL><DEDENT>else:<EOL><INDENT>if direction == -<NUM_LIT:1> and row > <NUM_LIT:0>:<EOL><INDENT>if row == offset:<EOL><INDENT>new_offset -= <NUM_LIT:1><EOL><DEDENT>new_row = row-<NUM_LIT:1><EOL><DEDENT>elif direction == <NUM_LIT:1> and row < len(self.filtered_streams)-<NUM_LIT:1>:<EOL><INDENT>if row == offset + self.pad_h - <NUM_LIT:2>:<EOL><INDENT>new_offset += <NUM_LIT:1><EOL><DEDENT>new_row = row+<NUM_LIT:1><EOL><DEDENT><DEDENT><DEDENT>if pad_name in cursor_line:<EOL><INDENT>pad.move(row, <NUM_LIT:0>)<EOL>pad.chgat(curses.A_NORMAL)<EOL><DEDENT>self.offsets[pad_name] = new_offset<EOL>pad.move(new_row, <NUM_LIT:0>)<EOL>if pad_name in cursor_line:<EOL><INDENT>pad.chgat(curses.A_REVERSE)<EOL><DEDENT>if pad_name == '<STR_LIT>':<EOL><INDENT>self.redraw_stream_footer()<EOL><DEDENT>if refresh:<EOL><INDENT>self.refresh_current_pad()<EOL><DEDENT>
Scroll the current pad

        direction : (int)  move by one in the given direction
                           -1 is up, 1 is down. If absolute is True,
                           go to position direction.
                           Behaviour is affected by cursor_line and scroll_only below
        absolute  : (bool)