diff --git a/demo/showcase/dndtabs.py b/demo/showcase/dndtabs.py index 3d6659b6..f3b8546d 100755 --- a/demo/showcase/dndtabs.py +++ b/demo/showcase/dndtabs.py @@ -31,8 +31,8 @@ def demoDnDTabs(root=None, border=True): vsplitter = ttk.TTkSplitter(parent=root, orientation=ttk.TTkK.VERTICAL) tabWidget1 = ttk.TTkTabWidget(parent=vsplitter, border=border) hsplitter = ttk.TTkSplitter(parent=vsplitter) - tabWidget2 = ttk.TTkTabWidget(parent=hsplitter, border=False) - tabWidget3 = ttk.TTkTabWidget(parent=hsplitter, border=False) + tabWidget2 = ttk.TTkTabWidget(parent=hsplitter, border=False, barType=ttk.TTkBarType.DEFAULT_2) + tabWidget3 = ttk.TTkTabWidget(parent=hsplitter, border=False, barType=ttk.TTkBarType.NERD_1) tabWidget1.addTab(ttk.TTkLogViewer(follow=True), "Logs") diff --git a/libs/pyTermTk/TermTk/TTkWidgets/kodetab.py b/libs/pyTermTk/TermTk/TTkWidgets/kodetab.py index 27baec92..5e491d5d 100644 --- a/libs/pyTermTk/TermTk/TTkWidgets/kodetab.py +++ b/libs/pyTermTk/TermTk/TTkWidgets/kodetab.py @@ -98,7 +98,7 @@ class _TTkKodeTab(TTkTabWidget): def dragMoveEvent(self, evt:TTkDnDEvent) -> bool: x,y = evt.x, evt.y w,h = self.size() - k = 3 if self.border() else 2 + k,_,_,_ = self.getPadding() if y None: self.clicked = pyTTkSignal() - self._text = TTkString(text.replace('\n','')) self._barType = barType super().__init__(forwardStyle=True, **kwargs) - def text(self) -> TTkString: - return self._text - - def setText(self, text:TTkString) -> None: - self._text = TTkString(text.replace('\n','')) - self.update() - def mouseReleaseEvent(self, evt:TTkMouseEvent) -> bool: self.clicked.emit() return True @@ -174,11 +165,13 @@ class TTkTabButton(_TTkTabColorButton): '''TTkTabButton''' __slots__ = ( '_data','_sideEnd', '_tabStatus', '_closable', - 'closeClicked', '_closeButtonPressed','_data') + 'closeClicked', '_closeButtonPressed','_data', '_text') def __init__(self, *, + text:TTkString='', data:object=None, closable:bool=False, **kwargs) -> None: + self._text = TTkString(text.replace('\n','')) self._sideEnd = TTkK.NONE self._tabStatus = TTkK.Unchecked self._data = data @@ -186,13 +179,24 @@ class TTkTabButton(_TTkTabColorButton): self.closeClicked = pyTTkSignal() super().__init__(**kwargs) self._closeButtonPressed = False + self._resetSize() + self.setFocusPolicy(TTkK.ClickFocus) + + def _resetSize(self): size = self.text().termWidth() + 2 if self._closable: size += 3 self.resize(size, self._barType.vSize()) self.setMinimumSize(size, self._barType.vSize()) self.setMaximumSize(size, self._barType.vSize()) - self.setFocusPolicy(TTkK.ClickFocus) + + def text(self) -> TTkString: + return self._text + + def setText(self, text:TTkString) -> None: + self._text = TTkString(text.replace('\n','')) + self._resetSize() + self.update() def data(self): return self._data