Beispiel #1
0
    def _setLine(self, line):
        term.moveBack(self._position)
        term.write(' ' * len(self._line))
        term.moveBack(len(self._line))
#        term.eraseLine()
        term.write(''.join(line))
        self._line = line
        self._position = len(line)
Beispiel #2
0
    def _showTail(self, retainPosition=True):
        '''
            reprint everything that should be after the cursor
        '''
#        term.savePosition()
        strLine = self._getLineStr()
        toWrite = strLine[self._position:]
        term.write(toWrite)
        if retainPosition:
            term.moveBack(len(toWrite))
Beispiel #3
0
    def _paste(self, text):

#        term.savePosition()
        tail = self._line[self._position:]
        for c in text:
            self._line.insert(self._position, c)
            self._position += 1

        term.write(text)
        term.write(''.join(tail))
#        term.restorePosition()  
        term.moveBack(len(tail))
Beispiel #4
0
    def _onBackspace(self):
        if self._position >0:
            self._position -= 1
            del self._line[self._position]
            term.moveBack(1)            
#            lenToErase = len(self._line[:self._position])+1
#            term.write (' ' * lenToErase)
#            term.moveBack (lenToErase)

#            term.eraseLine()
            self._line.append(' ')
            self._showTail()
            del self._line[-1]
Beispiel #5
0
 def _moveDelta(self, steps):
     if steps:
         if steps>0:
             self._moveForward(steps)
         else:
             term.moveBack(-steps)
Beispiel #6
0
 def _onLeft(self):
     if self._position > 0:
         self._position -= 1
         term.moveBack()
     else:
         term.bell()
Beispiel #7
0
 def _toLineStart(self):
     term.moveBack(self._position)
     self._position = 0