Browse Source

Added widget default sizes

pull/59/head
Eugenio Parodi 4 years ago
parent
commit
ae13f0749c
  1. 5
      TermTk/TTkWidgets/button.py
  2. 3
      TermTk/TTkWidgets/label.py
  3. 14
      TermTk/TTkWidgets/widget.py
  4. 10
      demo/showcase/filepicker.py
  5. 4
      tests/sandbox/sandbox.html
  6. 23
      tests/test.input.py

5
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

3
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)

14
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

10
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):

4
tests/sandbox/sandbox.html

@ -15,8 +15,8 @@
<script src="https://ceccopierangiolieugenio.github.io/binaryRepo/pyTermTk/www/xterm-addon-fit/xterm-addon-fit.js"></script>
-->
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="http://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript" src="https://rawgit.com/vitmalina/w2ui/master/dist/w2ui.min.js"></script>

23
tests/test.input.py

@ -45,8 +45,16 @@ TTkLog.info("Retrieve Keyboard, Mouse press/drag/wheel Events")
TTkLog.info("Press q or <ESC> 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)

Loading…
Cancel
Save