Skip to content

Commit 06a58ce

Browse files
doc(TextEdit): improve documentation (#433)
1 parent 4140d14 commit 06a58ce

9 files changed

Lines changed: 341 additions & 97 deletions

File tree

libs/pyTermTk/TermTk/TTkCore/constant.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ class WrapMode(int):
348348
WrapAnywhere = WrapMode.WrapAnywhere
349349
WrapAtWordBoundaryOrAnywhere = WrapMode.WrapAtWordBoundaryOrAnywhere
350350

351-
class LineWrapMode(int):
351+
class LineWrapMode(IntEnum):
352352
'''Those constants describes which wrapping status is required in the document
353353
354354
.. autosummary::

libs/pyTermTk/TermTk/TTkCore/string.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ def findall(self, regexp, ignoreCase=False):
598598
def getIndexes(self, char):
599599
return [i for i,c in enumerate(self._text) if c==char]
600600

601-
def join(self, strings:list[TTkString]) -> TTkString:
601+
def join(self, strings:Union[List[TTkString],List[str]]) -> TTkString:
602602
''' Join the input strings using the current as separator
603603
604604
:param strings: the list of strings to be joined
@@ -628,13 +628,13 @@ def _isSpecialWidthChar(ch):
628628
unicodedata.category(ch) in ('Me','Mn') )
629629

630630
@staticmethod
631-
def _getWidthText(txt):
631+
def _getWidthText(txt:str):
632632
return ( len(txt) +
633633
sum(unicodedata.east_asian_width(ch) == 'W' for ch in txt) -
634634
sum(unicodedata.category(ch) in ('Me','Mn') for ch in txt) )
635635

636636
@staticmethod
637-
def _getLenTextWoZero(txt):
637+
def _getLenTextWoZero(txt:str):
638638
return ( len(txt) -
639639
sum(unicodedata.category(ch) in ('Me','Mn') for ch in txt) )
640640

libs/pyTermTk/TermTk/TTkGui/textcursor.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,18 @@
2222

2323
__all__ = ['TTkTextCursor']
2424

25+
from enum import IntEnum
26+
27+
from typing import List
28+
2529
try:
2630
from typing import Self
2731
except:
2832
class Self(): pass
2933

3034
from TermTk.TTkCore.log import TTkLog
3135
from TermTk.TTkCore.color import TTkColor
32-
from TermTk.TTkCore.string import TTkString
36+
from TermTk.TTkCore.string import TTkString, TTkStringType
3337
from TermTk.TTkGui.textwrap1 import TTkTextWrap
3438
from TermTk.TTkGui.textdocument import TTkTextDocument
3539

@@ -79,15 +83,15 @@ def hasSelection(self) -> bool:
7983
return not (self.position.line == self.anchor.line and self.position.pos == self.anchor.pos)
8084

8185
class TTkTextCursor():
82-
class MoveMode():
86+
class MoveMode(IntEnum):
8387
MoveAnchor = 0x00
8488
'''Moves the anchor to the same position as the cursor itself.'''
8589
KeepAnchor = 0x01
8690
'''Keeps the anchor where it is.'''
8791
MoveAnchor = MoveMode.MoveAnchor
8892
KeepAnchor = MoveMode.KeepAnchor
8993

90-
class SelectionType():
94+
class SelectionType(IntEnum):
9195
Document = 0x03
9296
'''Selects the entire document.'''
9397
BlockUnderCursor = 0x02
@@ -101,7 +105,7 @@ class SelectionType():
101105
LineUnderCursor = SelectionType.LineUnderCursor
102106
WordUnderCursor = SelectionType.WordUnderCursor
103107

