def show_notification(self, message, timeout=None, style='Info'):
        """
        Overlay a message box on the center of the screen and wait for input.

        Params:
            message (list or string): List of strings, one per line.
            timeout (float): Optional, maximum length of time that the message
                will be shown before disappearing.
            style (str): The theme element that will be applied to the
                notification window
        """

        assert style in ('Info', 'Warning', 'Error', 'Success')

        if isinstance(message, six.string_types):
            message = message.splitlines()

        n_rows, n_cols = self.stdscr.getmaxyx()
        v_offset, h_offset = self.stdscr.getbegyx()

        box_width = max(len(m) for m in message) + 2
        box_height = len(message) + 2

        # Cut off the lines of the message that don't fit on the screen
        box_width = min(box_width, n_cols)
        box_height = min(box_height, n_rows)
        message = message[:box_height - 2]

        s_row = (n_rows - box_height) // 2 + v_offset
        s_col = (n_cols - box_width) // 2 + h_offset

        window = curses.newwin(box_height, box_width, s_row, s_col)
        window.bkgd(str(' '), self.attr('Notice{0}'.format(style)))
        window.erase()
        window.border()

        for index, line in enumerate(message, start=1):
            self.add_line(window, line, index, 1)
        window.refresh()

        ch, start = -1, time.time()
        with self.no_delay():
            while timeout is None or time.time() - start < timeout:
                ch = self.getch()
                if ch != -1:
                    break
                time.sleep(0.01)

        window.clear()
        del window
        self.stdscr.touchwin()
        self.stdscr.refresh()

        return ch

        Overlay a message box on the center of the screen and wait for input.

        Params:
            message (list or string): List of strings, one per line.
            timeout (float): Optional, maximum length of time that the message
                will be shown before disappearing.
            style (str): The theme element that will be applied to the
                notification window
        
rtv/terminal.py