From 96e6361f0501b2d90fd57a8ca4dba5b67743f75a Mon Sep 17 00:00:00 2001 From: Eugenio Parodi Date: Wed, 23 Mar 2022 17:22:01 +0000 Subject: [PATCH] TTkTextEdit: Added Word Wrap feature --- TermTk/TTkWidgets/texedit.py | 7 +++++++ demo/showcase/textedit.py | 1 + 2 files changed, 8 insertions(+) diff --git a/TermTk/TTkWidgets/texedit.py b/TermTk/TTkWidgets/texedit.py index 54550614..cee642df 100644 --- a/TermTk/TTkWidgets/texedit.py +++ b/TermTk/TTkWidgets/texedit.py @@ -120,6 +120,7 @@ class _TTkTextEditView(TTkAbstractScrollView): if not w: return elif self._lineWrapMode == TTkK.FixedWidth: w = self._wrapWidth + def _process(i,l): fr = 0 to = 0 @@ -133,6 +134,12 @@ class _TTkTextEditView(TTkAbstractScrollView): l=[] else: to = max(1,l.tabCharPos(w,self._tabSpaces)) + if self._wordWrapMode == TTkK.WordWrap: # Find the index of the first white space + s = str(l) + newTo = to + while newTo and ( s[newTo] != ' ' and s[newTo] != '\t' ): newTo-=1 + if newTo: to = newTo + self._lines.append((i,(fr,fr+to))) l = l.substring(to) fr += to diff --git a/demo/showcase/textedit.py b/demo/showcase/textedit.py index 01a55565..f429e249 100755 --- a/demo/showcase/textedit.py +++ b/demo/showcase/textedit.py @@ -72,6 +72,7 @@ def demoTextEdit(root=None): # use the widget size to wrap te.setLineWrapMode(ttk.TTkK.WidgetWidth) + te.setWordWrapMode(ttk.TTkK.WordWrap) # Use a fixed wrap size # te.setLineWrapMode(ttk.TTkK.FixedWidth)