Index: third_party/twisted_8_1/twisted/conch/insults/client.py |
diff --git a/third_party/twisted_8_1/twisted/conch/insults/client.py b/third_party/twisted_8_1/twisted/conch/insults/client.py |
deleted file mode 100644 |
index 89c79cdaf0938bd358aad6c195edbf5e4ada05e1..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/conch/insults/client.py |
+++ /dev/null |
@@ -1,138 +0,0 @@ |
-""" |
-You don't really want to use this module. Try insults.py instead. |
-""" |
- |
-from twisted.internet import protocol |
- |
-class InsultsClient(protocol.Protocol): |
- |
- escapeTimeout = 0.2 |
- |
- def __init__(self): |
- self.width = self.height = None |
- self.xpos = self.ypos = 0 |
- self.commandQueue = [] |
- self.inEscape = '' |
- |
- def setSize(self, width, height): |
- call = 0 |
- if self.width: |
- call = 1 |
- self.width = width |
- self.height = height |
- if call: |
- self.windowSizeChanged() |
- |
- def dataReceived(self, data): |
- from twisted.internet import reactor |
- for ch in data: |
- if ch == '\x1b': |
- if self.inEscape: |
- self.keyReceived(ch) |
- self.inEscape = '' |
- else: |
- self.inEscape = ch |
- self.escapeCall = reactor.callLater(self.escapeTimeout, |
- self.endEscape) |
- elif ch in 'ABCD' and self.inEscape: |
- self.inEscape = '' |
- self.escapeCall.cancel() |
- if ch == 'A': |
- self.keyReceived('<Up>') |
- elif ch == 'B': |
- self.keyReceived('<Down>') |
- elif ch == 'C': |
- self.keyReceived('<Right>') |
- elif ch == 'D': |
- self.keyReceived('<Left>') |
- elif self.inEscape: |
- self.inEscape += ch |
- else: |
- self.keyReceived(ch) |
- |
- def endEscape(self): |
- ch = self.inEscape |
- self.inEscape = '' |
- self.keyReceived(ch) |
- |
- def initScreen(self): |
- self.transport.write('\x1b=\x1b[?1h') |
- |
- def gotoXY(self, x, y): |
- """Go to a position on the screen. |
- """ |
- self.xpos = x |
- self.ypos = y |
- self.commandQueue.append(('gotoxy', x, y)) |
- |
- def writeCh(self, ch): |
- """Write a character to the screen. If we're at the end of the row, |
- ignore the write. |
- """ |
- if self.xpos < self.width - 1: |
- self.commandQueue.append(('write', ch)) |
- self.xpos += 1 |
- |
- def writeStr(self, s): |
- """Write a string to the screen. This does not wrap a the edge of the |
- screen, and stops at \\r and \\n. |
- """ |
- s = s[:self.width-self.xpos] |
- if '\n' in s: |
- s=s[:s.find('\n')] |
- if '\r' in s: |
- s=s[:s.find('\r')] |
- self.commandQueue.append(('write', s)) |
- self.xpos += len(s) |
- |
- def eraseToLine(self): |
- """Erase from the current position to the end of the line. |
- """ |
- self.commandQueue.append(('eraseeol',)) |
- |
- def eraseToScreen(self): |
- """Erase from the current position to the end of the screen. |
- """ |
- self.commandQueue.append(('eraseeos',)) |
- |
- def clearScreen(self): |
- """Clear the screen, and return the cursor to 0, 0. |
- """ |
- self.commandQueue = [('cls',)] |
- self.xpos = self.ypos = 0 |
- |
- def setAttributes(self, *attrs): |
- """Set the attributes for drawing on the screen. |
- """ |
- self.commandQueue.append(('attributes', attrs)) |
- |
- def refresh(self): |
- """Redraw the screen. |
- """ |
- redraw = '' |
- for command in self.commandQueue: |
- if command[0] == 'gotoxy': |
- redraw += '\x1b[%i;%iH' % (command[2]+1, command[1]+1) |
- elif command[0] == 'write': |
- redraw += command[1] |
- elif command[0] == 'eraseeol': |
- redraw += '\x1b[0K' |
- elif command[0] == 'eraseeos': |
- redraw += '\x1b[OJ' |
- elif command[0] == 'cls': |
- redraw += '\x1b[H\x1b[J' |
- elif command[0] == 'attributes': |
- redraw += '\x1b[%sm' % ';'.join(map(str, command[1])) |
- else: |
- print command |
- self.commandQueue = [] |
- self.transport.write(redraw) |
- |
- def windowSizeChanged(self): |
- """Called when the size of the window changes. |
- Might want to redraw the screen here, or something. |
- """ |
- |
- def keyReceived(self, key): |
- """Called when the user hits a key. |
- """ |