diff --git a/TermTk/TTkTypes/treewidgetitem.py b/TermTk/TTkTypes/treewidgetitem.py index 18af1571..8df89b01 100644 --- a/TermTk/TTkTypes/treewidgetitem.py +++ b/TermTk/TTkTypes/treewidgetitem.py @@ -27,13 +27,13 @@ from TermTk.TTkCore.constant import TTkK from TermTk.TTkCore.log import TTkLog from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal -class TTkTreeWidgetItem(): +class TtkFancyTreeWidgetItem(): __slots__ = ('_parent', '_data', '_childs', '_expand', '_childIndicatorPolicy', # Signals 'refreshData') def __init__(self, *args, **kwargs): # Signals - self.refreshData = pyTTkSignal(TTkTreeWidgetItem) + self.refreshData = pyTTkSignal(TtkFancyTreeWidgetItem) self._data = args[0] self._childs = [] self._childIndicatorPolicy = kwargs.get('childIndicatorPolicy', TTkK.DontShowIndicatorWhenChildless) diff --git a/TermTk/TTkWidgets/Fancy/__init__.py b/TermTk/TTkWidgets/Fancy/__init__.py new file mode 100644 index 00000000..8674408d --- /dev/null +++ b/TermTk/TTkWidgets/Fancy/__init__.py @@ -0,0 +1,5 @@ +from .table import * +from .tableview import * +from .tree import * +from .treeview import * +from .treewidget import * diff --git a/TermTk/TTkWidgets/Fancy/table.py b/TermTk/TTkWidgets/Fancy/table.py new file mode 100644 index 00000000..6d36ef87 --- /dev/null +++ b/TermTk/TTkWidgets/Fancy/table.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 + +# MIT License +# +# Copyright (c) 2021 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 +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from TermTk.TTkCore.cfg import TTkCfg +from TermTk.TTkCore.constant import TTkK +from TermTk.TTkCore.log import TTkLog +from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal +from TermTk.TTkCore.color import TTkColor +from TermTk.TTkWidgets.Fancy.tableview import TtkFancyTableView +from TermTk.TTkLayouts.gridlayout import TTkGridLayout +from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea + +class TtkFancyTable(TTkAbstractScrollArea): + __slots__ = ( + '_tableView', 'activated', + # Forwarded Methods + 'setAlignment', 'setHeader', 'setColumnSize', 'setColumnColors', 'appendItem' ) + + + + + def __init__(self, *args, **kwargs): + TTkAbstractScrollArea.__init__(self, *args, **kwargs) + self._name = kwargs.get('name' , 'TtkFancyTable' ) + if 'parent' in kwargs: kwargs.pop('parent') + self._tableView = TtkFancyTableView(*args, **kwargs) + # Forward the signal + self.activated = self._tableView.activated + + self.setFocusPolicy(TTkK.ClickFocus) + self.setViewport(self._tableView) + # Forwarded Methods + self.setAlignment = self._tableView.setAlignment + self.setHeader = self._tableView.setHeader + self.setColumnSize = self._tableView.setColumnSize + self.setColumnColors = self._tableView.setColumnColors + self.appendItem = self._tableView.appendItem + + + + diff --git a/TermTk/TTkWidgets/tableview.py b/TermTk/TTkWidgets/Fancy/tableview.py similarity index 96% rename from TermTk/TTkWidgets/tableview.py rename to TermTk/TTkWidgets/Fancy/tableview.py index 63022be5..5a94bbc2 100644 --- a/TermTk/TTkWidgets/tableview.py +++ b/TermTk/TTkWidgets/Fancy/tableview.py @@ -31,11 +31,11 @@ from TermTk.TTkWidgets.widget import TTkWidget from TermTk.TTkLayouts.gridlayout import TTkGridLayout from TermTk.TTkAbstract.abstractscrollview import TTkAbstractScrollView -class _TTkTableViewHeader(TTkWidget): +class _TtkFancyTableViewHeader(TTkWidget): __slots__ = ('_header', '_alignments', '_headerColor', '_columns') def __init__(self, *args, **kwargs): TTkWidget.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , '_TTkTableViewHeader' ) + self._name = kwargs.get('name' , '_TtkFancyTableViewHeader' ) self._columns = kwargs.get('columns' , [-1] ) self._header = [""]*len(self._columns) self._alignments = [TTkK.NONE]*len(self._columns) @@ -80,7 +80,7 @@ class _TTkTableViewHeader(TTkWidget): self._canvas.drawTableLine(pos=(0,0), items=self._header, sizes=sizes, colors=colors, alignments=self._alignments) -class _TTkTableView(TTkAbstractScrollView): +class _TtkFancyTableView(TTkAbstractScrollView): __slots__ = ( '_alignments', '_headerColor', '_columns', '_columnColors', @@ -94,7 +94,7 @@ class _TTkTableView(TTkAbstractScrollView): self._tableDataWidget = [] self._shownWidgets = [] TTkAbstractScrollView.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , '_TTkTableView' ) + self._name = kwargs.get('name' , '_TtkFancyTableView' ) # define signals self.activated = pyTTkSignal(int) # Value self.doubleClicked = pyTTkSignal(int) # Value @@ -335,7 +335,7 @@ class _TTkTableView(TTkAbstractScrollView): colors = [c.modParam(val=-val) for c in self._columnColors] self._canvas.drawTableLine(pos=(0,y), items=item, sizes=sizes, colors=colors, alignments=self._alignments) -class TTkTableView(TTkAbstractScrollView): +class TtkFancyTableView(TTkAbstractScrollView): __slots__ = ( '_header', '_tableView', '_showHeader', 'activated', # Forwarded Methods @@ -344,12 +344,12 @@ class TTkTableView(TTkAbstractScrollView): def __init__(self, *args, **kwargs): super().__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkTableView' ) + self._name = kwargs.get('name' , 'TtkFancyTableView' ) if 'parent' in kwargs: kwargs.pop('parent') self._showHeader = kwargs.get('showHeader', True) self.setLayout(TTkGridLayout()) - self._tableView = _TTkTableView(*args, **kwargs) - self._header = _TTkTableViewHeader(*args, **kwargs) + self._tableView = _TtkFancyTableView(*args, **kwargs) + self._header = _TtkFancyTableViewHeader(*args, **kwargs) self.layout().addWidget(self._header,0,0) self.layout().addWidget(self._tableView,1,0) # Forward the tableSignals diff --git a/TermTk/TTkWidgets/Fancy/tree.py b/TermTk/TTkWidgets/Fancy/tree.py new file mode 100644 index 00000000..d4af583a --- /dev/null +++ b/TermTk/TTkWidgets/Fancy/tree.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 + +# MIT License +# +# Copyright (c) 2021 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 +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from TermTk.TTkCore.cfg import TTkCfg +from TermTk.TTkCore.constant import TTkK +from TermTk.TTkCore.log import TTkLog +from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal +from TermTk.TTkCore.color import TTkColor +from TermTk.TTkWidgets.Fancy.treewidget import TtkFancyTreeWidget +from TermTk.TTkLayouts.gridlayout import TTkGridLayout +from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea + +class TtkFancyTree(TTkAbstractScrollArea): + __slots__ = ( + '_treeView', 'activated', + # Forwarded Methods + 'setAlignment', 'setHeader', 'setHeaderLabels', 'setColumnSize', 'setColumnColors', 'appendItem', 'addTopLevelItem' ) + + def __init__(self, *args, **kwargs): + TTkAbstractScrollArea.__init__(self, *args, **kwargs) + self._name = kwargs.get('name' , 'TtkFancyTree' ) + if 'parent' in kwargs: kwargs.pop('parent') + self._treeView = TtkFancyTreeWidget(*args, **kwargs) + # Forward the signal + self.activated = self._treeView.activated + + self.setFocusPolicy(TTkK.ClickFocus) + self.setViewport(self._treeView) + + # Forwarded Methods + self.setAlignment = self._treeView.setAlignment + self.setHeader = self._treeView.setHeader + self.setHeaderLabels = self._treeView.setHeaderLabels + self.setColumnSize = self._treeView.setColumnSize + self.setColumnColors = self._treeView.setColumnColors + self.appendItem = self._treeView.appendItem + self.addTopLevelItem = self._treeView.addTopLevelItem + + + diff --git a/TermTk/TTkWidgets/Fancy/treeview.py b/TermTk/TTkWidgets/Fancy/treeview.py new file mode 100644 index 00000000..d4757df8 --- /dev/null +++ b/TermTk/TTkWidgets/Fancy/treeview.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 + +# MIT License +# +# Copyright (c) 2021 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 +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from TermTk.TTkCore.cfg import TTkCfg +from TermTk.TTkCore.constant import TTkK +from TermTk.TTkCore.log import TTkLog +from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal +from TermTk.TTkCore.color import TTkColor +from TermTk.TTkWidgets.Fancy.tableview import TtkFancyTableView + +class TtkFancyTreeView(TtkFancyTableView): + __slots__ = ( '_header', '_treeView', '_showHeader', 'activated') + + def __init__(self, *args, **kwargs): + super().__init__(self, *args, **kwargs) + self._name = kwargs.get('name' , 'TtkFancyTreeView' ) + # if 'parent' in kwargs: kwargs.pop('parent') + diff --git a/TermTk/TTkWidgets/treewidget.py b/TermTk/TTkWidgets/Fancy/treewidget.py similarity index 88% rename from TermTk/TTkWidgets/treewidget.py rename to TermTk/TTkWidgets/Fancy/treewidget.py index c2529cfb..68468eeb 100644 --- a/TermTk/TTkWidgets/treewidget.py +++ b/TermTk/TTkWidgets/Fancy/treewidget.py @@ -29,9 +29,9 @@ from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal from TermTk.TTkCore.color import TTkColor from TermTk.TTkWidgets.widget import TTkWidget from TermTk.TTkWidgets.checkbox import TTkCheckbox -from TermTk.TTkWidgets.tableview import TTkTableView +from TermTk.TTkWidgets.Fancy.tableview import TtkFancyTableView from TermTk.TTkLayouts.gridlayout import TTkGridLayout -from TermTk.TTkTypes.treewidgetitem import TTkTreeWidgetItem +from TermTk.TTkTypes.treewidgetitem import TtkFancyTreeWidgetItem class _TTkDisplayedTreeItemControl(TTkCheckbox): def __init__(self, *args, **kwargs): @@ -51,7 +51,7 @@ class _TTkDisplayedTreeItem(TTkWidget): def __init__(self, *args, **kwargs): super().__init__(self, *args, **kwargs) #Signals - self._clicked = pyTTkSignal(bool, _TTkDisplayedTreeItem, TTkTreeWidgetItem) + self._clicked = pyTTkSignal(bool, _TTkDisplayedTreeItem, TtkFancyTreeWidgetItem) self._name = kwargs.get('name' , '_TTkDisplayedTreeItem' ) self._depth = kwargs.get('depth' , 0 ) @@ -77,13 +77,13 @@ class _TTkDisplayedTreeItem(TTkWidget): self._canvas.drawText(pos=(self._depth+2, 0), text=self._text) -class TTkTreeWidget(TTkTableView): +class TtkFancyTreeWidget(TtkFancyTableView): __slots__ = ( '_topLevelItems') def __init__(self, *args, **kwargs): super().__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkTreeView' ) - self._topLevelItems = TTkTreeWidgetItem(None) + self._name = kwargs.get('name' , 'TtkFancyTreeView' ) + self._topLevelItems = TtkFancyTreeWidgetItem(None) self.doubleClicked.connect(self._doubleClickItem) # if 'parent' in kwargs: kwargs.pop('parent') @@ -120,23 +120,23 @@ class TTkTreeWidget(TTkTableView): def _doubleClickItem(self, index): if not (item := self.itemAt(index)): return if item[0]._isLeaf: return - if not item[0]._treeWidgetItem.expand(): # we need to expand the TtkTreeWidgetItem + if not item[0]._treeWidgetItem.expand(): # we need to expand the TtkFancyTreeWidgetItem self._expand(item=item[0]._treeWidgetItem, depth=item[0]._depth+1) - else: # we need to shrink the TtkTreeWidgetItem + else: # we need to shrink the TtkFancyTreeWidgetItem self._shrink(item=item[0]._treeWidgetItem) - @pyTTkSlot(bool, _TTkDisplayedTreeItem, TTkTreeWidgetItem) + @pyTTkSlot(bool, _TTkDisplayedTreeItem, TtkFancyTreeWidgetItem) def _controlClicked(self, status, widget, item): TTkLog.debug(f"{status} {widget._name}") - if status: # we need to expand the TtkTreeWidgetItem + if status: # we need to expand the TtkFancyTreeWidgetItem self._expand(item=item, depth=(widget._depth+1)) - else: # we need to shrink the TtkTreeWidgetItem + else: # we need to shrink the TtkFancyTreeWidgetItem self._shrink(item=item) def _addTreeWidgetItem(self, item, depth=0, index=-1): - if not isinstance(item, TTkTreeWidgetItem): - raise TypeError("TTkTreeWidgetItem is required in TTkTreeWidget.addTopLevelItem(item)") + if not isinstance(item, TtkFancyTreeWidgetItem): + raise TypeError("TtkFancyTreeWidgetItem is required in TtkFancyTreeWidget.addTopLevelItem(item)") if item.parent() is None: self._topLevelItems.addChild(item) displayedItems = item.data().copy() diff --git a/TermTk/TTkWidgets/TTkPickers/__init__.py b/TermTk/TTkWidgets/TTkPickers/__init__.py index d06eed9f..4fad8737 100644 --- a/TermTk/TTkWidgets/TTkPickers/__init__.py +++ b/TermTk/TTkWidgets/TTkPickers/__init__.py @@ -1 +1,2 @@ -from .colorpicker import * \ No newline at end of file +from .colorpicker import * +from .filepicker import * \ No newline at end of file diff --git a/TermTk/TTkWidgets/TTkPickers/filepicker.py b/TermTk/TTkWidgets/TTkPickers/filepicker.py new file mode 100644 index 00000000..3a926d00 --- /dev/null +++ b/TermTk/TTkWidgets/TTkPickers/filepicker.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +# MIT License +# +# Copyright (c) 2021 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 +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from os import walk + +from TermTk.TTkWidgets.window import TTkWindow +from TermTk.TTkTypes.treewidgetitem import TtkFancyTreeWidgetItem + +class _FileWidgetItem(TtkFancyTreeWidgetItem): + def __init__(self, *args, **kwargs): + TtkFancyTreeWidgetItem.__init__(self, *args, **kwargs) + +class TTkFileDialogPicker(TTkWindow): + def __init__(self, *args, **kwargs): + TTkWindow.__init__(self, *args, **kwargs) + self._name = kwargs.get('name' , 'TTkFileDialogPicker' ) + +''' +for (dirpath, dirnames, filenames) in walk('/tmp'): + print(f"{dirpath} {dirnames} {filenames}") + break +''' \ No newline at end of file diff --git a/TermTk/TTkWidgets/__init__.py b/TermTk/TTkWidgets/__init__.py index 473fc6a1..ba51473f 100644 --- a/TermTk/TTkWidgets/__init__.py +++ b/TermTk/TTkWidgets/__init__.py @@ -16,14 +16,10 @@ from .window import * from .tabwidget import * from .list_ import * from .listwidget import * -from .table import * -from .tableview import * -from .tree import * -from .treeview import * -from .treewidget import * from .graph import * from .menubar import * from .TTkPickers import * from .spinbox import * from .image import TTkImage from .about import TTkAbout +from .Fancy import * diff --git a/TermTk/TTkWidgets/table.py b/TermTk/TTkWidgets/table.py index 713fad50..6d36ef87 100644 --- a/TermTk/TTkWidgets/table.py +++ b/TermTk/TTkWidgets/table.py @@ -27,11 +27,11 @@ from TermTk.TTkCore.constant import TTkK from TermTk.TTkCore.log import TTkLog from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal from TermTk.TTkCore.color import TTkColor -from TermTk.TTkWidgets.tableview import TTkTableView +from TermTk.TTkWidgets.Fancy.tableview import TtkFancyTableView from TermTk.TTkLayouts.gridlayout import TTkGridLayout from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea -class TTkTable(TTkAbstractScrollArea): +class TtkFancyTable(TTkAbstractScrollArea): __slots__ = ( '_tableView', 'activated', # Forwarded Methods @@ -42,9 +42,9 @@ class TTkTable(TTkAbstractScrollArea): def __init__(self, *args, **kwargs): TTkAbstractScrollArea.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkTable' ) + self._name = kwargs.get('name' , 'TtkFancyTable' ) if 'parent' in kwargs: kwargs.pop('parent') - self._tableView = TTkTableView(*args, **kwargs) + self._tableView = TtkFancyTableView(*args, **kwargs) # Forward the signal self.activated = self._tableView.activated diff --git a/TermTk/TTkWidgets/tree.py b/TermTk/TTkWidgets/tree.py index f427b37c..d4af583a 100644 --- a/TermTk/TTkWidgets/tree.py +++ b/TermTk/TTkWidgets/tree.py @@ -27,11 +27,11 @@ from TermTk.TTkCore.constant import TTkK from TermTk.TTkCore.log import TTkLog from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal from TermTk.TTkCore.color import TTkColor -from TermTk.TTkWidgets.treewidget import TTkTreeWidget +from TermTk.TTkWidgets.Fancy.treewidget import TtkFancyTreeWidget from TermTk.TTkLayouts.gridlayout import TTkGridLayout from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea -class TTkTree(TTkAbstractScrollArea): +class TtkFancyTree(TTkAbstractScrollArea): __slots__ = ( '_treeView', 'activated', # Forwarded Methods @@ -39,9 +39,9 @@ class TTkTree(TTkAbstractScrollArea): def __init__(self, *args, **kwargs): TTkAbstractScrollArea.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkTree' ) + self._name = kwargs.get('name' , 'TtkFancyTree' ) if 'parent' in kwargs: kwargs.pop('parent') - self._treeView = TTkTreeWidget(*args, **kwargs) + self._treeView = TtkFancyTreeWidget(*args, **kwargs) # Forward the signal self.activated = self._treeView.activated diff --git a/TermTk/TTkWidgets/treeview.py b/TermTk/TTkWidgets/treeview.py index fc08dd5b..d4757df8 100644 --- a/TermTk/TTkWidgets/treeview.py +++ b/TermTk/TTkWidgets/treeview.py @@ -27,13 +27,13 @@ from TermTk.TTkCore.constant import TTkK from TermTk.TTkCore.log import TTkLog from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal from TermTk.TTkCore.color import TTkColor -from TermTk.TTkWidgets.tableview import TTkTableView +from TermTk.TTkWidgets.Fancy.tableview import TtkFancyTableView -class TTkTreeView(TTkTableView): +class TtkFancyTreeView(TtkFancyTableView): __slots__ = ( '_header', '_treeView', '_showHeader', 'activated') def __init__(self, *args, **kwargs): super().__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkTreeView' ) + self._name = kwargs.get('name' , 'TtkFancyTreeView' ) # if 'parent' in kwargs: kwargs.pop('parent') diff --git a/demo/gittk.py b/demo/gittk.py index 4ed584f2..cb255f89 100755 --- a/demo/gittk.py +++ b/demo/gittk.py @@ -59,7 +59,7 @@ else: gittk = ttk.TTkWindow(parent=root,pos = (1,1), size=(100,40), title="gittk", border=True, layout=ttk.TTkGridLayout()) gittkVsplitter = ttk.TTkSplitter(parent=gittk, orientation=ttk.TTkK.VERTICAL) -tableCommit = ttk.TTkTable(parent=gittkVsplitter, selectColor=ttk.TTkColor.bg('#882200')) +tableCommit = ttk.TtkFancyTable(parent=gittkVsplitter, selectColor=ttk.TTkColor.bg('#882200')) gittkHsplitter = ttk.TTkSplitter(parent=gittkVsplitter, orientation=ttk.TTkK.HORIZONTAL) diffText = ttk.TTkTextEdit(parent=gittkHsplitter) gittkHsplitter.addWidget(ttk.TTkTestWidgetSizes(border=True, title="Details"),20) diff --git a/demo/showcase/table.py b/demo/showcase/table.py index 91585c04..50c239cf 100755 --- a/demo/showcase/table.py +++ b/demo/showcase/table.py @@ -42,7 +42,7 @@ def demoTable(root=None): btn1 = ttk.TTkButton(parent=top, maxHeight=3, border=True, text='Add') btn2 = ttk.TTkButton(parent=top, maxHeight=3, border=True, text='Add Many') - table1 = ttk.TTkTable(parent=frame, selectColor=ttk.TTkColor.bg('#882200')) + table1 = ttk.TtkFancyTable(parent=frame, selectColor=ttk.TTkColor.bg('#882200')) table1.setColumnSize((5,10,-1,10,20)) table1.setAlignment(( diff --git a/demo/showcase/tree.py b/demo/showcase/tree.py index afd98bdb..43291bb4 100755 --- a/demo/showcase/tree.py +++ b/demo/showcase/tree.py @@ -40,49 +40,49 @@ def getSentence(a,b): return " ".join([getWord() for i in range(0,random.randint(a,b))]) def demoTree(root=None): - # tw = ttk.TTkTreeWidget(parent=rootTree1) - tw = ttk.TTkTree(parent=root) + # tw = ttk.TtkFancyTreeWidget(parent=rootTree1) + tw = ttk.TtkFancyTree(parent=root) tw.setHeaderLabels(["Column 1", "Column 2", "Column 3"]) - tw.setColumnSize((20,20,-1)) + tw.setColumnSize((-1,20,20)) tw.setColumnColors(( ttk.TTkColor.RST, ttk.TTkColor.fg('#00dddd', modifier=ttk.TTkColorGradient(increment=-4)), ttk.TTkColor.fg('#cccc00', modifier=ttk.TTkColorGradient(increment=-2)) )) - l1 = ttk.TTkTreeWidgetItem(["String A", "String B", "String C"]) - l2 = ttk.TTkTreeWidgetItem(["String AA", "String BB", "String CC"]) - l3 = ttk.TTkTreeWidgetItem(["String AAA", "String BBB", "String CCC"]) - l4 = ttk.TTkTreeWidgetItem(["String AAAA", "String BBBB", "String CCCC"]) - l5 = ttk.TTkTreeWidgetItem(["String AAAAA", "String BBBBB", "String CCCCC"]) + l1 = ttk.TtkFancyTreeWidgetItem(["String A", "String B", "String C"]) + l2 = ttk.TtkFancyTreeWidgetItem(["String AA", "String BB", "String CC"]) + l3 = ttk.TtkFancyTreeWidgetItem(["String AAA", "String BBB", "String CCC"]) + l4 = ttk.TtkFancyTreeWidgetItem(["String AAAA", "String BBBB", "String CCCC"]) + l5 = ttk.TtkFancyTreeWidgetItem(["String AAAAA", "String BBBBB", "String CCCCC"]) l2.addChild(l5) for i in range(3): - l1_child = ttk.TTkTreeWidgetItem(["Child A" + str(i), "Child B" + str(i), "Child C" + str(i)]) + l1_child = ttk.TtkFancyTreeWidgetItem(["Child A" + str(i), "Child B" + str(i), "Child C" + str(i)]) l1.addChild(l1_child) for j in range(2): - l2_child = ttk.TTkTreeWidgetItem(["Child AA" + str(j), "Child BB" + str(j), "Child CC" + str(j)]) + l2_child = ttk.TtkFancyTreeWidgetItem(["Child AA" + str(j), "Child BB" + str(j), "Child CC" + str(j)]) l2.addChild(l2_child) for j in range(2): - l3_child = ttk.TTkTreeWidgetItem(["Child AAA" + str(j), "Child BBB" + str(j), "Child CCC" + str(j)]) + l3_child = ttk.TtkFancyTreeWidgetItem(["Child AAA" + str(j), "Child BBB" + str(j), "Child CCC" + str(j)]) l3.addChild(l3_child) for j in range(2): - l4_child = ttk.TTkTreeWidgetItem(["Child AAAA" + str(j), "Child BBBB" + str(j), "Child CCCC" + str(j)]) + l4_child = ttk.TtkFancyTreeWidgetItem(["Child AAAA" + str(j), "Child BBBB" + str(j), "Child CCCC" + str(j)]) l4.addChild(l4_child) for j in range(2): - l5_child = ttk.TTkTreeWidgetItem(["Child AAAAA" + str(j), "Child BBBBB" + str(j), "Child CCCCC" + str(j)]) + l5_child = ttk.TtkFancyTreeWidgetItem(["Child AAAAA" + str(j), "Child BBBBB" + str(j), "Child CCCCC" + str(j)]) l5.addChild(l5_child) - l6 = ttk.TTkTreeWidgetItem(["RND", "RND", "RND"], childIndicatorPolicy=ttk.TTkK.ShowIndicator) + l6 = ttk.TtkFancyTreeWidgetItem(["RND", "RND", "RND"], childIndicatorPolicy=ttk.TTkK.ShowIndicator) def updateChilds(item): if item.childs(): return for _ in range(0,random.randint(3,8)): - child = ttk.TTkTreeWidgetItem([getWord(),getWord(),getWord()]) + child = ttk.TtkFancyTreeWidgetItem([getWord(),getWord(),getWord()]) if random.randint(0,10)>5: child.setChildIndicatorPolicy(ttk.TTkK.ShowIndicator) child.refreshData.connect(updateChilds) diff --git a/tests/test.ui.008.table.py b/tests/test.ui.008.table.py index 1677d550..606a14b8 100755 --- a/tests/test.ui.008.table.py +++ b/tests/test.ui.008.table.py @@ -42,13 +42,13 @@ btn1 = ttk.TTkButton(parent=root, pos=(0,0), size=(5,3), border=True, text='Add' btn2 = ttk.TTkButton(parent=root, pos=(5,0), size=(10,3), border=True, text='Add Many') win_table1 = ttk.TTkWindow(parent=root,pos = (3,3), size=(150,40), title="Test Table 1", layout=ttk.TTkHBoxLayout(), border=True) -table1 = ttk.TTkTable(parent=win_table1, selectColor=ttk.TTkColor.bg('#882200')) +table1 = ttk.TtkFancyTable(parent=win_table1, selectColor=ttk.TTkColor.bg('#882200')) win_table2 = ttk.TTkWindow(parent=root,pos = (15,5), size=(100,30), title="Test Table 2 Default", layout=ttk.TTkHBoxLayout(), border=True) -table2 = ttk.TTkTable(parent=win_table2) +table2 = ttk.TtkFancyTable(parent=win_table2) win_table3 = ttk.TTkWindow(parent=root,pos = (15,5), size=(130,40), title="Test Table 2 Default", layout=ttk.TTkHBoxLayout(), border=True) -table3 = ttk.TTkTable(parent=win_table3, showHeader=False) +table3 = ttk.TtkFancyTable(parent=win_table3, showHeader=False) table1.setColumnSize((5,10,-1,10,20)) table1.setAlignment(( diff --git a/tests/test.ui.011.tree.py b/tests/test.ui.011.tree.py index 96b5ce0e..730dda70 100755 --- a/tests/test.ui.011.tree.py +++ b/tests/test.ui.011.tree.py @@ -42,8 +42,8 @@ if fullscreen: else: rootTree1 = ttk.TTkWindow(parent=root,pos = (0,0), size=(150,50), title="Test Tree 1", layout=ttk.TTkGridLayout(), border=True) -# tw = ttk.TTkTreeWidget(parent=rootTree1) -tw = ttk.TTkTree(parent=rootTree1) +# tw = ttk.TtkFancyTreeWidget(parent=rootTree1) +tw = ttk.TtkFancyTree(parent=rootTree1) tw.setHeaderLabels(["Column 1", "Column 2", "Column 3"]) tw.setColumnSize((20,20,-1)) tw.setColumnColors(( @@ -51,32 +51,32 @@ tw.setColumnColors(( ttk.TTkColor.fg('#00dddd', modifier=ttk.TTkColorGradient(increment=-4)), ttk.TTkColor.fg('#cccc00', modifier=ttk.TTkColorGradient(increment=-2)) )) -l1 = ttk.TTkTreeWidgetItem(["String A", "String B", "String C"]) -l2 = ttk.TTkTreeWidgetItem(["String AA", "String BB", "String CC"]) -l3 = ttk.TTkTreeWidgetItem(["String AAA", "String BBB", "String CCC"]) -l4 = ttk.TTkTreeWidgetItem(["String AAAA", "String BBBB", "String CCCC"]) -l5 = ttk.TTkTreeWidgetItem(["String AAAAA", "String BBBBB", "String CCCCC"]) +l1 = ttk.TtkFancyTreeWidgetItem(["String A", "String B", "String C"]) +l2 = ttk.TtkFancyTreeWidgetItem(["String AA", "String BB", "String CC"]) +l3 = ttk.TtkFancyTreeWidgetItem(["String AAA", "String BBB", "String CCC"]) +l4 = ttk.TtkFancyTreeWidgetItem(["String AAAA", "String BBBB", "String CCCC"]) +l5 = ttk.TtkFancyTreeWidgetItem(["String AAAAA", "String BBBBB", "String CCCCC"]) l2.addChild(l5) for i in range(3): - l1_child = ttk.TTkTreeWidgetItem(["Child A" + str(i), "Child B" + str(i), "Child C" + str(i)]) + l1_child = ttk.TtkFancyTreeWidgetItem(["Child A" + str(i), "Child B" + str(i), "Child C" + str(i)]) l1.addChild(l1_child) for j in range(2): - l2_child = ttk.TTkTreeWidgetItem(["Child AA" + str(j), "Child BB" + str(j), "Child CC" + str(j)]) + l2_child = ttk.TtkFancyTreeWidgetItem(["Child AA" + str(j), "Child BB" + str(j), "Child CC" + str(j)]) l2.addChild(l2_child) for j in range(2): - l3_child = ttk.TTkTreeWidgetItem(["Child AAA" + str(j), "Child BBB" + str(j), "Child CCC" + str(j)]) + l3_child = ttk.TtkFancyTreeWidgetItem(["Child AAA" + str(j), "Child BBB" + str(j), "Child CCC" + str(j)]) l3.addChild(l3_child) for j in range(2): - l4_child = ttk.TTkTreeWidgetItem(["Child AAAA" + str(j), "Child BBBB" + str(j), "Child CCCC" + str(j)]) + l4_child = ttk.TtkFancyTreeWidgetItem(["Child AAAA" + str(j), "Child BBBB" + str(j), "Child CCCC" + str(j)]) l4.addChild(l4_child) for j in range(2): - l5_child = ttk.TTkTreeWidgetItem(["Child AAAAA" + str(j), "Child BBBBB" + str(j), "Child CCCCC" + str(j)]) + l5_child = ttk.TtkFancyTreeWidgetItem(["Child AAAAA" + str(j), "Child BBBBB" + str(j), "Child CCCCC" + str(j)]) l5.addChild(l5_child)