# Path: opc/text.py
# class WidthCache(object):
# class OPCText(object):
#     def __init__(self, space):
#     def add(self, char, width):
#     def get(self, char):
#     def __init__(self, typeface):
#     def drawHalfChar(self, matrix, x, y, char, offset, fg, bg):
#     def drawChar(self, matrix, x, y, c, fg, bg):
#     def drawText(self, matrix, x, y, string, fg, bg):


from .. _baseclass import ArtBaseClass
from opc.text import OPCText, typeface_bbc

    description = "Scroll text across the display"

    fg = None
    bg = None

    def __init__(self, matrix, config):
        self.config = config
        self._initText()
        self.thisMessage = self._getText()
        self.nextMessage = self._getText()

        self.typeface = OPCText(typeface_bbc)
        self.base = 0

    def _initText(self):
        raise NotImplementedError

    def _getText(self):
        raise NotImplementedError

    def start(self, matrix):
        matrix.setFirmwareConfig(nointerp=True)

    def refresh(self, matrix):
        matrix.clear(self.bg)

        y = matrix.height/2 - 4

        end = self.typeface.drawText(matrix, 0-self.base, y,

# Path: opc/text.py
# class WidthCache(object):
# class OPCText(object):
#     def __init__(self, space):
#     def add(self, char, width):
#     def get(self, char):
#     def __init__(self, typeface):
#     def drawHalfChar(self, matrix, x, y, char, offset, fg, bg):
#     def drawChar(self, matrix, x, y, c, fg, bg):
#     def drawText(self, matrix, x, y, string, fg, bg):


# Path: art/baseclasses/scrolltext.py
from .. _baseclass import ArtBaseClass
from opc.text import OPCText, typeface_bbc


    description = "Scroll text across the display"

    fg = None
    bg = None

    def __init__(self, matrix, config):
        self.config = config
        self._initText()
        self.thisMessage = self._getText()
        self.nextMessage = self._getText()

        self.typeface = OPCText(typeface_bbc)
        self.base = 0

    def _initText(self):
        raise NotImplementedError

    def _getText(self):
        raise NotImplementedError

    def start(self, matrix):
        matrix.setFirmwareConfig(nointerp=True)

    def refresh(self, matrix):
        matrix.clear(self.bg)

        y = matrix.height/2 - 4

        end = self.typeface.drawText(matrix, 0-self.base, y,

                                     self.thisMessage, self.fg, self.bg)