104-
class MoveOperation():
108+
class MoveOperation(IntEnum):
105109
NoMove = 0
106110
'''Keep the cursor where it is'''
107111
Start = 1
@@ -267,7 +271,7 @@ def setPosition(self, line:int, pos:int, moveMode:MoveMode=MoveMode.MoveAnchor,
267271
self._properties[cID].anchor.set(line,pos)
268272
self._document.cursorPositionChanged.emit(self)
269273

270-
def getLinesUnderCursor(self) -> TTkString:
274+
def getLinesUnderCursor(self) -> List[TTkString]:
271275
return [ self._document._dataLines[p.position.line] for p in self._properties ]
272276

273277
def _checkCursors(self, notify:bool=False) -> None:
@@ -348,7 +352,7 @@ def moveEnd(cID,p,_):
348352
def document(self) -> TTkTextDocument:
349353
return self._document
350354

351-
def replaceText(self, text:TTkString, moveCursor:bool=False) -> None:
355+
def replaceText(self, text:TTkStringType, moveCursor:bool=False) -> None:
352356
# if there is no selection, just select the next n chars till the end of the line
353357
# the newline is not replaced
354358
self._document._acquire()
@@ -365,7 +369,7 @@ def replaceText(self, text:TTkString, moveCursor:bool=False) -> None:
365369
self._document._release()
366370
return self.insertText(text, moveCursor)
367371

368-
def insertText(self, text:TTkString, moveCursor:bool=False) -> None:
372+
def insertText(self, text:TTkStringType, moveCursor:bool=False) -> None:
369373
self._document._acquire()
370374
_lineFirst = -1
371375
if self.hasSelection():

libs/pyTermTk/TermTk/TTkGui/textdocument.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
from TermTk.TTkCore.log import TTkLog
2929
from TermTk.TTkCore.signal import pyTTkSignal, pyTTkSlot
30-
from TermTk.TTkCore.string import TTkString
30+
from TermTk.TTkCore.string import TTkString, TTkStringType
3131
from TermTk.TTkCore.color import TTkColor
3232

3333
if TYPE_CHECKING:
@@ -141,7 +141,7 @@ def _getSnap(self, lines, d):
141141
'undoAvailable', 'redoAvailable', 'undoCommandAdded',
142142
'modificationChanged'
143143
)
144-
def __init__(self, *, text:Union[TTkString,str]=_default_init_text) -> None:
144+
def __init__(self, *, text:TTkStringType=_default_init_text) -> None:
145145
from TermTk.TTkGui.textcursor import TTkTextCursor
146146
self._docMutex = Lock()
147147
self.cursorPositionChanged = pyTTkSignal(TTkTextCursor)
@@ -238,7 +238,7 @@ def lineCount(self):
238238
def characterCount(self):
239239
return sum([len[x] for x in self._dataLines])+self.lineCount()
240240

241-
def setText(self, text:Union[str,TTkString]):
241+
def setText(self, text:TTkStringType) -> None:
242242
remLines = len(self._dataLines)
243243
if not isinstance(text, str) and not isinstance(text,TTkString):
244244
text=str(text)
@@ -252,7 +252,7 @@ def setText(self, text:Union[str,TTkString]):
252252
self.contentsChange.emit(0,remLines,len(self._dataLines))
253253
self._snapChanged = None
254254

255-
def appendText(self, text):
255+
def appendText(self, text) -> None:
256256
if type(text) == str:
257257
text = TTkString() + text
258258
if len(self._dataLines) == 1 and self._dataLines[0] == TTkString(TTkTextDocument._default_init_text):
@@ -313,7 +313,7 @@ def saveSnapshot(self, cursor):
313313
self.undoAvailable.emit(self.isUndoAvailable())
314314
self.redoAvailable.emit(self.isRedoAvailable())
315315

316-
def find(self, exp) -> TTkTextCursor:
316+
def find(self, exp:TTkStringType) -> TTkTextCursor:
317317
for i,line in enumerate(self._dataLines):
318318
if -1 != (pos := line.find(str(exp))):
319319
from .textcursor import TTkTextCursor

libs/pyTermTk/TermTk/TTkWidgets/label.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from TermTk.TTkCore.constant import TTkK
2626
from TermTk.TTkCore.color import TTkColor
2727
from TermTk.TTkCore.canvas import TTkCanvas
28-
from TermTk.TTkCore.string import TTkString
28+
from TermTk.TTkCore.string import TTkString, TTkStringType
2929
from TermTk.TTkCore.signal import pyTTkSlot
3030
from TermTk.TTkWidgets.widget import TTkWidget
3131

@@ -78,11 +78,11 @@ def text(self) -> TTkString:
7878
'''text'''
7979
return TTkString('\n').join(self._text)
8080

81-
@pyTTkSlot(str)
82-
def setText(self, text:TTkString):
81+
@pyTTkSlot(TTkStringType)
82+
def setText(self, text:TTkStringType):
8383
'''setText'''
8484
if self.text().sameAs(text): return
85-
if issubclass(type(text), TTkString):
85+
if isinstance(text, TTkString):
8686
self._text = text.split('\n')
8787
else:
8888
self._text = TTkString(text).split('\n')

libs/pyTermTk/TermTk/TTkWidgets/lineedit.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from TermTk.TTkCore.log import TTkLog
2727
from TermTk.TTkCore.constant import TTkK
2828
from TermTk.TTkCore.helper import TTkHelper
29-
from TermTk.TTkCore.string import TTkString
29+
from TermTk.TTkCore.string import TTkString, TTkStringType
3030
from TermTk.TTkCore.color import TTkColor
3131
from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal
3232
from TermTk.TTkCore.TTkTerm.inputkey import TTkKeyEvent
@@ -100,8 +100,8 @@ def __init__(self, *,
100100
self.setFocusPolicy(TTkK.ClickFocus + TTkK.TabFocus)
101101
self.enableWidgetCursor()
102102

103-
@pyTTkSlot(str)
104-
def setText(self, text, cursorPos=0x1000):
103+
@pyTTkSlot(TTkStringType)
104+
def setText(self, text:TTkStringType, cursorPos=0x1000):
105105
'''setText'''
106106
if text != self._text:
107107
self.textChanged.emit(text)

0 commit comments

Comments
 (0)