2222
2323__all__ = ['TTkLineEdit' ]
2424
25- import re
26-
2725from TermTk .TTkCore .cfg import TTkCfg
2826from TermTk .TTkCore .log import TTkLog
2927from TermTk .TTkCore .constant import TTkK
@@ -58,21 +56,26 @@ class EchoMode(int):
5856 '''Display characters as they are entered while editing otherwise display asterisks.'''
5957
6058 classStyle = {
61- 'default' : {'color' : TTkColor .fg ("#dddddd" )+ TTkColor .bg ("#222222" ),
62- 'selectedColor' : TTkColor .fg ("#ffffff" )+ TTkColor .bg ("#008844" )},
63- 'disabled' : {'color' : TTkColor .fg ('#888888' ),
64- 'selectedColor' : TTkColor .fg ("#888888" )+ TTkColor .bg ("#444444" )},
65- 'focus' : {'color' : TTkColor .fg ("#dddddd" )+ TTkColor .bg ("#000044" )},
59+ 'default' : {'color' : TTkColor .fgbg ("#dddddd" ,"#222222" ),
60+ 'bgcolor' : TTkColor .fgbg ("#666666" ,"#222222" )+ TTkColor .UNDERLINE ,
61+ 'selectedColor' : TTkColor .fgbg ("#ffffff" ,"#008844" )},
62+ 'disabled' : {'color' : TTkColor .fg ( "#888888" ),
63+ 'bgcolor' : TTkColor .fg ( "#444444" )+ TTkColor .UNDERLINE ,
64+ 'selectedColor' : TTkColor .fgbg ("#888888" ,"#444444" )},
65+ 'focus' : {'color' : TTkColor .fgbg ("#dddddd" ,"#000044" ),
66+ 'bgcolor' : TTkColor .fgbg ("#666666" ,"#000044" )+ TTkColor .UNDERLINE }
6667 }
6768
6869 __slots__ = (
6970 '_text' , '_cursorPos' , '_offset' , '_replace' , '_inputType' , '_echoMode' ,
7071 '_selectionFrom' , '_selectionTo' ,
7172 '_clipboard' ,
73+ '_hint' ,
7274 # Signals
7375 'returnPressed' , 'textChanged' , 'textEdited' )
7476 def __init__ (self , * ,
7577 text :TTkString = '' ,
78+ hint :TTkString = '' ,
7679 inputType :int = TTkK .Input_Text ,
7780 echoMode :EchoMode = EchoMode .Normal ,
7881 ** kwargs ) -> None :
@@ -86,6 +89,7 @@ def __init__(self, *,
8689 self ._selectionTo = 0
8790 self ._replace = False
8891 self ._text = TTkString (text )
92+ self ._hint = TTkString (hint )
8993 self ._inputType = inputType
9094 self ._echoMode = echoMode
9195 self ._clipboard = TTkClipboard ()
@@ -361,7 +365,8 @@ def focusOutEvent(self):
361365 def paintEvent (self , canvas ):
362366 style = self .currentStyle ()
363367
364- color = style ['color' ]
368+ color = style ['color' ]
369+ bgcolor = style ['bgcolor' ]
365370 selectColor = style ['selectedColor' ]
366371
367372 w = self .width ()
@@ -376,4 +381,10 @@ def paintEvent(self, canvas):
376381 if self ._selectionFrom < self ._selectionTo :
377382 text = text .setColor (color = selectColor , posFrom = self ._selectionFrom , posTo = self ._selectionTo )
378383 text = text .substring (self ._offset )
379- canvas .drawText (pos = (0 ,0 ), text = text , color = color , width = w )
384+ canvas .fill (color = bgcolor )
385+ if self ._text :
386+ canvas .drawTTkString (pos = (0 ,0 ), text = text , color = color )
387+ else :
388+ canvas .drawTTkString (pos = (0 ,0 ), text = self ._hint , color = bgcolor )
389+
390+
0 commit comments