Browse Source

Basic TTkString Implementation

pull/16/head
Eugenio Parodi 5 years ago
parent
commit
f71e57ff6b
  1. 1
      TermTk/TTkCore/__init__.py
  2. 41
      TermTk/TTkCore/string.py
  3. 13
      TermTk/TTkWidgets/texedit.py

1
TermTk/TTkCore/__init__.py

@ -3,4 +3,5 @@ from .cfg import *
from .signal import pyTTkSlot, pyTTkSignal
from .ttk import *
from .color import *
from .string import *
from .timer import *

41
TermTk/TTkCore/string.py

@ -25,8 +25,45 @@
from TermTk.TTkCore.constant import TTkK
from TermTk.TTkCore.log import TTkLog
from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal
from TermTk.TTkCore.color import TTkColor
class TTkString(threading.Thread):
class TTkString():
__slots__ = ('_text','_colors')
def __init__(self):
pass
self._text = ""
self._colors = [TTkColor.RST]
def __str__(self):
return self._text
def __add__(self, other):
ret = TTkString()
if isinstance(other, TTkString):
ret._text += other._text
ret._colors += other._colors
elif isinstance(other, TTkColor):
ret._colors[-1] = other
elif isinstance(other, str):
ret._text += other
ret._colors += [TTkColor.RST]*len(other)
return ret
def __radd__(self, other):
ret = TTkString()
if isinstance(other, TTkString):
ret._text = other._text + ret._text
ret._colors = other._colors + ret._colors
elif isinstance(other, str):
ret._text = other + ret._text
ret._colors = [TTkColor.RST]*len(other) + ret._colors
return ret
def ansiString(self):
out = ""
color = none
for ch, col in zip(self._text, self._color):
if col != color
color = col
out += str(color)
out += ch
return out

13
TermTk/TTkWidgets/texedit.py

@ -65,18 +65,11 @@ class _TTkTextEditView(TTkAbstractScrollView):
self._canvas.drawText(pos=(0,y), text=t[1], color=t[0])
class TTkTextEdit(TTkAbstractScrollArea):
__slots__ = ('_textEditView')
__slots__ = ('_textEditView', 'setText', 'setColoredLines')
def __init__(self, *args, **kwargs):
super().__init__(self, *args, **kwargs)
self._name = kwargs.get('name' , 'TTkTextEdit' )
self._textEditView = _TTkTextEditView()
self.setViewport(self._textEditView)
@pyTTkSlot(str)
def setText(self, text):
self._textEditView.setText(text)
@pyTTkSlot(str)
def setColoredLines(self, lines):
self._textEditView.setColoredLines(lines)
self.setText = self._textEditView.setText
self.setColoredLines = self._textEditView.setColoredLines

Loading…
Cancel
Save