diff --git a/TermTk/TTkCore/constant.py b/TermTk/TTkCore/constant.py index f2475652..3a82b6d0 100644 --- a/TermTk/TTkCore/constant.py +++ b/TermTk/TTkCore/constant.py @@ -104,13 +104,22 @@ class TTkConstant: Checked = CheckState.Checked class InsertPolicy(int): - NoInsert = 0x00 # The string will not be inserted into the combobox. - InsertAtTop = 0x01 # The string will be inserted as the first item in the combobox. - # InsertAtCurrent = 0x02 # The current item will be replaced by the string. - InsertAtBottom = 0x03 # The string will be inserted after the last item in the combobox. - # InsertAfterCurrent = 0x04 # The string is inserted after the current item in the combobox. - # InsertBeforeCurrent = 0x05 # The string is inserted before the current item in the combobox. - # InsertAlphabetically = 0x06 # The string is inserted in the alphabetic order in the combobox. + '''Specifies what the :class:`~TermTk.TTkWidgets.combobox.TTkComboBox` should do when a new string is entered by the user. + ''' + NoInsert = 0x00 + '''The string will not be inserted into the combobox.''' + InsertAtTop = 0x01 + '''The string will be inserted as the first item in the combobox.''' + # InsertAtCurrent = 0x02 + # '''The current item will be replaced by the string.''' + InsertAtBottom = 0x03 + '''The string will be inserted after the last item in the combobox.''' + # InsertAfterCurrent = 0x04 + # '''The string is inserted after the current item in the combobox.''' + # InsertBeforeCurrent = 0x05 + # '''The string is inserted before the current item in the combobox.''' + # InsertAlphabetically = 0x06 + # '''The string is inserted in the alphabetic order in the combobox.''' class ChildIndicatorPolicy(int): ShowIndicator = 0x00 #The controls for expanding and collapsing will be shown for this item even if there are no children. @@ -232,7 +241,7 @@ class TTkConstant: # Alignment class Alignment(int): - ''' This class type is used to describe alignment. + ''' This type is used to describe alignment. .. autosummary:: NONE diff --git a/TermTk/TTkCore/ttk.py b/TermTk/TTkCore/ttk.py index 15d24729..faea2a6e 100644 --- a/TermTk/TTkCore/ttk.py +++ b/TermTk/TTkCore/ttk.py @@ -48,7 +48,7 @@ class TTk(TTkWidget): __slots__ = ('_cursor','_color') def __init__(self, input): super().__init__() - self._name = 'mouseCursor' + self._name = 'MouseCursor' self._cursor = '✠' self._color = TTkColor.RST self.resize(1,1) @@ -85,8 +85,7 @@ class TTk(TTkWidget): '_lastMultiTap') def __init__(self, *args, **kwargs): - TTkWidget.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTk' ) + super().__init__(*args, **kwargs) self._input = TTkInput() self._input.inputEvent.connect(self._processInput) self._title = kwargs.get('title','TermTk') diff --git a/TermTk/TTkTestWidgets/domtreeview.py b/TermTk/TTkTestWidgets/domtreeview.py index 15646bc2..f1612930 100644 --- a/TermTk/TTkTestWidgets/domtreeview.py +++ b/TermTk/TTkTestWidgets/domtreeview.py @@ -180,8 +180,7 @@ class TTkDomTreeView(TTkWidget): lox, loy = layout.offset() lx,ly,lw,lh = lx+lox, ly+loy, lw-lox, lh-loy # opt of bounds - if x=lx+lw or y=lh+ly: - return False + if x=lx+lw or y=lh+ly: return None x-=lx y-=ly for item in reversed(layout.zSortedItems): @@ -199,7 +198,7 @@ class TTkDomTreeView(TTkWidget): elif item.layoutItemType == TTkK.LayoutItem: levt = evt.clone(pos=(x, y)) - if (wid:=TTkDomTreeView._findWidget(levt, item)) is not None: + if (wid:=TTkDomTreeView._findWidget(levt, item)): return wid return layout.parentWidget() @@ -207,6 +206,8 @@ class TTkDomTreeView(TTkWidget): def _processInput(self, kevt, mevt): TTkLog.debug(f"{kevt} {mevt}") if mevt.evt == TTkK.Press: + # TTkHelper._rootWidget.setEnabled(True) + # TTkHelper._rootWidget._input.inputEvent.connect(TTkHelper._rootWidget._processInput) TTkHelper._rootWidget._input.inputEvent.disconnect(self._processInput) widget = TTkDomTreeView._findWidget(mevt,TTkHelper._rootWidget.rootLayout()) TTkLog.debug(f"{widget=}") @@ -219,6 +220,8 @@ class TTkDomTreeView(TTkWidget): @pyTTkSlot() def _btnPickCb(self): + # TTkHelper._rootWidget.setEnabled(True) + # TTkHelper._rootWidget._input.inputEvent.disconnect(TTkHelper._rootWidget._processInput) TTkHelper._rootWidget._input.inputEvent.connect(self._processInput) @pyTTkSlot() @@ -272,7 +275,7 @@ class TTkDomTreeView(TTkWidget): elif prop['get']['type'] == 'singleflag' and 'set' in prop: flags = prop['get']['flags'] items = [(k,v) for k,v in flags.items()] - value = TTkComboBox(list=[n for n,_ in items], height=1) + 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])) elif prop['get']['type'] == bool and 'set' in prop: @@ -320,9 +323,10 @@ class TTkDomTreeView(TTkWidget): for c in widget.rootLayout().children(): if c == widget.layout(): continue - top.addChild(tc:=_TTkDomTreeWidgetItem(["layout (Other)", c.__class__.__name__, ""])) - for cc in c.children(): - tc.addChild(TTkDomTreeView._getDomTreeItem(cc,widSelected)) + if c.layoutItemType == TTkK.LayoutItem: + top.addChild(tc:=_TTkDomTreeWidgetItem(["layout (Other)", c.__class__.__name__, ""])) + for cc in c.children(): + tc.addChild(TTkDomTreeView._getDomTreeItem(cc,widSelected)) return top if layoutItem.layoutItemType == TTkK.LayoutItem: diff --git a/TermTk/TTkWidgets/checkbox.py b/TermTk/TTkWidgets/checkbox.py index 05b26958..18231e54 100644 --- a/TermTk/TTkWidgets/checkbox.py +++ b/TermTk/TTkWidgets/checkbox.py @@ -84,7 +84,6 @@ class TTkCheckbox(TTkWidget): ) def __init__(self, *args, **kwargs): TTkWidget.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkCheckbox' ) # Define Signals self.stateChanged = pyTTkSignal(TTkK.CheckState) self.clicked = pyTTkSignal(bool) diff --git a/TermTk/TTkWidgets/combobox.py b/TermTk/TTkWidgets/combobox.py index a94f19cd..bc1f07d6 100644 --- a/TermTk/TTkWidgets/combobox.py +++ b/TermTk/TTkWidgets/combobox.py @@ -35,6 +35,30 @@ from TermTk.TTkWidgets.lineedit import TTkLineEdit from TermTk.TTkWidgets.resizableframe import TTkResizableFrame class TTkComboBox(TTkWidget): + ''' TTkComboBox: + + Editable = False + :: + + [ - select - ^] + + Editable = True + :: + + [ Text [^] + + :param list: the list of the items selectable by this combobox, defaults to "[]" + :type list: list(str), optional + + :param insertPolicy: the policy used to determine where user-inserted items should appear in the combobox, defaults to :class:`~TermTk.TTkCore.constant.TTkConstant.InsertPolicy.InsertAtBottom` + :type insertPolicy: :class:`~TermTk.TTkCore.constant.TTkConstant.InsertPolicy`, optional + + :param textAlign: This enum type is used to define the text alignment, defaults to :class:`~TermTk.TTkCore.constant.TTkConstant.Alignment.CENTER_ALIGN` + :tye textAlign: :class:`~TermTk.TTkCore.constant.TTkConstant.Alignment`, optional + + :param editable: This property holds whether the combo box can be edited by the user, defaults to False + :type editable: bool, optional + ''' __slots__ = ('_list', '_id', '_lineEdit', '_listw', '_editable', '_insertPolicy', '_textAlign', '_popupFrame', #signals 'currentIndexChanged', 'currentTextChanged', 'editTextChanged') @@ -83,15 +107,35 @@ class TTkComboBox(TTkWidget): self.currentTextChanged.emit(text) self.editTextChanged.emit(text) + def textAlign(self): + '''his property holds the displayed text alignment + + :return: :class:`~TermTk.TTkCore.constant.TTkConstant.Alignment` + ''' + return self._textAlign + + def setTextAlign(self, align): + '''This property holds the displayed text alignment + + :param align: + :type align: :class:`~TermTk.TTkCore.constant.TTkConstant.Alignment` + ''' + if self._textAlign != align: + self._textAlign = align + self.update() + def addItem(self,item): + '''addItem''' self._list.append(item) self.update() def addItems(self,items): + '''addItems''' for item in items: self.addItem(item) def clear(self): + '''clear''' self._lineEdit.setText("") self._list = [] self._id = -1 @@ -120,7 +164,7 @@ class TTkComboBox(TTkWidget): text = self._list[self._id] w = self.width() - self._canvas.drawTTkString(pos=(1,0), text=TTkString(text), width=w-2, alignment=self._textAlign, color=color) + self._canvas.drawTTkString(pos=(1,0), text=TTkString(text), width=w-3, alignment=self._textAlign, color=color) self._canvas.drawText(pos=(0,0), text="[", color=borderColor) if self._editable: self._canvas.drawText(pos=(w-3,0), text="[^]", color=borderColor) @@ -128,6 +172,7 @@ class TTkComboBox(TTkWidget): self._canvas.drawText(pos=(w-2,0), text="^]", color=borderColor) def currentText(self): + '''currentText''' if self._editable: return self._lineEdit.text() elif self._id >= 0: @@ -135,10 +180,12 @@ class TTkComboBox(TTkWidget): return "" def currentIndex(self): + '''currentIndex''' return self._id @pyTTkSlot(int) def setCurrentIndex(self, index): + '''setCurrentIndex''' if index > len(self._list)-1: return self._id = index if self._editable: @@ -150,6 +197,7 @@ class TTkComboBox(TTkWidget): @pyTTkSlot(str) def setCurrentText(self, text): + '''setCurrentText''' if self._editable: self.setEditText(text) else: @@ -158,19 +206,24 @@ class TTkComboBox(TTkWidget): @pyTTkSlot(str) def setEditText(self, text): + '''setEditText''' if self._editable: self._lineEdit.setText(text) def insertPolicy(self): + '''insertPolicy''' return self._insertPolicy def setInsertPolicy(self, ip): + '''setInsertPolicy''' self._insertPolicy = ip def isEditable(self): + '''isEditable''' return self._editable def setEditable(self, editable): + '''setEditable''' self._editable = editable if editable: self._lineEdit.show() @@ -228,4 +281,42 @@ class TTkComboBox(TTkWidget): 'init': {'name':'editable', 'type':bool } , 'get': {'cb':isEditable, 'type':bool } , 'set': {'cb':setEditable, 'type':bool } }, + 'Text Align.' : { + 'init': {'name':'textAlign', 'type':'singleflag', + 'flags': { + 'None' : TTkK.Alignment.NONE, + 'Left' : TTkK.Alignment.LEFT_ALIGN, + 'Right' : TTkK.Alignment.RIGHT_ALIGN, + 'Center' : TTkK.Alignment.CENTER_ALIGN, + 'Justify': TTkK.Alignment.JUSTIFY } }, + 'get': {'cb':textAlign, 'type':'singleflag', + 'flags': { + 'None' : TTkK.Alignment.NONE, + 'Left' : TTkK.Alignment.LEFT_ALIGN, + 'Right' : TTkK.Alignment.RIGHT_ALIGN, + 'Center' : TTkK.Alignment.CENTER_ALIGN, + 'Justify': TTkK.Alignment.JUSTIFY } } , + 'set': {'cb':setTextAlign, 'type':'singleflag', + 'flags': { + 'None' : TTkK.Alignment.NONE, + 'Left' : TTkK.Alignment.LEFT_ALIGN, + 'Right' : TTkK.Alignment.RIGHT_ALIGN, + 'Center' : TTkK.Alignment.CENTER_ALIGN, + 'Justify': TTkK.Alignment.JUSTIFY } } }, + 'Insert Policy' : { + 'init': {'name':'insertPolicy', 'type':'singleflag', + 'flags': { + 'No Insert' : TTkK.InsertPolicy.NoInsert, + 'At Top' : TTkK.InsertPolicy.InsertAtTop, + 'At Bottom' : TTkK.InsertPolicy.InsertAtBottom } }, + 'get': {'cb':insertPolicy, 'type':'singleflag', + 'flags': { + 'No Insert' : TTkK.InsertPolicy.NoInsert, + 'At Top' : TTkK.InsertPolicy.InsertAtTop, + 'At Bottom' : TTkK.InsertPolicy.InsertAtBottom } }, + 'set': {'cb':setInsertPolicy, 'type':'singleflag', + 'flags': { + 'No Insert' : TTkK.InsertPolicy.NoInsert, + 'At Top' : TTkK.InsertPolicy.InsertAtTop, + 'At Bottom' : TTkK.InsertPolicy.InsertAtBottom } } }, } \ No newline at end of file diff --git a/TermTk/TTkWidgets/frame.py b/TermTk/TTkWidgets/frame.py index 9ee441ef..b764dba0 100644 --- a/TermTk/TTkWidgets/frame.py +++ b/TermTk/TTkWidgets/frame.py @@ -63,7 +63,6 @@ class TTkFrame(TTkWidget): self._menubarTop = None self._menubarBottom = None TTkWidget.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkFrame' ) self.setBorder(self._border) def menubarTop(self): @@ -81,19 +80,23 @@ class TTkFrame(TTkWidget): super().resizeEvent(w,h) def title(self): + '''title''' return self._title def setTitle(self, title): + '''setTitle''' self._title = title self.update() def setBorder(self, border): + '''setBorder''' self._border = border if border: self.setPadding(1,1,1,1) else: self.setPadding(0,0,0,0) self.update() def border(self): + '''border''' return self._border def borderColor(self): diff --git a/TermTk/TTkWidgets/label.py b/TermTk/TTkWidgets/label.py index 2efeb931..c592b931 100644 --- a/TermTk/TTkWidgets/label.py +++ b/TermTk/TTkWidgets/label.py @@ -28,6 +28,7 @@ from TermTk.TTkCore.signal import pyTTkSlot from TermTk.TTkWidgets.widget import TTkWidget class TTkLabel(TTkWidget): + '''TTkLabel''' __slots__ = ('_text','_color') def __init__(self, *args, **kwargs): self._color = kwargs.get('color', TTkColor.RST ) @@ -42,18 +43,22 @@ class TTkLabel(TTkWidget): self._textUpdated() def color(self): + '''color''' return self._color def setColor(self, color): + '''setColor''' if self._color != color: self._color = color self.update() def text(self): + '''text''' return self._text @pyTTkSlot(str) def setText(self, text): + '''setText''' if self._text != text: if issubclass(type(text), TTkString): self._text = text diff --git a/TermTk/TTkWidgets/lineedit.py b/TermTk/TTkWidgets/lineedit.py index 7420c972..ad93c0aa 100644 --- a/TermTk/TTkWidgets/lineedit.py +++ b/TermTk/TTkWidgets/lineedit.py @@ -39,6 +39,7 @@ from TermTk.TTkWidgets.widget import TTkWidget <--> Offset ''' class TTkLineEdit(TTkWidget): + '''TTkLineEdit''' __slots__ = ( '_text', '_cursorPos', '_offset', '_replace', '_inputType', '_selectionFrom', '_selectionTo', '_color', # Signals @@ -65,6 +66,7 @@ class TTkLineEdit(TTkWidget): @pyTTkSlot(str) def setText(self, text, cursorPos=0x1000): + '''setText''' if text != self._text: self.textChanged.emit(text) self._text = TTkString(text) @@ -72,6 +74,7 @@ class TTkLineEdit(TTkWidget): self._pushCursor() def text(self): + '''text''' return self._text def _pushCursor(self): diff --git a/TermTk/TTkWidgets/list_.py b/TermTk/TTkWidgets/list_.py index 43ea1f2c..67658698 100644 --- a/TermTk/TTkWidgets/list_.py +++ b/TermTk/TTkWidgets/list_.py @@ -26,6 +26,7 @@ from TermTk.TTkWidgets.listwidget import TTkListWidget from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea class TTkList(TTkAbstractScrollArea): + '''TTkList''' __slots__ = ( '_listView', 'itemClicked', 'textClicked', # Forwarded Methods @@ -36,7 +37,6 @@ class TTkList(TTkAbstractScrollArea): def __init__(self, *args, **kwargs): TTkAbstractScrollArea.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkList' ) if 'parent' in kwargs: kwargs.pop('parent') self._listView = kwargs.get('listWidget',TTkListWidget(*args, **kwargs)) self.setViewport(self._listView) diff --git a/TermTk/TTkWidgets/listwidget.py b/TermTk/TTkWidgets/listwidget.py index 7857f861..1bd1912f 100644 --- a/TermTk/TTkWidgets/listwidget.py +++ b/TermTk/TTkWidgets/listwidget.py @@ -33,6 +33,7 @@ from TermTk.TTkWidgets.label import TTkLabel from TermTk.TTkAbstract.abstractscrollview import TTkAbstractScrollView class TTkAbstractListItem(TTkLabel): + '''TTkAbstractListItem''' __slots__ = ('_pressed', '_selected', '_highlighted', 'listItemClicked', '_data') def __init__(self, *args, **kwargs): TTkLabel.__init__(self, *args, **kwargs) @@ -56,9 +57,11 @@ class TTkAbstractListItem(TTkLabel): self.setColor(TTkCfg.theme.listColor) def data(self): + '''data''' return self._data def setData(self, data): + '''setData''' if self._data != data: self._data = data self.update() @@ -100,6 +103,7 @@ class TTkAbstractListItem(TTkLabel): class TTkListWidget(TTkAbstractScrollView): + '''TTkListWidget''' __slots__ = ('itemClicked', 'textClicked', '_color', '_selectedColor', '_selectedItems', '_selectionMode', '_highlighted', '_items') def __init__(self, *args, **kwargs): # Default Class Specific Values @@ -114,7 +118,6 @@ class TTkListWidget(TTkAbstractScrollView): self.textClicked = pyTTkSignal(str) # Init Super TTkAbstractScrollView.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkListWidget' ) self.viewChanged.connect(self._viewChangedHandler) self.setFocusPolicy(TTkK.ClickFocus + TTkK.TabFocus) @@ -148,15 +151,19 @@ class TTkListWidget(TTkAbstractScrollView): self.textClicked.emit(label.text()) def setSelectionMode(self, mode): + '''setSelectionMode''' self._selectionMode = mode def selectedItems(self): + '''selectedItems''' return self._selectedItems def selectedLabels(self): + '''selectedLabels''' return [i.text() for i in self._selectedItems] def items(self): + '''items''' return self._items def resizeEvent(self, w, h): @@ -177,6 +184,7 @@ class TTkListWidget(TTkAbstractScrollView): return self.size() def addItem(self, item, data=None): + '''addItem''' self.addItemAt(item, len(self._items), data) def _placeItems(self): @@ -188,6 +196,7 @@ class TTkListWidget(TTkAbstractScrollView): self.viewChanged.emit() def addItemAt(self, item, pos, data=None): + '''addItemAt''' if isinstance(item, str) or isinstance(item, TTkString): #label = TTkAbstractListItem(text=item, width=max(len(item),self.width())) label = TTkAbstractListItem(text=item, data=data) @@ -199,15 +208,18 @@ class TTkListWidget(TTkAbstractScrollView): self._placeItems() def indexOf(self, item): + '''indexOf''' for i, it in enumerate(self._items): if it == item: return i return -1 def itemAt(self, pos): + '''itemAt''' return self._items[pos] def moveItem(self, fr, to): + '''moveItem''' fr = max(min(fr,len(self._items)-1),0) to = max(min(to,len(self._items)-1),0) # Swap @@ -215,6 +227,7 @@ class TTkListWidget(TTkAbstractScrollView): self._placeItems() def removeItem(self, item): + '''removeItem''' self.removeWidget(item) self._items.remove(item) if item in self._selectedItems: @@ -222,14 +235,17 @@ class TTkListWidget(TTkAbstractScrollView): self._placeItems() def removeAt(self, pos): + '''removeAt''' self.removeItem(self._items[pos]) def setCurrentRow(self, row): + '''setCurrentRow''' if row self._value_min: @@ -123,6 +131,7 @@ class TTkProgressBar(TTkWidget): self.setValue(self._value_max) def setMinimumMaximum(self, new_min, new_max): + '''setMinimumMaximum''' if not math.isfinite(new_min) or not math.isfinite(new_max): raise ValueError( f'minimum and maximum must be finite, but ' @@ -136,9 +145,11 @@ class TTkProgressBar(TTkWidget): self.setValue(self._value) # setValue takes care for min/max-constraint def textWidth(self): + '''textWidth''' return self._textWidth def setTextWidth(self, new_width): + '''setTextWidth''' self._textWidth = max(0, new_width) def paintEvent(self): diff --git a/TermTk/TTkWidgets/radiobutton.py b/TermTk/TTkWidgets/radiobutton.py index 17ee19d4..74fed6eb 100644 --- a/TermTk/TTkWidgets/radiobutton.py +++ b/TermTk/TTkWidgets/radiobutton.py @@ -69,7 +69,6 @@ class TTkRadioButton(TTkWidget): # Define Signals self.clicked = pyTTkSignal() TTkWidget.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkRadioButton' ) # self.checked = pyTTkSignal() self._checked = kwargs.get('checked', False ) self._text = TTkString(kwargs.get('text', '' )) diff --git a/TermTk/TTkWidgets/resizableframe.py b/TermTk/TTkWidgets/resizableframe.py index 9ee1d0ff..3b138b20 100644 --- a/TermTk/TTkWidgets/resizableframe.py +++ b/TermTk/TTkWidgets/resizableframe.py @@ -26,6 +26,7 @@ from TermTk.TTkCore.constant import TTkK from TermTk.TTkWidgets.frame import TTkFrame class TTkResizableFrame(TTkFrame): + '''TTkResizableFrame''' __slots__ = ('_mouseDelta', '_resizable') def __init__(self, *args, **kwargs): TTkFrame.__init__(self, *args, **kwargs) diff --git a/TermTk/TTkWidgets/scrollarea.py b/TermTk/TTkWidgets/scrollarea.py index aa052a22..925c0b0d 100644 --- a/TermTk/TTkWidgets/scrollarea.py +++ b/TermTk/TTkWidgets/scrollarea.py @@ -31,7 +31,6 @@ class _TTkAreaWidget(TTkAbstractScrollView): __slots__ = () def __init__(self, *args, **kwargs): TTkAbstractScrollView.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , '_TTkAreaWidget' ) self.viewChanged.connect(self._viewChangedHandler) @pyTTkSlot() @@ -47,10 +46,10 @@ class _TTkAreaWidget(TTkAbstractScrollView): return self.size() class TTkScrollArea(TTkAbstractScrollArea): + '''TTkScrollArea''' __slots__ = ('_areaView') def __init__(self, *args, **kwargs): TTkAbstractScrollArea.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkScrollArea' ) if 'parent' in kwargs: kwargs.pop('parent') self._areaView = _TTkAreaWidget(*args, **kwargs) self.setFocusPolicy(TTkK.ClickFocus) diff --git a/TermTk/TTkWidgets/scrollbar.py b/TermTk/TTkWidgets/scrollbar.py index e32c96c3..e1511fbc 100644 --- a/TermTk/TTkWidgets/scrollbar.py +++ b/TermTk/TTkWidgets/scrollbar.py @@ -31,6 +31,7 @@ from TermTk.TTkWidgets.widget import TTkWidget ref: https://doc.qt.io/qt-5/qscrollbar.html ''' class TTkScrollBar(TTkWidget): + '''TTkScrollBar''' __slots__ = ( '_orientation', '_minimum', '_maximum', @@ -49,7 +50,6 @@ class TTkScrollBar(TTkWidget): def __init__(self, *args, **kwargs): TTkWidget.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkScrollBar' ) # Define Signals self.valueChanged = pyTTkSignal(int) # Value self.rangeChanged = pyTTkSignal(int, int) # Min, Max @@ -185,14 +185,17 @@ class TTkScrollBar(TTkWidget): @pyTTkSlot(int) def setPageStep(self, pageStep): + '''setPageStep''' self._pagestep = pageStep @pyTTkSlot(int) def setRangeTo(self, max): + '''setRangeTo''' self.setRange(0,max) @pyTTkSlot(int, int) def setRange(self, min, max): + '''setRange''' if self._minimum == min and \ self._maximum == max : return @@ -202,6 +205,7 @@ class TTkScrollBar(TTkWidget): @pyTTkSlot(int) def setValue(self, v): + '''setValue''' self.value = v @property diff --git a/TermTk/TTkWidgets/spacer.py b/TermTk/TTkWidgets/spacer.py index bfd19d16..fd8cf6dd 100644 --- a/TermTk/TTkWidgets/spacer.py +++ b/TermTk/TTkWidgets/spacer.py @@ -25,8 +25,7 @@ from TermTk.TTkWidgets.widget import TTkWidget class TTkSpacer(TTkWidget): + '''TTkSpacer''' __slots__ = () def __init__(self, *args, **kwargs): TTkWidget.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkSpacer') - # self.hide() \ No newline at end of file diff --git a/TermTk/TTkWidgets/spinbox.py b/TermTk/TTkWidgets/spinbox.py index 377a3dea..d6d810b1 100644 --- a/TermTk/TTkWidgets/spinbox.py +++ b/TermTk/TTkWidgets/spinbox.py @@ -32,6 +32,7 @@ from TermTk.TTkWidgets.lineedit import TTkLineEdit class TTkSpinBox(TTkWidget): + '''TTkSpinBox''' __slots__= ( '_lineEdit', '_value', '_maximum', '_minimum', '_mouseDelta', '_valueDelta', '_draggable', @@ -41,7 +42,6 @@ class TTkSpinBox(TTkWidget): # Signals self.valueChanged=pyTTkSignal(int) TTkWidget.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkSpinBox' ) self._value = kwargs.get("value",0) self._maximum = kwargs.get("maximum",99) self._minimum = kwargs.get("minimum",0) @@ -57,10 +57,12 @@ class TTkSpinBox(TTkWidget): self._lineEdit.textEdited.connect(self._textEdited) def value(self): + '''value''' return self._value @pyTTkSlot(int) def setValue(self, value): + '''setValue''' value = min(value,self._maximum) value = max(value,self._minimum) if self._value == value: return diff --git a/TermTk/TTkWidgets/splitter.py b/TermTk/TTkWidgets/splitter.py index 5fb0f5bf..72fabee3 100644 --- a/TermTk/TTkWidgets/splitter.py +++ b/TermTk/TTkWidgets/splitter.py @@ -27,6 +27,7 @@ from TermTk.TTkWidgets.widget import * from TermTk.TTkWidgets.frame import * class TTkSplitter(TTkFrame): + '''TTkSplitter''' __slots__ = ( '_splitterInitialized', '_orientation', '_separators', '_separatorsRef', '_sizeRef', '_initSizes', @@ -42,7 +43,6 @@ class TTkSplitter(TTkFrame): self._separatorSelected = None self._orientation = TTkK.HORIZONTAL TTkFrame.__init__(self, *args, **kwargs) - self._name = kwargs.get('name' , 'TTkSpacer') self._orientation = kwargs.get('orientation', TTkK.HORIZONTAL) self.setBorder(kwargs.get('border' , False)) self.setFocusPolicy(TTkK.ClickFocus) @@ -60,30 +60,37 @@ class TTkSplitter(TTkFrame): self.setLayout(_SplitterLayout()) def orientation(self): + '''orientation''' return self._orientation def count(self): + '''count''' return len(self._items) def indexOf(self, widget): + '''indexOf''' return self._items.index(widget) def widget(self, index): + '''widget''' return self._items[index] def replaceItem(self, index, item): + '''replaceItem''' TTkLayout.removeItem(self.layout(), self._items[index]) TTkLayout.insertItem(self.layout(), index, item) self._items[index] = item self._updateGeometries() def replaceWidget(self, index, widget): + '''replaceWidget''' TTkLayout.removeWidget(self.layout(), self._items[index]) TTkLayout.insertWidget(self.layout(), index, widget) self._items[index] = widget self._updateGeometries() def removeItem(self, item): + '''removeItem''' index = self.indexOf(item) self._items.pop(index) self._initSizes.pop(index) @@ -93,6 +100,7 @@ class TTkSplitter(TTkFrame): self._updateGeometries() def removeWidget(self, widget): + '''removeWidget''' index = self.indexOf(widget) self._items.pop(index) self._initSizes.pop(index) @@ -102,16 +110,20 @@ class TTkSplitter(TTkFrame): self._updateGeometries() def addItem(self, item, size=None): + '''addItem''' self.insertItem(len(self._items), item, size) def insertItem(self, index, item, size=None): + '''insertItem''' TTkLayout.insertItem(self.layout(), index, item) self._insertWidgetItem(index, item, size) def addWidget(self, widget, size=None): + '''addWidget''' self.insertWidget(len(self._items), widget, size) def insertWidget(self, index, widget, size=None): + '''insertWidget''' TTkLayout.insertWidget(self.layout(), index, widget) self._insertWidgetItem(index, widget, size) @@ -137,6 +149,7 @@ class TTkSplitter(TTkFrame): self.parentWidget().update(repaint=True, updateLayout=True) def setSizes(self, sizes): + '''setSizes''' s = 0 sizes=sizes[:len(self._separators)] for i, l in enumerate(sizes): diff --git a/TermTk/TTkWidgets/tabwidget.py b/TermTk/TTkWidgets/tabwidget.py index 0de842f4..ace1da99 100644 --- a/TermTk/TTkWidgets/tabwidget.py +++ b/TermTk/TTkWidgets/tabwidget.py @@ -54,6 +54,7 @@ class _TTkTabBarDragData(): def tabBar(self): return self._tabBar class TTkTabButton(TTkButton): + '''TTkTabButton''' __slots__ = ('_sideEnd', '_tabStatus', '_closable', 'closeClicked', '_closeButton') def __init__(self, *args, **kwargs): self._sideEnd = TTkK.NONE @@ -214,6 +215,7 @@ _labels= │◀│La│Label1║Label2║Label3│Label4│▶│ ''' class TTkTabBar(TTkWidget): + '''TTkTabBar''' __slots__ = ( '_tabButtons', '_tabData', '_tabMovable', '_small', '_highlighted', '_currentIndex','_lastIndex', @@ -265,9 +267,11 @@ class TTkTabBar(TTkWidget): self._updateTabs() def addTab(self, label, data=None): + '''addTab''' return self.insertTab(len(self._tabButtons), label, data) def insertTab(self, index, label, data=None): + '''insertTab''' if index <= self._currentIndex: self._currentIndex += 1 button = TTkTabButton(parent=self, text=label, border=not self._small, closable=self._tabClosable) @@ -281,6 +285,7 @@ class TTkTabBar(TTkWidget): @pyTTkSlot(int) def removeTab(self, index): + '''removeTab''' button = self._tabButtons[index] self.layout().removeWidget(button) self._tabButtons.pop(index) @@ -293,9 +298,11 @@ class TTkTabBar(TTkWidget): self._updateTabs() def tabData(self, index): + '''tabData''' return self._tabData[index] def setTabData(self, index, data): + '''setTabData''' self._tabData[index] = data def borderColor(self): @@ -310,16 +317,20 @@ class TTkTabBar(TTkWidget): self.update() def tabsClosable(self): + '''tabsClosable''' return self._tabClosable def setTabsClosable(self, closable): + '''setTabsClosable''' self._tabClosable = closable def currentIndex(self): + '''currentIndex''' return self._currentIndex @pyTTkSlot(int) def setCurrentIndex(self, index): + '''setCurrentIndex''' TTkLog.debug(index) if 0 <= index < len(self._tabButtons): self._currentIndex = index @@ -462,6 +473,7 @@ class TTkTabBar(TTkWidget): ''' class TTkTabWidget(TTkFrame): + '''TTkTabWidget''' __slots__ = ( '_tabBarTopLayout', '_tabBar', '_topLeftLayout', '_topRightLayout', '_tabWidgets', '_spacer', @@ -513,9 +525,11 @@ class TTkTabWidget(TTkFrame): self.tabCloseRequested = self._tabBar.tabCloseRequested def widget(self, index): + '''widget''' return self._tabWidgets[index] def currentWidget(self): + '''currentWidget''' for w in self._tabWidgets: if w.isVisible(): return w @@ -523,6 +537,7 @@ class TTkTabWidget(TTkFrame): @pyTTkSlot(TTkWidget) def setCurrentWidget(self, widget): + '''setCurrentWidget''' for i, w in enumerate(self._tabWidgets): if widget == w: self.setCurrentIndex(i) @@ -586,6 +601,7 @@ class TTkTabWidget(TTkFrame): return True def addMenu(self, text, position=TTkK.LEFT): + '''addMenu''' button = _TTkTabMenuButton(text=text, borderColor=TTkCfg.theme.tabBorderColor) self._tabBar.setSideEnd(self._tabBar.sideEnd() & ~position) if position==TTkK.LEFT: @@ -602,12 +618,14 @@ class TTkTabWidget(TTkFrame): return button def addTab(self, widget, label, data=None): + '''addTab''' widget.hide() self._tabWidgets.append(widget) self.layout().addWidget(widget) self._tabBar.addTab(label, data) def insertTab(self, index, widget, label, data=None): + '''insertTab''' widget.hide() self._tabWidgets.insert(index, widget) self.layout().addWidget(widget) @@ -615,6 +633,7 @@ class TTkTabWidget(TTkFrame): @pyTTkSlot(int) def removeTab(self, index): + '''removeTab''' self.layout().removeWidget(self._tabWidgets[index]) self._tabWidgets.pop(index) self._tabBar.removeTab(index) diff --git a/TermTk/TTkWidgets/texedit.py b/TermTk/TTkWidgets/texedit.py index c179cfd6..fd4a7ae8 100644 --- a/TermTk/TTkWidgets/texedit.py +++ b/TermTk/TTkWidgets/texedit.py @@ -87,6 +87,7 @@ class _TTkTextEditViewLineNumber(TTkAbstractScrollView): self._canvas.drawChar(pos=(w-1,y), char='▌', color=TTkCfg.theme.textEditLineNumberSeparatorColor) class TTkTextEditView(TTkAbstractScrollView): + '''TTkTextEditView''' __slots__ = ( '_textDocument', '_hsize', '_textCursor', '_textColor', '_cursorParams', @@ -529,6 +530,7 @@ class TTkTextEditView(TTkAbstractScrollView): self._pushCursor() class TTkTextEdit(TTkAbstractScrollArea): + '''TTkTextEdit''' __slots__ = ( '_textEditView', '_lineNumberView', '_lineNumber', @@ -545,7 +547,6 @@ class TTkTextEdit(TTkAbstractScrollArea): ) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self._name = kwargs.get('name' , 'TTkTextEdit' ) if 'parent' in kwargs: kwargs.pop('parent') self._textEditView = kwargs.get('textEditView', TTkTextEditView(*args, **kwargs)) # self.setFocusPolicy(self._textEditView.focusPolicy()) diff --git a/TermTk/TTkWidgets/window.py b/TermTk/TTkWidgets/window.py index 6c51405a..abcd9418 100644 --- a/TermTk/TTkWidgets/window.py +++ b/TermTk/TTkWidgets/window.py @@ -40,6 +40,7 @@ class _MinimizedButton(TTkButton): self.clicked.connect(_cb) class TTkWindow(TTkResizableFrame): + '''TTkWindow''' __slots__ = ( '_title', '_mouseDelta', '_draggable', '_btnClose', '_btnMax', '_btnMin', '_btnReduce', @@ -121,9 +122,11 @@ class TTkWindow(TTkResizableFrame): self.hide() def windowFlag(self): + '''windowFlag''' return self._flags def setWindowFlag(self, flag): + '''setWindowFlag''' if self._flags == flag: return self._flags = flag self._btnClose.setVisible( bool(flag & TTkK.WindowFlag.WindowCloseButtonHint))