from buffer import Buffer, ACT_NORM

# console is another singleton
console = None
class ConsoleBuffer(Buffer):
    btype    = 'console'
    #modename = 'ipython'
    modename = 'colortext'
    def __new__(cls, *args, **kwargs):
        global console
        if console is None:
            b = object.__new__(ConsoleBuffer, *args, **kwargs)
            console = b
        return console
    def __init__(self):
        Buffer.__init__(self)
        self.clear()
    def clear(self):
        #lines = ['# Python Console\n',
        #         "# Evaluate python expressions in the editor's context (self)\n",
        #         '# Press Control-] to exit\n']
        lines = ['[r:d:*]# Python Console\n',
                 "# Evaluate python expressions in the editor's context (self)\n",
                 '# Press Control-] to exit\n']
        console.set_data(''.join(lines), force=True)
    def name(self):
        return '*Console*'
    def changed(self):
        return False
    def close(self):
        global console
        console = None
    def readonly(self):
        return True

    #new
    def input_insert_lines(self, p, lines, act=ACT_NORM, force=False):
        pass
    def output_insert_lines(self, p, lines, act=ACT_NORM, force=False):
        pass
    def result_insert_lines(self, p, lines, act=ACT_NORM, force=False):
        pass