Browse Source

feat: added hinting and bgcolor to TTkLineEdit

pull/387/head
Parodi, Eugenio 🌶 11 months ago
parent
commit
5afecec62d
  1. 2
      libs/pyTermTk/TermTk/TTkCore/string.py
  2. 29
      libs/pyTermTk/TermTk/TTkWidgets/lineedit.py

2
libs/pyTermTk/TermTk/TTkCore/string.py

@ -163,6 +163,8 @@ class TTkString():
def __getitem__(self, index:int): def __getitem__(self, index:int):
raise NotImplementedError() raise NotImplementedError()
def __bool__(self) -> bool:
return bool(self._text)
def __int__(self) -> int: def __int__(self) -> int:
return int(self._text) return int(self._text)
def __float__(self) -> float: def __float__(self) -> float:

29
libs/pyTermTk/TermTk/TTkWidgets/lineedit.py

@ -22,8 +22,6 @@
__all__ = ['TTkLineEdit'] __all__ = ['TTkLineEdit']
import re
from TermTk.TTkCore.cfg import TTkCfg from TermTk.TTkCore.cfg import TTkCfg
from TermTk.TTkCore.log import TTkLog from TermTk.TTkCore.log import TTkLog
from TermTk.TTkCore.constant import TTkK from TermTk.TTkCore.constant import TTkK
@ -58,21 +56,26 @@ class TTkLineEdit(TTkWidget):
'''Display characters as they are entered while editing otherwise display asterisks.''' '''Display characters as they are entered while editing otherwise display asterisks.'''
classStyle = { classStyle = {
'default': {'color': TTkColor.fg("#dddddd")+TTkColor.bg("#222222"), 'default': {'color': TTkColor.fgbg("#dddddd","#222222"),
'selectedColor': TTkColor.fg("#ffffff")+TTkColor.bg("#008844")}, 'bgcolor': TTkColor.fgbg("#666666","#222222")+TTkColor.UNDERLINE,
'disabled': {'color': TTkColor.fg('#888888'), 'selectedColor': TTkColor.fgbg("#ffffff","#008844")},
'selectedColor': TTkColor.fg("#888888")+TTkColor.bg("#444444")}, 'disabled': {'color': TTkColor.fg( "#888888"),
'focus': {'color': TTkColor.fg("#dddddd")+TTkColor.bg("#000044")}, 'bgcolor': TTkColor.fg( "#444444")+TTkColor.UNDERLINE,
'selectedColor': TTkColor.fgbg("#888888","#444444")},
'focus': {'color': TTkColor.fgbg("#dddddd","#000044"),
'bgcolor': TTkColor.fgbg("#666666","#000044")+TTkColor.UNDERLINE}
} }
__slots__ = ( __slots__ = (
'_text', '_cursorPos', '_offset', '_replace', '_inputType', '_echoMode', '_text', '_cursorPos', '_offset', '_replace', '_inputType', '_echoMode',
'_selectionFrom', '_selectionTo', '_selectionFrom', '_selectionTo',
'_clipboard', '_clipboard',
'_hint',
# Signals # Signals
'returnPressed', 'textChanged', 'textEdited' ) 'returnPressed', 'textChanged', 'textEdited' )
def __init__(self, *, def __init__(self, *,
text:TTkString='', text:TTkString='',
hint:TTkString='',
inputType:int=TTkK.Input_Text, inputType:int=TTkK.Input_Text,
echoMode:EchoMode=EchoMode.Normal, echoMode:EchoMode=EchoMode.Normal,
**kwargs) -> None: **kwargs) -> None:
@ -86,6 +89,7 @@ class TTkLineEdit(TTkWidget):
self._selectionTo = 0 self._selectionTo = 0
self._replace=False self._replace=False
self._text = TTkString(text) self._text = TTkString(text)
self._hint = TTkString(hint)
self._inputType = inputType self._inputType = inputType
self._echoMode = echoMode self._echoMode = echoMode
self._clipboard = TTkClipboard() self._clipboard = TTkClipboard()
@ -361,7 +365,8 @@ class TTkLineEdit(TTkWidget):
def paintEvent(self, canvas): def paintEvent(self, canvas):
style = self.currentStyle() style = self.currentStyle()
color = style['color'] color = style['color']
bgcolor = style['bgcolor']
selectColor = style['selectedColor'] selectColor = style['selectedColor']
w = self.width() w = self.width()
@ -376,4 +381,10 @@ class TTkLineEdit(TTkWidget):
if self._selectionFrom < self._selectionTo: if self._selectionFrom < self._selectionTo:
text = text.setColor(color=selectColor, posFrom=self._selectionFrom, posTo=self._selectionTo) text = text.setColor(color=selectColor, posFrom=self._selectionFrom, posTo=self._selectionTo)
text = text.substring(self._offset) text = text.substring(self._offset)
canvas.drawText(pos=(0,0), text=text, color=color, width=w) canvas.fill(color=bgcolor)
if self._text:
canvas.drawTTkString(pos=(0,0), text=text, color=color)
else:
canvas.drawTTkString(pos=(0,0), text=self._hint, color=bgcolor)

Loading…
Cancel
Save