Browse Source

chore: update

pull/501/head
Parodi, Eugenio 🌶 5 months ago
parent
commit
d73e3bc66b
  1. 34
      libs/pyTermTk/TermTk/TTkWidgets/datetime_date_form.py
  2. 2
      libs/pyTermTk/TermTk/TTkWidgets/datetime_time.py
  3. 7
      tests/t.ui/test.ui.036.datetime.01.py
  4. 60
      tests/t.ui/test.ui.036.datetime.02.py

34
libs/pyTermTk/TermTk/TTkWidgets/datetime_date_form.py

@ -187,17 +187,17 @@ _month_to_str_slim = {
class _TTkBaseMonthYear(TTkWidget):
classStyle = {
'default': {'color': TTkColor.fgbg("#888888","#222222")+TTkColor.UNDERLINE,
'default': {'color': TTkColor.fgbg("#888888","#222222"),
'color2': TTkColor.fgbg("#888888","#222222"),
'colorSeparator': TTkColor.fgbg("#CCCC00","#222222")+TTkColor.UNDERLINE,
'hoverColor': TTkColor.fgbg("#ffffff","#00AA66")+TTkColor.UNDERLINE,
'highlightedColor': TTkColor.fgbg("#ffffff","#00AA88")+TTkColor.UNDERLINE,
'selectedColor': TTkColor.fgbg("#ffffff","#008844")+TTkColor.UNDERLINE},
'hover': {'color': TTkColor.fgbg("#AAAAAA","#000066")+TTkColor.UNDERLINE},
'disabled': {'color': TTkColor.fg( "#444444")+TTkColor.UNDERLINE,
'colorSeparator': TTkColor.fgbg("#666666","#222222")+TTkColor.UNDERLINE,
'selectedColor': TTkColor.fgbg("#888888","#444444")+TTkColor.UNDERLINE},
'focus': {'color': TTkColor.fgbg("#888888","#000066")+TTkColor.UNDERLINE}
'colorSeparator': TTkColor.fgbg("#CCCC00","#222222"),
'hoverColor': TTkColor.fgbg("#ffffff","#00AA66"),
'highlightedColor': TTkColor.fgbg("#ffffff","#00AA88"),
'selectedColor': TTkColor.fgbg("#ffffff","#008844")},
'hover': {'color': TTkColor.fgbg("#AAAAAA","#000066")},
'disabled': {'color': TTkColor.fg( "#444444"),
'colorSeparator': TTkColor.fgbg("#666666","#222222"),
'selectedColor': TTkColor.fgbg("#888888","#444444")},
'focus': {'color': TTkColor.fgbg("#888888","#000066")}
}
__slots__ = ('_state', '_hoverState')
@ -211,8 +211,9 @@ class _TTkBaseMonthYear(TTkWidget):
self._state = state
self._hoverState = _FieldSelected.NONE
super().__init__(**kwargs)
self._state.highlightedChanged.connect(self.update)
self.setFocusPolicy(TTkK.ClickFocus | TTkK.TabFocus)
self._state.dateChanged.connect(self.update)
self._state.highlightedChanged.connect(self.update)
def _show_chooser(self) -> None:
raise NotImplementedError()
@ -405,8 +406,9 @@ class _TTkDateCal(TTkWidget):
**kwargs) -> None:
self._state = state
super().__init__(**kwargs|{'size':(20,6)})
self._state.highlightedChanged.connect(self.update)
self.setFocusPolicy(TTkK.ClickFocus | TTkK.TabFocus)
self._state.dateChanged.connect(self.update)
self._state.highlightedChanged.connect(self.update)
def focusOutEvent(self):
self._state.clearHover()
@ -535,13 +537,16 @@ class TTkDateForm(TTkContainer):
_state:_TTkDateWidgetState
def __init__(self, *,
date:datetime.date,
date:Optional[datetime.date]=None,
**kwargs) -> None:
if not date:
date = datetime.date.today()
self._state = _TTkDateWidgetState(date=date)
self._state.highlightedChanged.connect(self.update)
self.dateChanged = self._state.dateChanged
_layout=TTkLayout()
super().__init__(**kwargs|{'layout':_layout, 'size':(20,8)})
size = (20,8)
super().__init__(**kwargs|{'layout':_layout, 'size':size, 'minSize':size})
self._calWidget = _TTkDateCal(parent=self, pos=(0,2), state=self._state)
self._yearWidget = _TTkDateYear(parent=self, pos=(2,0), state=self._state)
self._monthWidget = _TTkDateMonth(parent=self, pos=(12,0), state=self._state)
@ -549,6 +554,7 @@ class TTkDateForm(TTkContainer):
def date(self) -> datetime.date:
return self._state._date
@pyTTkSlot(datetime.date)
def setDate(self, date:datetime.date) -> None:
if date != self._state._date:
self._state.setDate(date=date)

