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)