Browse Source

Fixed TTkColor._mod redering issue and TextEdit wrap with tabs

pull/34/head
Eugenio Parodi 4 years ago
parent
commit
98b88b2977
  1. 3
      TermTk/TTkCore/canvas.py
  2. 6
      TermTk/TTkCore/color.py
  3. 4
      TermTk/TTkCore/string.py
  4. 3
      TermTk/TTkTestWidgets/testwidget.py
  5. 4
      TermTk/TTkWidgets/texedit.py
  6. 0
      demo/showcase/textedit.ANSI.txt
  7. 9
      demo/showcase/textedit.py

3
TermTk/TTkCore/canvas.py

@ -602,8 +602,7 @@ class TTkCanvas:
ch = self._data[y][x]
color = self._colors[y][x]
if empty:
ansi = color+TTkTerm.Cursor.moveTo(y+1,x+1)
#lastcolor = color
ansi = TTkTerm.Cursor.moveTo(y+1,x+1)
empty = False
if color != lastcolor:
ansi += color-lastcolor

6
TermTk/TTkCore/color.py

@ -135,9 +135,9 @@ class _TTkColor:
def __sub__(self, other):
# TTkLog.debug("__sub__")
# if other is None: return str(self)
if "" == self._bg != other._bg or \
"" == self._fg != other._fg or \
"" == self._mod != other._mod :
if ( "" == self._bg != other._bg or
"" == self._fg != other._fg or
self._mod != other._mod ):
return '\033[0m'+self
return str(self)

4
TermTk/TTkCore/string.py

@ -180,9 +180,11 @@ class TTkString():
if pos<postxt:
return pos
spaces = tabSpaces - (lentxt+tabSpaces)%tabSpaces
if pos < postxt+spaces:
return postxt
pos += 1-spaces
lentxt += spaces
postxt += 1
pos -= spaces-1
return len(self._text)
def toAscii(self):

3
TermTk/TTkTestWidgets/testwidget.py

@ -24,6 +24,7 @@
from TermTk.TTkCore.log import TTkLog
from TermTk.TTkCore.color import TTkColor
from TermTk.TTkCore.string import TTkString
from TermTk.TTkWidgets.widget import *
from TermTk.TTkWidgets.button import *
from TermTk.TTkWidgets.label import *
@ -57,6 +58,8 @@ class TTkTestWidget(TTkFrame):
self._name = f"TestWidget-{TTkTestWidget.ID}"
t,_,l,_ = self.getPadding()
TTkButton(parent=self, x=l, y=t, width=15, height=3, border=True, text=' Test Button')
label = TTkLabel(parent=self,pos=(l+20, t+1), size=(50,1))
label.setText(TTkString("test \033[42;1;30mANSI\033[44;1;33m TTkString",TTkColor.bg('#440099')+TTkColor.UNDERLINE))
self._l = [
TTkLabel(parent=self,pos=(l, t+3), size=(50,1), color=TTkColor.bg('#440099')+TTkColor.fg('#00ffff'), text="pippo"),
TTkLabel(parent=self,pos=(l, t+4), size=(50,1), color=TTkColor.bg('#440077')+TTkColor.fg('#00ccff')),

4
TermTk/TTkWidgets/texedit.py

@ -129,7 +129,7 @@ class _TTkTextEditView(TTkAbstractScrollView):
self._lines.append((i,(fr,fr+len(l))))
l=[]
else:
to = l.tabCharPos(w,self._tabSpaces)
to = max(1,l.tabCharPos(w,self._tabSpaces))
self._lines.append((i,(fr,fr+to)))
l = l.substring(to)
fr += to
@ -382,10 +382,8 @@ class _TTkTextEditView(TTkAbstractScrollView):
def paintEvent(self):
ox, oy = self.getViewOffsets()
if self.hasFocus():
color = TTkCfg.theme.lineEditTextColorFocus
selectColor = TTkCfg.theme.lineEditTextColorSelected
else:
color = TTkCfg.theme.lineEditTextColor
selectColor = TTkCfg.theme.lineEditTextColorSelected
h = self.height()

0
demo/showcase/textedit.colors.txt → demo/showcase/textedit.ANSI.txt

9
demo/showcase/textedit.py

@ -51,7 +51,7 @@ def demoTextEdit(root=None):
# Load ANSI input
te.append(ttk.TTkString("ANSI Input Test\n",ttk.TTkColor.UNDERLINE+ttk.TTkColor.BOLD))
with open(os.path.join(os.path.dirname(os.path.abspath(__file__)),'textedit.colors.txt')) as f:
with open(os.path.join(os.path.dirname(os.path.abspath(__file__)),'textedit.ANSI.txt')) as f:
te.append(f.read())
# Test Tabs
@ -71,11 +71,12 @@ def demoTextEdit(root=None):
te.append(ttk.TTkString('\n').join([ getSentence(5,25,i) for i in range(50)]))
# use the widget size to wrap
# te.setLineWrapMode(ttk.TTkK.WidgetWidth)
te.setLineWrapMode(ttk.TTkK.WidgetWidth)
# Use a fixed wrap size
te.setLineWrapMode(ttk.TTkK.FixedWidth)
te.setWrapWidth(100)
# te.setLineWrapMode(ttk.TTkK.FixedWidth)
# te.setWrapWidth(100)
return te
def main():

Loading…
Cancel
Save