2
libs/pyTermTk/TermTk/TTkWidgets/datetime_time.py

@ -59,7 +59,7 @@ class TTkTime(TTkContainer):
classStyle = {
'default': {'color': TTkColor.fgbg("#888888","#222222")+TTkColor.UNDERLINE,
'colorSeparator': TTkColor.fgbg("#CCCC00","#222222")+TTkColor.UNDERLINE,
'colorSeparator': TTkColor.fgbg("#CCCC00","#222222"),
'hoverColor': TTkColor.fgbg("#ffffff","#00AA66")+TTkColor.UNDERLINE,
'selectedColor': TTkColor.fgbg("#ffffff","#008844")+TTkColor.UNDERLINE},
'hover': {'color': TTkColor.fgbg("#AAAAAA","#000066")+TTkColor.UNDERLINE},

7
tests/t.ui/test.ui.036.datetime.01.py

@ -25,7 +25,7 @@
import sys, os
from datetime import time,date,datetime
sys.path.append(os.path.join(sys.path[0],'../..'))
sys.path.append(os.path.join(sys.path[0],'../../libs/pyTermTk'))
import TermTk as ttk
ttk.TTkLog.use_default_file_logging()
@ -47,8 +47,9 @@ timeWidget1.timeChanged.connect(lambda _t:timeLabel1.setText(str(_t)))
timeWidget2.timeChanged.connect(lambda _t:timeLabel2.setText(str(_t)))
testDate = date(year=1980, month=12, day=25)
dateWidget = ttk.TTkDateForm(parent=win, pos=(12,0), date=testDate)
dateWidget1 = ttk.TTkDateForm(parent=win, pos=(12,0), date=testDate)
dateLabel = ttk.TTkLabel(parent=win, pos=(1,8), text=str(testDate))
dateWidget.dateChanged.connect(lambda _d: dateLabel.setText(str(_d)))
dateWidget1.dateChanged.connect(lambda _d: dateLabel.setText(str(_d)))
root.mainloop()

60
tests/t.ui/test.ui.036.datetime.02.py

@ -0,0 +1,60 @@
#!/usr/bin/env python3
# MIT License
#
# Copyright (c) 2021 Eugenio Parodi <ceccopierangiolieugenio AT googlemail DOT com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
import sys, os
from datetime import time,date,datetime
sys.path.append(os.path.join(sys.path[0],'../../libs/pyTermTk'))
import TermTk as ttk
ttk.TTkLog.use_default_file_logging()
root = ttk.TTk(mouseTrack=True)
winLog = ttk.TTkWindow(parent=root, pos=(20,1), size=(80,30), layout=ttk.TTkGridLayout())
ttk.TTkLogViewer(parent=winLog)
win = ttk.TTkWindow(parent=root, pos=(0,0), size=(57,14))
win2 = ttk.TTkWindow(parent=root, pos=(60,0), size=(22,12), layout=ttk.TTkGridLayout())
testTime1=time(hour=3,minute=30)
testTime2=time(hour=13,minute=30)
timeWidget1 = ttk.TTkTime(parent=win, pos=(1,0), time=testTime1)
timeWidget2 = ttk.TTkTime(parent=win, pos=(1,2), time=testTime2)
timeLabel1 = ttk.TTkLabel(parent=win, pos=(1,4), text=str(testTime1))
timeLabel2 = ttk.TTkLabel(parent=win, pos=(1,6), text=str(testTime2))
timeWidget1.timeChanged.connect(lambda _t:timeLabel1.setText(str(_t)))
timeWidget2.timeChanged.connect(lambda _t:timeLabel2.setText(str(_t)))
testDate = date(year=1980, month=12, day=25)
dateWidget1 = ttk.TTkDateForm(parent=win, pos=(12,0), date=testDate)
dateWidget2 = ttk.TTkDateForm(parent=win, pos=(34,0))
dateWidget3 = ttk.TTkDateForm(parent=win2, date=testDate.replace(year=2000))
dateLabel = ttk.TTkLabel(parent=win, pos=(1,8), text=str(testDate))
dateWidget1.dateChanged.connect(lambda _d: dateLabel.setText(str(_d)))
dateWidget1.dateChanged.connect(dateWidget2.setDate)
dateWidget2.dateChanged.connect(dateWidget1.setDate)
dateWidget3.dateChanged.connect(dateWidget2.setDate)
root.mainloop()
Loading…
Cancel
Save