def __init__(self, ssd1306, list, font):
            self.ssd1306 = ssd1306
            self.list = list
            self.font = font
            self.position = 0 # row index into list, 0 to len(list) * self.rows - 1
            self.offset = 0   # led hardware scroll offset
            self.pan_row = -1
            self.pan_offset = 0
            self.pan_direction = 1
            self.bitmaps = []
            self.rows = ssd1306.rows
            self.cols = ssd1306.cols
            self.bufrows = self.rows * 2
            downset = (self.rows - font.char_height) >> 1
            for text in list:
                width = ssd1306.cols
                text_bitmap = ssd1306.Bitmap(width, self.rows)
                width = text_bitmap.draw_text(0, downset, text, font)
                if width > 128:
                    text_bitmap = ssd1306.Bitmap(width + 15, self.rows)
                    text_bitmap.draw_text(0, downset, text, font)
                self.bitmaps.append(text_bitmap)

            # display the first word in the first position
            self.ssd1306.display_block(self.bitmaps[0], 0, 0, self.cols)