diff --git a/TermTk/TTkCore/ttk.py b/TermTk/TTkCore/ttk.py index faea2a6e..4d28d8fc 100644 --- a/TermTk/TTkCore/ttk.py +++ b/TermTk/TTkCore/ttk.py @@ -289,4 +289,4 @@ class TTk(TTkWidget): self.quit() def isVisibleAndParent(self): - return self.isVisible() \ No newline at end of file + return self.isVisible() diff --git a/TermTk/TTkTestWidgets/domtreeview.py b/TermTk/TTkTestWidgets/domtreeview.py index f1612930..e2379a42 100644 --- a/TermTk/TTkTestWidgets/domtreeview.py +++ b/TermTk/TTkTestWidgets/domtreeview.py @@ -264,20 +264,26 @@ class TTkDomTreeView(TTkWidget): _f(_w,_val) return _ret getval = prop['get']['cb'](domw) - if prop['get']['type'] == 'multiflags' and 'set' in prop: + if prop['get']['type'] == 'multiflags': flags = prop['get']['flags'] value = TTkFrame(layout=TTkVBoxLayout(), height=len(flags), border=False) for fl in flags: - value.layout().addWidget(fcb := TTkCheckbox(text=f" {fl}", checked=bool(prop['get']['cb'](domw)&flags[fl]))) - fcb.stateChanged.connect(_boundFlags( - prop['set']['cb'], prop['get']['cb'], - domw, lambda v: v==TTkK.Checked, flags[fl])) - elif prop['get']['type'] == 'singleflag' and 'set' in prop: + if 'set' in prop: + value.layout().addWidget(fcb := TTkCheckbox(text=f" {fl}", checked=bool(prop['get']['cb'](domw)&flags[fl]))) + fcb.stateChanged.connect(_boundFlags( + prop['set']['cb'], prop['get']['cb'], + domw, lambda v: v==TTkK.Checked, flags[fl])) + else: + value.layout().addWidget(fcb := TTkCheckbox(text=f" {fl}", checked=bool(prop['get']['cb'](domw)&flags[fl]), enabled=False)) + elif prop['get']['type'] == 'singleflag': flags = prop['get']['flags'] items = [(k,v) for k,v in flags.items()] - value = TTkComboBox(list=[n for n,_ in items], height=1, textAlign=TTkK.LEFT_ALIGN) - value.setCurrentIndex([cs for _,cs in items].index(getval)) - value.currentTextChanged.connect(_bound(prop['set']['cb'],domw, lambda v:flags[v])) + if 'set' in prop: + value = TTkComboBox(list=[n for n,_ in items], height=1, textAlign=TTkK.LEFT_ALIGN) + value.setCurrentIndex([cs for _,cs in items].index(getval)) + value.currentTextChanged.connect(_bound(prop['set']['cb'],domw, lambda v:flags[v])) + else: + value = TTkLabel(text=items[[cs for _,cs in items].index(getval)][0]) elif prop['get']['type'] == bool and 'set' in prop: # value = TTkComboBox(list=['True','False']) # value.setCurrentIndex(0 if getval else 1) diff --git a/TermTk/TTkWidgets/lineedit.py b/TermTk/TTkWidgets/lineedit.py index ad93c0aa..1f71b170 100644 --- a/TermTk/TTkWidgets/lineedit.py +++ b/TermTk/TTkWidgets/lineedit.py @@ -77,6 +77,10 @@ class TTkLineEdit(TTkWidget): '''text''' return self._text + def inputType(self): + '''inputType''' + return self._inputType + def _pushCursor(self): w = self.width() @@ -247,3 +251,21 @@ class TTkLineEdit(TTkWidget): self._selectionTo = 0 TTkHelper.hideCursor() self.update() + + _ttkProperties = { + 'Input Type' : { + 'init': {'name':'inputType', 'type':'multiflags', + 'flags': { + 'Text' : TTkK.Input_Text , + 'Number' : TTkK.Input_Number , + 'Password': TTkK.Input_Password } }, + 'get': {'cb':inputType, 'type':'multiflags', + 'flags': { + 'Text' : TTkK.Input_Text , + 'Number' : TTkK.Input_Number , + 'Password': TTkK.Input_Password } } }, + 'Text' : { + 'init': {'name':'text', 'type':TTkString } , + 'get': {'cb':text, 'type':TTkString } , + 'set': {'cb':setText, 'type':TTkString } } + } \ No newline at end of file diff --git a/TermTk/TTkWidgets/splitter.py b/TermTk/TTkWidgets/splitter.py index 72fabee3..9f8b51e4 100644 --- a/TermTk/TTkWidgets/splitter.py +++ b/TermTk/TTkWidgets/splitter.py @@ -382,3 +382,17 @@ class TTkSplitter(TTkFrame): if ret > item.maximumWidth(): ret = item.maximumWidth() return ret + + _ttkProperties = { + 'Border' : { + 'init': {'name':'border', 'type':bool } }, + 'Orientation' : { + 'init': {'name':'orientation', 'type':'singleflag', + 'flags': { + 'Horizontal' : TTkK.HORIZONTAL , + 'Vertical' : TTkK.VERTICAL } } , + 'get': {'cb':orientation, 'type':'singleflag', + 'flags': { + 'Horizontal' : TTkK.HORIZONTAL , + 'Vertical' : TTkK.VERTICAL } } } + } diff --git a/tests/test.ui.024.canvas.boundaries.py b/tests/test.ui.024.canvas.boundaries.py index ab9d0105..f1b8c431 100755 --- a/tests/test.ui.024.canvas.boundaries.py +++ b/tests/test.ui.024.canvas.boundaries.py @@ -2,7 +2,7 @@ # MIT License # -# Copyright (c) 2022 Luchr +# Copyright (c) 2023 Eugenio Parodi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal