From ae13f0749c5912e00283f794a4e234e9627fb9d6 Mon Sep 17 00:00:00 2001 From: Eugenio Parodi Date: Sun, 2 Oct 2022 08:54:24 +0100 Subject: [PATCH] Added widget default sizes --- TermTk/TTkWidgets/button.py | 5 +++-- TermTk/TTkWidgets/label.py | 3 +++ TermTk/TTkWidgets/widget.py | 14 ++++++++++++++ demo/showcase/filepicker.py | 10 +++++----- tests/sandbox/sandbox.html | 4 ++-- tests/test.input.py | 23 +++++++++++++++-------- 6 files changed, 42 insertions(+), 17 deletions(-) diff --git a/TermTk/TTkWidgets/button.py b/TermTk/TTkWidgets/button.py index f19aea5f..6d8c8142 100644 --- a/TermTk/TTkWidgets/button.py +++ b/TermTk/TTkWidgets/button.py @@ -90,6 +90,9 @@ class TTkButton(TTkWidget): 'clicked', 'toggled' ) def __init__(self, *args, **kwargs): + self._text = TTkString(kwargs.get('text', "")) + self._border = kwargs.get('border', False ) + self.setDefaultSize(kwargs, 2 + len(self._text), 3 if self._border else 1 ) TTkWidget.__init__(self, *args, **kwargs) self._name = kwargs.get('name' , 'TTkButton' ) @@ -97,10 +100,8 @@ class TTkButton(TTkWidget): self.clicked = pyTTkSignal() self.toggled = pyTTkSignal(bool) - self._text = TTkString(kwargs.get('text', "")) self._checked = kwargs.get('checked', False ) self._checkable = kwargs.get('checkable', False ) - self._border = kwargs.get('border', False ) self._borderColor = kwargs.get('borderColor', TTkCfg.theme.buttonBorderColor ) self._textColor = kwargs.get('color', TTkCfg.theme.buttonTextColor ) self._borderColorClicked = TTkCfg.theme.buttonBorderColorClicked diff --git a/TermTk/TTkWidgets/label.py b/TermTk/TTkWidgets/label.py index b842e5e6..28eba8b4 100644 --- a/TermTk/TTkWidgets/label.py +++ b/TermTk/TTkWidgets/label.py @@ -32,6 +32,9 @@ class TTkLabel(TTkWidget, TColor, TText): def __init__(self, *args, **kwargs): TColor.__init__(self, *args, **kwargs) TText.__init__(self, *args, **kwargs) + + self.setDefaultSize(kwargs, len(self.text), 1) + TTkWidget.__init__(self, *args, **kwargs) self._name = kwargs.get('name' , 'TTkLabel' ) # self.setMinimumSize(len(self.text), 1) diff --git a/TermTk/TTkWidgets/widget.py b/TermTk/TTkWidgets/widget.py index df542160..47e9f54a 100644 --- a/TermTk/TTkWidgets/widget.py +++ b/TermTk/TTkWidgets/widget.py @@ -153,6 +153,12 @@ class TTkWidget(TMouseEvents,TKeyEvents, TDragEvents): def __del__(self): ''' .. caution:: Don't touch this! ''' # TTkLog.debug("DESTRUCTOR") + + # clean all the signals, slots + #for an in dir(self): + # att = self.__getattribute__(an) + # # TODO: TBD, I need to find the time to do this + if self._parent and self._parent.layout(): self._parent.layout().removeWidget(self) self._parent = None @@ -239,6 +245,14 @@ class TTkWidget(TMouseEvents,TKeyEvents, TDragEvents): ''' Event Callback triggered after a successful resize''' pass + def setDefaultSize(self, arg, width, height): + if ( 'size' in arg or + 'width' in arg or + 'height' in arg ): + return + arg['width'] = width + arg['height'] = height + def move(self, x: int, y: int): ''' Move the widget diff --git a/demo/showcase/filepicker.py b/demo/showcase/filepicker.py index 4e344466..e63c3fa4 100755 --- a/demo/showcase/filepicker.py +++ b/demo/showcase/filepicker.py @@ -32,11 +32,11 @@ def demoFilePicker(root=None): frame = ttk.TTkFrame(parent=root, border=False) # winFP = ttk.TTkWindow(parent=frame,pos = (0,0), size=(20,10), title="Test File Pickers", border=True) - btn1 = ttk.TTkButton( parent=frame, pos=(0,0), size=(8,3), border=True, text='File' ) - btn3 = ttk.TTkButton( parent=frame, pos=(8,0), size=(13,3), border=True, text='Directory' ) - btn2 = ttk.TTkButton( parent=frame, pos=(21,0), size=(17,3), border=True, text='Existing File', enabled=False ) - btn4 = ttk.TTkButton( parent=frame, pos=(38,0), size=(18,3), border=True, text='Existing Files', enabled=False ) - label = ttk.TTkLabel(parent=frame, pos=(1,5), size=(30,1), text="...") + btn1 = ttk.TTkButton( parent=frame, pos=(0,0), border=True, text='File' ) + btn3 = ttk.TTkButton( parent=frame, pos=(8,0), border=True, text='Directory' ) + btn2 = ttk.TTkButton( parent=frame, pos=(21,0), border=True, text='Existing File', enabled=False ) + btn4 = ttk.TTkButton( parent=frame, pos=(38,0), border=True, text='Existing Files', enabled=False ) + label = ttk.TTkLabel(parent=frame, pos=(1,5), text="...") def _showDialog(fm): diff --git a/tests/sandbox/sandbox.html b/tests/sandbox/sandbox.html index 24996c16..6127b799 100644 --- a/tests/sandbox/sandbox.html +++ b/tests/sandbox/sandbox.html @@ -15,8 +15,8 @@ --> - - + + diff --git a/tests/test.input.py b/tests/test.input.py index 9b864a4c..10e1d41b 100755 --- a/tests/test.input.py +++ b/tests/test.input.py @@ -45,8 +45,16 @@ TTkLog.info("Retrieve Keyboard, Mouse press/drag/wheel Events") TTkLog.info("Press q or to exit") TTkTerm.push(TTkTerm.Mouse.ON) +TTkTerm.push(TTkTerm.Mouse.DIRECT_ON) TTkTerm.setEcho(False) +def winCallback(width, height): + TTkLog.info(f"Resize: w:{width}, h:{height}") + +TTkTerm.registerResizeCb(winCallback) + +input = TTkInput() + def keyCallback(kevt=None, mevt=None): if mevt is not None: TTkLog.info(f"Mouse Event: {mevt}") @@ -56,15 +64,14 @@ def keyCallback(kevt=None, mevt=None): else: TTkLog.info(f"Key Event: Special '{kevt}'") if kevt.key == "q": + input.close() return False return True -def winCallback(width, height): - TTkLog.info(f"Resize: w:{width}, h:{height}") - -TTkTerm.registerResizeCb(winCallback) -input = TTkInput() -input.get_key(keyCallback) +input.inputEvent.connect(keyCallback) -TTkTerm.push(TTkTerm.Mouse.OFF + TTkTerm.Mouse.DIRECT_OFF) -TTkTerm.setEcho(True) +try: + input.start() +finally: + TTkTerm.push(TTkTerm.Mouse.OFF + TTkTerm.Mouse.DIRECT_OFF) + TTkTerm.setEcho(True)