From 9da8d3c1cf5108deb057bd7f747d100a0c24e759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parodi=2C=20Eugenio=20=F0=9F=8C=B6?= Date: Fri, 4 Jul 2025 08:42:15 +0100 Subject: [PATCH] chore(Typing): improved typings in the base widget class --- libs/pyTermTk/TermTk/TTkCore/helper.py | 6 +++++- libs/pyTermTk/TermTk/TTkWidgets/widget.py | 26 ++++++++--------------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/libs/pyTermTk/TermTk/TTkCore/helper.py b/libs/pyTermTk/TermTk/TTkCore/helper.py index 54a661e3..6d5af8de 100644 --- a/libs/pyTermTk/TermTk/TTkCore/helper.py +++ b/libs/pyTermTk/TermTk/TTkCore/helper.py @@ -536,7 +536,11 @@ class TTkHelper: drag.pixmap().raiseWidget() @staticmethod - def dndGetDrag() -> Optional["TTkDrag"]: + def dndGetDnd() -> Optional[_DnD]: + return TTkHelper._dnd + + @staticmethod + def dndGetDrag() -> Optional[TTkDrag]: return TTkHelper._dnd.d if TTkHelper._dnd else None @staticmethod diff --git a/libs/pyTermTk/TermTk/TTkWidgets/widget.py b/libs/pyTermTk/TermTk/TTkWidgets/widget.py index 05097b91..c922b5af 100644 --- a/libs/pyTermTk/TermTk/TTkWidgets/widget.py +++ b/libs/pyTermTk/TermTk/TTkWidgets/widget.py @@ -466,22 +466,23 @@ class TTkWidget(TMouseEvents,TKeyEvents, TDragEvents): return False # Handle Drag and Drop Events - if TTkHelper.isDnD(): + if _dnd:=TTkHelper.dndGetDnd(): ret = False + dndw = _dnd.w + dndg = _dnd.d if evt.evt == TTkK.Drag: - dndw = TTkHelper.dndWidget() if dndw == self: - self.dragMoveEvent(TTkHelper.dndGetDrag().getDragMoveEvent(evt)) + self.dragMoveEvent(dndg.getDragMoveEvent(evt)) return True else: - if ( self.dragEnterEvent(TTkHelper.dndGetDrag().getDragEnterEvent(evt)) or - self.dragMoveEvent(TTkHelper.dndGetDrag().getDragMoveEvent(evt))): + if ( self.dragEnterEvent(dndg.getDragEnterEvent(evt)) or + self.dragMoveEvent(dndg.getDragMoveEvent(evt))): if dndw: - ret = dndw.dragLeaveEvent(TTkHelper.dndGetDrag().getDragLeaveEvent(evt)) + ret = dndw.dragLeaveEvent(dndg.getDragLeaveEvent(evt)) TTkHelper.dndEnter(self) return True if evt.evt == TTkK.Release: - if self.dropEvent(self._dropEventProxy(TTkHelper.dndGetDrag().getDropEvent(evt))): + if self.dropEvent(self._dropEventProxy(dndg.getDropEvent(evt))): return True return ret @@ -852,18 +853,9 @@ class TTkWidget(TMouseEvents,TKeyEvents, TDragEvents): self.currentStyleChanged.emit(style) self.update() - def setStyle(self, style=None) -> None: + def setStyle(self, style:Dict[str,Dict]={}) -> None: if not style: style = self.classStyle.copy() - if 'default' not in style: - # find the closest subclass/parent holding the style - styleType = TTkWidget - for cc in type(self).__mro__: - if cc in style: - styleType = cc - break - # Filtering out the current object style - style = style[styleType] defaultStyle = style['default'] # Use the default style to apply the missing fields of the other actions mergeStyle = {t:defaultStyle | style[t] for t in style}