Browse Source

Doc Updated

gh-pages
Eugenio Parodi 5 years ago
parent
commit
699306d88a
  1. 1
      TTkAbstract/abstractscrollarea.html
  2. 1
      TTkAbstract/abstractscrollview.html
  3. 243
      TTkCore/canvas.html
  4. 25
      TTkCore/cfg.html
  5. 4
      TTkCore/color.html
  6. 67
      TTkCore/constant.html
  7. 592
      TTkCore/filebuffer.html
  8. 27
      TTkCore/helper.html
  9. 5
      TTkCore/index.html
  10. 58
      TTkCore/ttk.html
  11. 1
      TTkTestWidgets/logviewer.html
  12. 1
      TTkTestWidgets/testwidget.html
  13. 1
      TTkTestWidgets/testwidgetsizes.html
  14. 1
      TTkWidgets/button.html
  15. 48
      TTkWidgets/checkbox.html
  16. 1
      TTkWidgets/combobox.html
  17. 1
      TTkWidgets/frame.html
  18. 1
      TTkWidgets/graph.html
  19. 1
      TTkWidgets/label.html
  20. 97
      TTkWidgets/lineedit.html
  21. 1
      TTkWidgets/list.html
  22. 1
      TTkWidgets/listwidget.html
  23. 1
      TTkWidgets/radiobutton.html
  24. 1
      TTkWidgets/resizableframe.html
  25. 1
      TTkWidgets/scrollarea.html
  26. 1
      TTkWidgets/scrollbar.html
  27. 1
      TTkWidgets/spacer.html
  28. 45
      TTkWidgets/splitter.html
  29. 1
      TTkWidgets/table.html
  30. 1
      TTkWidgets/tableview.html
  31. 1
      TTkWidgets/tabwidget.html
  32. 1
      TTkWidgets/texedit.html
  33. 1
      TTkWidgets/tree.html
  34. 1
      TTkWidgets/treeview.html
  35. 7
      TTkWidgets/treewidget.html
  36. 80
      TTkWidgets/widget.html
  37. 1
      TTkWidgets/window.html
  38. 7
      libbpytop/colors.html
  39. 2
      libbpytop/input.html

1
TTkAbstract/abstractscrollarea.html

@ -411,7 +411,6 @@ class TTkAbstractScrollArea(TTkWidget):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkAbstract/abstractscrollview.html

@ -375,7 +375,6 @@ def viewMoveTo(self, x, y):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

243
TTkCore/canvas.html

@ -55,10 +55,9 @@ import math
import TermTk.libbpytop as lbt
from TermTk.TTkCore.constant import TTkK
from TermTk.TTkCore.log import TTkLog
from TermTk.TTkCore.cfg import *
from TermTk.TTkCore.color import *
from TermTk.TTkCore.helper import *
from TermTk.TTkGui.theme import *
from TermTk.TTkCore.cfg import TTkCfg, TTkGlbl
from TermTk.TTkCore.color import TTkColor
from TermTk.TTkCore.helper import TTkHelper
class TTkCanvas:
&#39;&#39;&#39;
@ -77,10 +76,17 @@ class TTkCanvas:
in w = the width of the new canvas
in h = the height of the new canvas
&#39;&#39;&#39;
__slots__ = (&#39;_widget&#39;, &#39;_width&#39;, &#39;_height&#39;, &#39;_newWidth&#39;, &#39;_newHeight&#39;,&#39;_theme&#39;, &#39;_data&#39;, &#39;_colors&#39;, &#39;_visible&#39;)
__slots__ = (
&#39;_widget&#39;,
&#39;_width&#39;, &#39;_height&#39;, &#39;_newWidth&#39;, &#39;_newHeight&#39;,
&#39;_theme&#39;,
&#39;_data&#39;, &#39;_colors&#39;,
&#39;_bufferedData&#39;, &#39;_bufferedColors&#39;,
&#39;_visible&#39;, &#39;_doubleBuffer&#39;)
def __init__(self, *args, **kwargs):
self._widget = kwargs.get(&#39;widget&#39;, None)
self._visible = True
self._doubleBuffer = False
self._width = 0
self._height = 0
self._data = [[0]]
@ -93,6 +99,10 @@ class TTkCanvas:
def getWidget(self): return self._widget
def enableDoubleBuffer(self):
self._doubleBuffer = True
self._bufferedData, self._bufferedColors = self.copy()
def updateSize(self):
if not self._visible: return
w,h = self._newWidth, self._newHeight
@ -103,8 +113,14 @@ class TTkCanvas:
for i in range(0,h):
self._data[i] = [&#39; &#39;]*w
self._colors[i] = [TTkColor.RST]*w
self._width = w
if self._doubleBuffer:
self._bufferedData = [[]]*h
self._bufferedColors = [[]]*h
for i in range(0,h):
self._bufferedData[i] = [&#39;&#39;]*w
self._bufferedColors[i] = [TTkColor.RST]*w
self._height = h
self._width = w
def resize(self, w, h):
self._newWidth = w
@ -119,6 +135,18 @@ class TTkCanvas:
self._data[iy][ix] = &#39; &#39;
self._colors[iy][ix] = TTkColor.RST
def copy(self):
w,h = self._width, self._height
retData = [[]]*h
retColors = [[]]*h
for iy in range(h):
retData[iy] = [&#39; &#39;]*w
retColors[iy] = [TTkColor.RST]*w
for ix in range(w):
retData[iy][ix] = self._data[iy][ix]
retColors[iy][ix] = self._colors[iy][ix]
return retData, retColors
def hide(self):
self._visible = False
@ -209,6 +237,8 @@ class TTkCanvas:
elif alignment == TTkK.JUSTIFY:
# TODO: Text Justification
text = text + &#34; &#34;*pad
else:
text=text[:width]
arr = list(text)
for i in range(0, len(arr)):
@ -532,7 +562,40 @@ class TTkCanvas:
ansi += color-lastcolor
lastcolor = color
ansi+=ch
lbt.Term.push(ansi)</code></pre>
lbt.Term.push(ansi)
def pushToTerminalBuffered(self, x, y, w, h):
# TTkLog.debug(&#34;pushToTerminal&#34;)
oldData, oldColors = self._bufferedData, self._bufferedColors
lastcolor = TTkColor.RST
empty = True
ansi = &#34;&#34;
for y in range(0, self._height):
for x in range(0, self._width):
if self._data[y][x] == oldData[y][x] and \
self._colors[y][x] == oldColors[y][x]:
if not empty:
lbt.Term.push(ansi)
empty=True
continue
ch = self._data[y][x]
color = self._colors[y][x]
if empty:
ansi = color+lbt.Mv.t(y+1,x+1)
#lastcolor = color
empty = False
if color != lastcolor:
ansi += color-lastcolor
lastcolor = color
ansi+=ch
if not empty:
lbt.Term.push(ansi)
empty=True
# Reset the color at the end
lbt.Term.push(TTkColor.RST)
# Switch the buffer
self._bufferedData, self._bufferedColors = self._data, self._colors
self._data, self._colors = oldData, oldColors</code></pre>
</details>
</section>
<section>
@ -584,10 +647,17 @@ h = the height of the new canvas</p></div>
in w = the width of the new canvas
in h = the height of the new canvas
&#39;&#39;&#39;
__slots__ = (&#39;_widget&#39;, &#39;_width&#39;, &#39;_height&#39;, &#39;_newWidth&#39;, &#39;_newHeight&#39;,&#39;_theme&#39;, &#39;_data&#39;, &#39;_colors&#39;, &#39;_visible&#39;)
__slots__ = (
&#39;_widget&#39;,
&#39;_width&#39;, &#39;_height&#39;, &#39;_newWidth&#39;, &#39;_newHeight&#39;,
&#39;_theme&#39;,
&#39;_data&#39;, &#39;_colors&#39;,
&#39;_bufferedData&#39;, &#39;_bufferedColors&#39;,
&#39;_visible&#39;, &#39;_doubleBuffer&#39;)
def __init__(self, *args, **kwargs):
self._widget = kwargs.get(&#39;widget&#39;, None)
self._visible = True
self._doubleBuffer = False
self._width = 0
self._height = 0
self._data = [[0]]
@ -600,6 +670,10 @@ h = the height of the new canvas</p></div>
def getWidget(self): return self._widget
def enableDoubleBuffer(self):
self._doubleBuffer = True
self._bufferedData, self._bufferedColors = self.copy()
def updateSize(self):
if not self._visible: return
w,h = self._newWidth, self._newHeight
@ -610,8 +684,14 @@ h = the height of the new canvas</p></div>
for i in range(0,h):
self._data[i] = [&#39; &#39;]*w
self._colors[i] = [TTkColor.RST]*w
self._width = w
if self._doubleBuffer:
self._bufferedData = [[]]*h
self._bufferedColors = [[]]*h
for i in range(0,h):
self._bufferedData[i] = [&#39;&#39;]*w
self._bufferedColors[i] = [TTkColor.RST]*w
self._height = h
self._width = w
def resize(self, w, h):
self._newWidth = w
@ -626,6 +706,18 @@ h = the height of the new canvas</p></div>
self._data[iy][ix] = &#39; &#39;
self._colors[iy][ix] = TTkColor.RST
def copy(self):
w,h = self._width, self._height
retData = [[]]*h
retColors = [[]]*h
for iy in range(h):
retData[iy] = [&#39; &#39;]*w
retColors[iy] = [TTkColor.RST]*w
for ix in range(w):
retData[iy][ix] = self._data[iy][ix]
retColors[iy][ix] = self._colors[iy][ix]
return retData, retColors
def hide(self):
self._visible = False
@ -716,6 +808,8 @@ h = the height of the new canvas</p></div>
elif alignment == TTkK.JUSTIFY:
# TODO: Text Justification
text = text + &#34; &#34;*pad
else:
text=text[:width]
arr = list(text)
for i in range(0, len(arr)):
@ -1039,7 +1133,40 @@ h = the height of the new canvas</p></div>
ansi += color-lastcolor
lastcolor = color
ansi+=ch
lbt.Term.push(ansi)</code></pre>
lbt.Term.push(ansi)
def pushToTerminalBuffered(self, x, y, w, h):
# TTkLog.debug(&#34;pushToTerminal&#34;)
oldData, oldColors = self._bufferedData, self._bufferedColors
lastcolor = TTkColor.RST
empty = True
ansi = &#34;&#34;
for y in range(0, self._height):
for x in range(0, self._width):
if self._data[y][x] == oldData[y][x] and \
self._colors[y][x] == oldColors[y][x]:
if not empty:
lbt.Term.push(ansi)
empty=True
continue
ch = self._data[y][x]
color = self._colors[y][x]
if empty:
ansi = color+lbt.Mv.t(y+1,x+1)
#lastcolor = color
empty = False
if color != lastcolor:
ansi += color-lastcolor
lastcolor = color
ansi+=ch
if not empty:
lbt.Term.push(ansi)
empty=True
# Reset the color at the end
lbt.Term.push(TTkColor.RST)
# Switch the buffer
self._bufferedData, self._bufferedColors = self._data, self._colors
self._data, self._colors = oldData, oldColors</code></pre>
</details>
<h3>Methods</h3>
<dl>
@ -1062,6 +1189,28 @@ h = the height of the new canvas</p></div>
self._colors[iy][ix] = TTkColor.RST</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.canvas.TTkCanvas.copy"><code class="name flex">
<span>def <span class="ident">copy</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def copy(self):
w,h = self._width, self._height
retData = [[]]*h
retColors = [[]]*h
for iy in range(h):
retData[iy] = [&#39; &#39;]*w
retColors[iy] = [TTkColor.RST]*w
for ix in range(w):
retData[iy][ix] = self._data[iy][ix]
retColors[iy][ix] = self._colors[iy][ix]
return retData, retColors</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.canvas.TTkCanvas.drawBox"><code class="name flex">
<span>def <span class="ident">drawBox</span></span>(<span>self, pos, size, color=&lt;TermTk.TTkCore.color._TTkColor object&gt;, grid=0)</span>
</code></dt>
@ -1493,6 +1642,8 @@ h = the height of the new canvas</p></div>
elif alignment == TTkK.JUSTIFY:
# TODO: Text Justification
text = text + &#34; &#34;*pad
else:
text=text[:width]
arr = list(text)
for i in range(0, len(arr)):
@ -1519,6 +1670,20 @@ h = the height of the new canvas</p></div>
self._set(y+i, x, ln[1], color)</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.canvas.TTkCanvas.enableDoubleBuffer"><code class="name flex">
<span>def <span class="ident">enableDoubleBuffer</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def enableDoubleBuffer(self):
self._doubleBuffer = True
self._bufferedData, self._bufferedColors = self.copy()</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.canvas.TTkCanvas.execPaint"><code class="name flex">
<span>def <span class="ident">execPaint</span></span>(<span>self, winw, winh)</span>
</code></dt>
@ -1628,6 +1793,49 @@ h = the height of the new canvas</p></div>
lbt.Term.push(ansi)</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.canvas.TTkCanvas.pushToTerminalBuffered"><code class="name flex">
<span>def <span class="ident">pushToTerminalBuffered</span></span>(<span>self, x, y, w, h)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def pushToTerminalBuffered(self, x, y, w, h):
# TTkLog.debug(&#34;pushToTerminal&#34;)
oldData, oldColors = self._bufferedData, self._bufferedColors
lastcolor = TTkColor.RST
empty = True
ansi = &#34;&#34;
for y in range(0, self._height):
for x in range(0, self._width):
if self._data[y][x] == oldData[y][x] and \
self._colors[y][x] == oldColors[y][x]:
if not empty:
lbt.Term.push(ansi)
empty=True
continue
ch = self._data[y][x]
color = self._colors[y][x]
if empty:
ansi = color+lbt.Mv.t(y+1,x+1)
#lastcolor = color
empty = False
if color != lastcolor:
ansi += color-lastcolor
lastcolor = color
ansi+=ch
if not empty:
lbt.Term.push(ansi)
empty=True
# Reset the color at the end
lbt.Term.push(TTkColor.RST)
# Switch the buffer
self._bufferedData, self._bufferedColors = self._data, self._colors
self._data, self._colors = oldData, oldColors</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.canvas.TTkCanvas.resize"><code class="name flex">
<span>def <span class="ident">resize</span></span>(<span>self, w, h)</span>
</code></dt>
@ -1674,8 +1882,14 @@ h = the height of the new canvas</p></div>
for i in range(0,h):
self._data[i] = [&#39; &#39;]*w
self._colors[i] = [TTkColor.RST]*w
self._width = w
self._height = h</code></pre>
if self._doubleBuffer:
self._bufferedData = [[]]*h
self._bufferedColors = [[]]*h
for i in range(0,h):
self._bufferedData[i] = [&#39;&#39;]*w
self._bufferedColors[i] = [TTkColor.RST]*w
self._height = h
self._width = w</code></pre>
</details>
</dd>
</dl>
@ -1698,8 +1912,9 @@ h = the height of the new canvas</p></div>
<ul>
<li>
<h4><code><a title="TermTk.TTkCore.canvas.TTkCanvas" href="#TermTk.TTkCore.canvas.TTkCanvas">TTkCanvas</a></code></h4>
<ul class="two-column">
<ul class="">
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.clean" href="#TermTk.TTkCore.canvas.TTkCanvas.clean">clean</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.copy" href="#TermTk.TTkCore.canvas.TTkCanvas.copy">copy</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.drawBox" href="#TermTk.TTkCore.canvas.TTkCanvas.drawBox">drawBox</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.drawBoxTitle" href="#TermTk.TTkCore.canvas.TTkCanvas.drawBoxTitle">drawBoxTitle</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.drawButtonBox" href="#TermTk.TTkCore.canvas.TTkCanvas.drawButtonBox">drawButtonBox</a></code></li>
@ -1713,11 +1928,13 @@ h = the height of the new canvas</p></div>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.drawTableLine" href="#TermTk.TTkCore.canvas.TTkCanvas.drawTableLine">drawTableLine</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.drawText" href="#TermTk.TTkCore.canvas.TTkCanvas.drawText">drawText</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.drawVLine" href="#TermTk.TTkCore.canvas.TTkCanvas.drawVLine">drawVLine</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.enableDoubleBuffer" href="#TermTk.TTkCore.canvas.TTkCanvas.enableDoubleBuffer">enableDoubleBuffer</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.execPaint" href="#TermTk.TTkCore.canvas.TTkCanvas.execPaint">execPaint</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.getWidget" href="#TermTk.TTkCore.canvas.TTkCanvas.getWidget">getWidget</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.hide" href="#TermTk.TTkCore.canvas.TTkCanvas.hide">hide</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.paintCanvas" href="#TermTk.TTkCore.canvas.TTkCanvas.paintCanvas">paintCanvas</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.pushToTerminal" href="#TermTk.TTkCore.canvas.TTkCanvas.pushToTerminal">pushToTerminal</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.pushToTerminalBuffered" href="#TermTk.TTkCore.canvas.TTkCanvas.pushToTerminalBuffered">pushToTerminalBuffered</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.resize" href="#TermTk.TTkCore.canvas.TTkCanvas.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.show" href="#TermTk.TTkCore.canvas.TTkCanvas.show">show</a></code></li>
<li><code><a title="TermTk.TTkCore.canvas.TTkCanvas.updateSize" href="#TermTk.TTkCore.canvas.TTkCanvas.updateSize">updateSize</a></code></li>

25
TTkCore/cfg.html

@ -52,9 +52,13 @@
from TermTk.TTkCore.constant import TTkK
class TTkCfg:
version=&#34;__VERSION__&#34;
name=&#34;__NAME__&#34;
color_depth: int = TTkK.DEP_24
maxFps = 35
doubleBuffer = True
scrollDelta = 5
theme = None
@ -83,9 +87,13 @@ class TTkGlbl:
<span>Expand source code</span>
</summary>
<pre><code class="python">class TTkCfg:
version=&#34;__VERSION__&#34;
name=&#34;__NAME__&#34;
color_depth: int = TTkK.DEP_24
maxFps = 35
doubleBuffer = True
scrollDelta = 5
theme = None</code></pre>
@ -96,10 +104,18 @@ class TTkGlbl:
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.cfg.TTkCfg.doubleBuffer"><code class="name">var <span class="ident">doubleBuffer</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.cfg.TTkCfg.maxFps"><code class="name">var <span class="ident">maxFps</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.cfg.TTkCfg.name"><code class="name">var <span class="ident">name</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.cfg.TTkCfg.scrollDelta"><code class="name">var <span class="ident">scrollDelta</span></code></dt>
<dd>
<div class="desc"></div>
@ -108,6 +124,10 @@ class TTkGlbl:
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.cfg.TTkCfg.version"><code class="name">var <span class="ident">version</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
</dd>
<dt id="TermTk.TTkCore.cfg.TTkGlbl"><code class="flex name class">
@ -153,11 +173,14 @@ class TTkGlbl:
<ul>
<li>
<h4><code><a title="TermTk.TTkCore.cfg.TTkCfg" href="#TermTk.TTkCore.cfg.TTkCfg">TTkCfg</a></code></h4>
<ul class="">
<ul class="two-column">
<li><code><a title="TermTk.TTkCore.cfg.TTkCfg.color_depth" href="#TermTk.TTkCore.cfg.TTkCfg.color_depth">color_depth</a></code></li>
<li><code><a title="TermTk.TTkCore.cfg.TTkCfg.doubleBuffer" href="#TermTk.TTkCore.cfg.TTkCfg.doubleBuffer">doubleBuffer</a></code></li>
<li><code><a title="TermTk.TTkCore.cfg.TTkCfg.maxFps" href="#TermTk.TTkCore.cfg.TTkCfg.maxFps">maxFps</a></code></li>
<li><code><a title="TermTk.TTkCore.cfg.TTkCfg.name" href="#TermTk.TTkCore.cfg.TTkCfg.name">name</a></code></li>
<li><code><a title="TermTk.TTkCore.cfg.TTkCfg.scrollDelta" href="#TermTk.TTkCore.cfg.TTkCfg.scrollDelta">scrollDelta</a></code></li>
<li><code><a title="TermTk.TTkCore.cfg.TTkCfg.theme" href="#TermTk.TTkCore.cfg.TTkCfg.theme">theme</a></code></li>
<li><code><a title="TermTk.TTkCore.cfg.TTkCfg.version" href="#TermTk.TTkCore.cfg.TTkCfg.version">version</a></code></li>
</ul>
</li>
<li>

4
TTkCore/color.html

@ -51,8 +51,8 @@
# SOFTWARE.
from TermTk.TTkCore.log import TTkLog
from TermTk.TTkCore.cfg import *
from TermTk.TTkCore.helper import *
from TermTk.TTkCore.cfg import TTkCfg
from TermTk.TTkCore.helper import TTkHelper
# Ansi Escape Codes:
# https://conemu.github.io/en/AnsiEscapeCodes.html

67
TTkCore/constant.html

@ -92,10 +92,23 @@ class TTkConstant:
HORIZONTAL = 0x01
VERTICAL = 0x02
# Scroll Bar Policy
ScrollBarAsNeeded = 0x00
ScrollBarAlwaysOff = 0x01
ScrollBarAlwaysOn = 0x02
class ScrollBarPolicy:
ScrollBarAsNeeded = 0x00
ScrollBarAlwaysOff = 0x01
ScrollBarAlwaysOn = 0x02
ScrollBarAsNeeded = ScrollBarPolicy.ScrollBarAsNeeded
ScrollBarAlwaysOff = ScrollBarPolicy.ScrollBarAlwaysOff
ScrollBarAlwaysOn = ScrollBarPolicy.ScrollBarAlwaysOn
class CheckState:
Unchecked = 0x00
PartiallyChecked = 0x01
Checked = 0x02
Unchecked = CheckState.Unchecked
PartiallyChecked = CheckState.PartiallyChecked
Checked = CheckState.Checked
# Keys
@ -679,10 +692,23 @@ class TTkK(TTkConstant): pass</code></pre>
HORIZONTAL = 0x01
VERTICAL = 0x02
# Scroll Bar Policy
ScrollBarAsNeeded = 0x00
ScrollBarAlwaysOff = 0x01
ScrollBarAlwaysOn = 0x02
class ScrollBarPolicy:
ScrollBarAsNeeded = 0x00
ScrollBarAlwaysOff = 0x01
ScrollBarAlwaysOn = 0x02
ScrollBarAsNeeded = ScrollBarPolicy.ScrollBarAsNeeded
ScrollBarAlwaysOff = ScrollBarPolicy.ScrollBarAlwaysOff
ScrollBarAlwaysOn = ScrollBarPolicy.ScrollBarAlwaysOn
class CheckState:
Unchecked = 0x00
PartiallyChecked = 0x01
Checked = 0x02
Unchecked = CheckState.Unchecked
PartiallyChecked = CheckState.PartiallyChecked
Checked = CheckState.Checked
# Keys
@ -1227,6 +1253,14 @@ class TTkK(TTkConstant): pass</code></pre>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.CheckState"><code class="name">var <span class="ident">CheckState</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.Checked"><code class="name">var <span class="ident">Checked</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.ClickFocus"><code class="name">var <span class="ident">ClickFocus</span></code></dt>
<dd>
<div class="desc"></div>
@ -3251,6 +3285,10 @@ class TTkK(TTkConstant): pass</code></pre>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.PartiallyChecked"><code class="name">var <span class="ident">PartiallyChecked</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.Press"><code class="name">var <span class="ident">Press</span></code></dt>
<dd>
<div class="desc"></div>
@ -3291,6 +3329,10 @@ class TTkK(TTkConstant): pass</code></pre>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.ScrollBarPolicy"><code class="name">var <span class="ident">ScrollBarPolicy</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.SingleSelection"><code class="name">var <span class="ident">SingleSelection</span></code></dt>
<dd>
<div class="desc"></div>
@ -3311,6 +3353,10 @@ class TTkK(TTkConstant): pass</code></pre>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.Unchecked"><code class="name">var <span class="ident">Unchecked</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="TermTk.TTkCore.constant.TTkConstant.VERTICAL"><code class="name">var <span class="ident">VERTICAL</span></code></dt>
<dd>
<div class="desc"></div>
@ -3396,6 +3442,8 @@ class TTkK(TTkConstant): pass</code></pre>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.CENTER" href="#TermTk.TTkCore.constant.TTkConstant.CENTER">CENTER</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.CENTER_ALIGN" href="#TermTk.TTkCore.constant.TTkConstant.CENTER_ALIGN">CENTER_ALIGN</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.Character" href="#TermTk.TTkCore.constant.TTkConstant.Character">Character</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.CheckState" href="#TermTk.TTkCore.constant.TTkConstant.CheckState">CheckState</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.Checked" href="#TermTk.TTkCore.constant.TTkConstant.Checked">Checked</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.ClickFocus" href="#TermTk.TTkCore.constant.TTkConstant.ClickFocus">ClickFocus</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.ContiguousSelection" href="#TermTk.TTkCore.constant.TTkConstant.ContiguousSelection">ContiguousSelection</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.Cursor_Blinking_Bar" href="#TermTk.TTkCore.constant.TTkConstant.Cursor_Blinking_Bar">Cursor_Blinking_Bar</a></code></li>
@ -3902,6 +3950,7 @@ class TTkK(TTkConstant): pass</code></pre>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.NoEvent" href="#TermTk.TTkCore.constant.TTkConstant.NoEvent">NoEvent</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.NoFocus" href="#TermTk.TTkCore.constant.TTkConstant.NoFocus">NoFocus</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.NoSelection" href="#TermTk.TTkCore.constant.TTkConstant.NoSelection">NoSelection</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.PartiallyChecked" href="#TermTk.TTkCore.constant.TTkConstant.PartiallyChecked">PartiallyChecked</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.Press" href="#TermTk.TTkCore.constant.TTkConstant.Press">Press</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.QUIT_EVENT" href="#TermTk.TTkCore.constant.TTkConstant.QUIT_EVENT">QUIT_EVENT</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.RIGHT" href="#TermTk.TTkCore.constant.TTkConstant.RIGHT">RIGHT</a></code></li>
@ -3912,11 +3961,13 @@ class TTkK(TTkConstant): pass</code></pre>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.ScrollBarAlwaysOff" href="#TermTk.TTkCore.constant.TTkConstant.ScrollBarAlwaysOff">ScrollBarAlwaysOff</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.ScrollBarAlwaysOn" href="#TermTk.TTkCore.constant.TTkConstant.ScrollBarAlwaysOn">ScrollBarAlwaysOn</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.ScrollBarAsNeeded" href="#TermTk.TTkCore.constant.TTkConstant.ScrollBarAsNeeded">ScrollBarAsNeeded</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.ScrollBarPolicy" href="#TermTk.TTkCore.constant.TTkConstant.ScrollBarPolicy">ScrollBarPolicy</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.SingleSelection" href="#TermTk.TTkCore.constant.TTkConstant.SingleSelection">SingleSelection</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.SpecialKey" href="#TermTk.TTkCore.constant.TTkConstant.SpecialKey">SpecialKey</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.TIME_EVENT" href="#TermTk.TTkCore.constant.TTkConstant.TIME_EVENT">TIME_EVENT</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.TOP" href="#TermTk.TTkCore.constant.TTkConstant.TOP">TOP</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.TabFocus" href="#TermTk.TTkCore.constant.TTkConstant.TabFocus">TabFocus</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.Unchecked" href="#TermTk.TTkCore.constant.TTkConstant.Unchecked">Unchecked</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.VERTICAL" href="#TermTk.TTkCore.constant.TTkConstant.VERTICAL">VERTICAL</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.WHEEL_Down" href="#TermTk.TTkCore.constant.TTkConstant.WHEEL_Down">WHEEL_Down</a></code></li>
<li><code><a title="TermTk.TTkCore.constant.TTkConstant.WHEEL_Up" href="#TermTk.TTkCore.constant.TTkConstant.WHEEL_Up">WHEEL_Up</a></code></li>

592
TTkCore/filebuffer.html

@ -0,0 +1,592 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.9.2" />
<title>TermTk.TTkCore.filebuffer API documentation</title>
<meta name="description" content="" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>TermTk.TTkCore.filebuffer</code></h1>
</header>
<section id="section-intro">
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">#!/usr/bin/env python3
# MIT License
#
# Copyright (c) 2021 Eugenio Parodi &lt;ceccopierangiolieugenio AT googlemail DOT com&gt;
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the &#34;Software&#34;), 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 &#34;AS IS&#34;, 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.
import os
import re
import threading
from TermTk.TTkCore.log import TTkLog
from TermTk.TTkCore.signal import pyTTkSignal, pyTTkSlot
&#39;&#39;&#39;
w1 w3 w2 w5
Buffer |----|----|----|----| cache buffer
| \ / \
| x \
| / \ \
Pages | 0 | 2 | 1 |None| 3 |None| index to buffer
File |----|----|----|----|----|----| view as list of windows
w1 w2 w3 w4 w5 w6
&#39;&#39;&#39;
class TTkFileBuffer():
class _Page:
__slots__ = (&#39;_page&#39;, &#39;_size&#39;, &#39;_buffer&#39;)
def __init__(self, page, size):
self._page = page
self._size = size
self._buffer = [&#34;&#34;]*self._size
#TTkLog.debug(f&#34;{self._buffer}&#34;)
@property
def buffer(self):
return self._buffer
@property
def page(self):
return self._page
__slots__ = (
&#39;_indexes&#39;, &#39;_indexesMutex&#39;,
&#39;_filename&#39;, &#39;_fd&#39;,
&#39;_pages&#39;, &#39;_buffer&#39;,
&#39;_window&#39;, &#39;_numW&#39;,
&#39;_width&#39;,
#Signals
&#39;indexUpdated&#39;, &#39;indexed&#39;)
def __init__(self, filename, window, numWindows):
# Signals
self.indexUpdated = pyTTkSignal(float)
self.indexed = pyTTkSignal()
self._window = window
self._numW = numWindows
self._filename = filename
self._indexes = [0]
self._indexesMutex = threading.Lock()
self._width=0
self._buffer = [None]*self._numW
self._pages = [None]
self._fd = open(self._filename,&#39;r&#39;)
threading.Thread(target=self.createIndex).start()
def __del__(self):
self._fd.close()
def getLen(self):
return len(self._indexes)
def getWidth(self, indexes=None):
return self._width
def getLineDirect(self, line):
if line &gt;= self.getLen():
return &#34;&#34;
self._indexesMutex.acquire()
self._fd.seek(self._indexes[line])
self._indexesMutex.release()
return self._fd.readline()
def getLine(self, line):
if line &gt;= self.getLen():
return &#34;&#34;
page = line//self._window
offset = line%self._window
if self._pages[page] == None:
# Dispose of the pages to the bottom
dispose = self._buffer.pop(0)
if dispose is not None:
self._pages[dispose.page] = None
self._pages[page] = self._Page(page, self._window)
self._buffer.append(self._pages[page])
self._indexesMutex.acquire()
self._fd.seek(self._indexes[line-offset])
self._indexesMutex.release()
buffer = self._pages[page].buffer
for i in range(self._window):
buffer[i] = self._fd.readline()
#self._width = max(self._width,len(buffer[i]))
else:
# Push the page to the top of the buffer
i = self._buffer.index(self._pages[page])
p = self._buffer.pop(i)
self._buffer.append(p)
return self._pages[page].buffer[offset]
def getSlice(self, line, length):
ret = []
for i in range(line, line+length):
ret.append(self.getLine(i))
return ret
def createIndex(self):
# TTkLog.debug(f&#34;Start Indexing {self._filename}&#34;)
indexes = []
lines = 0
offset = 0
width = 0
fileSize = os.stat(self._filename).st_size
chunkSize = 0x1000000 # ~16M
with open(self._filename,&#39;r&#39;) as infile:
while (chunk:=infile.read(chunkSize)):
start = 0
while (index:=chunk.find(&#39;\n&#39;,start))!=-1:
indexes.append(index+offset+1)
start = index+1
self._indexesMutex.acquire()
self._indexes += indexes
self._pages += [None]*(1+(self.getLen()//self._window)-(len(self._pages)))
self._indexesMutex.release()
indexes = []
offset+=len(chunk)
self.indexUpdated.emit(offset/fileSize)
# TTkLog.debug(f&#34;{self._filename} {offset/fileSize} ...&#34;)
self._width = max([ (self._indexes[i+1]-self._indexes[i]) for i in range(len(self._indexes)-1) ])
self.indexUpdated.emit(1.0)
self.indexed.emit()
# TTkLog.debug(f&#34;{self._filename} {offset/fileSize} END&#34;)
def searchRe(self, regex):
indexes = []
id = 0
rr = re.compile(regex)
with open(self._filename,&#39;r&#39;) as infile:
for line in infile:
ma = rr.match(line)
if ma:
indexes.append(id)
id += 1
return indexes
def search(self, txt):
indexes = []
id = 0
with open(self._filename,&#39;r&#39;) as infile:
for line in infile:
if txt in line:
indexes.append(id)
id += 1
return indexes</code></pre>
</details>
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer"><code class="flex name class">
<span>class <span class="ident">TTkFileBuffer</span></span>
<span>(</span><span>filename, window, numWindows)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class TTkFileBuffer():
class _Page:
__slots__ = (&#39;_page&#39;, &#39;_size&#39;, &#39;_buffer&#39;)
def __init__(self, page, size):
self._page = page
self._size = size
self._buffer = [&#34;&#34;]*self._size
#TTkLog.debug(f&#34;{self._buffer}&#34;)
@property
def buffer(self):
return self._buffer
@property
def page(self):
return self._page
__slots__ = (
&#39;_indexes&#39;, &#39;_indexesMutex&#39;,
&#39;_filename&#39;, &#39;_fd&#39;,
&#39;_pages&#39;, &#39;_buffer&#39;,
&#39;_window&#39;, &#39;_numW&#39;,
&#39;_width&#39;,
#Signals
&#39;indexUpdated&#39;, &#39;indexed&#39;)
def __init__(self, filename, window, numWindows):
# Signals
self.indexUpdated = pyTTkSignal(float)
self.indexed = pyTTkSignal()
self._window = window
self._numW = numWindows
self._filename = filename
self._indexes = [0]
self._indexesMutex = threading.Lock()
self._width=0
self._buffer = [None]*self._numW
self._pages = [None]
self._fd = open(self._filename,&#39;r&#39;)
threading.Thread(target=self.createIndex).start()
def __del__(self):
self._fd.close()
def getLen(self):
return len(self._indexes)
def getWidth(self, indexes=None):
return self._width
def getLineDirect(self, line):
if line &gt;= self.getLen():
return &#34;&#34;
self._indexesMutex.acquire()
self._fd.seek(self._indexes[line])
self._indexesMutex.release()
return self._fd.readline()
def getLine(self, line):
if line &gt;= self.getLen():
return &#34;&#34;
page = line//self._window
offset = line%self._window
if self._pages[page] == None:
# Dispose of the pages to the bottom
dispose = self._buffer.pop(0)
if dispose is not None:
self._pages[dispose.page] = None
self._pages[page] = self._Page(page, self._window)
self._buffer.append(self._pages[page])
self._indexesMutex.acquire()
self._fd.seek(self._indexes[line-offset])
self._indexesMutex.release()
buffer = self._pages[page].buffer
for i in range(self._window):
buffer[i] = self._fd.readline()
#self._width = max(self._width,len(buffer[i]))
else:
# Push the page to the top of the buffer
i = self._buffer.index(self._pages[page])
p = self._buffer.pop(i)
self._buffer.append(p)
return self._pages[page].buffer[offset]
def getSlice(self, line, length):
ret = []
for i in range(line, line+length):
ret.append(self.getLine(i))
return ret
def createIndex(self):
# TTkLog.debug(f&#34;Start Indexing {self._filename}&#34;)
indexes = []
lines = 0
offset = 0
width = 0
fileSize = os.stat(self._filename).st_size
chunkSize = 0x1000000 # ~16M
with open(self._filename,&#39;r&#39;) as infile:
while (chunk:=infile.read(chunkSize)):
start = 0
while (index:=chunk.find(&#39;\n&#39;,start))!=-1:
indexes.append(index+offset+1)
start = index+1
self._indexesMutex.acquire()
self._indexes += indexes
self._pages += [None]*(1+(self.getLen()//self._window)-(len(self._pages)))
self._indexesMutex.release()
indexes = []
offset+=len(chunk)
self.indexUpdated.emit(offset/fileSize)
# TTkLog.debug(f&#34;{self._filename} {offset/fileSize} ...&#34;)
self._width = max([ (self._indexes[i+1]-self._indexes[i]) for i in range(len(self._indexes)-1) ])
self.indexUpdated.emit(1.0)
self.indexed.emit()
# TTkLog.debug(f&#34;{self._filename} {offset/fileSize} END&#34;)
def searchRe(self, regex):
indexes = []
id = 0
rr = re.compile(regex)
with open(self._filename,&#39;r&#39;) as infile:
for line in infile:
ma = rr.match(line)
if ma:
indexes.append(id)
id += 1
return indexes
def search(self, txt):
indexes = []
id = 0
with open(self._filename,&#39;r&#39;) as infile:
for line in infile:
if txt in line:
indexes.append(id)
id += 1
return indexes</code></pre>
</details>
<h3>Instance variables</h3>
<dl>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.indexUpdated"><code class="name">var <span class="ident">indexUpdated</span></code></dt>
<dd>
<div class="desc"><p>Return an attribute of instance, which is of type owner.</p></div>
</dd>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.indexed"><code class="name">var <span class="ident">indexed</span></code></dt>
<dd>
<div class="desc"><p>Return an attribute of instance, which is of type owner.</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.createIndex"><code class="name flex">
<span>def <span class="ident">createIndex</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def createIndex(self):
# TTkLog.debug(f&#34;Start Indexing {self._filename}&#34;)
indexes = []
lines = 0
offset = 0
width = 0
fileSize = os.stat(self._filename).st_size
chunkSize = 0x1000000 # ~16M
with open(self._filename,&#39;r&#39;) as infile:
while (chunk:=infile.read(chunkSize)):
start = 0
while (index:=chunk.find(&#39;\n&#39;,start))!=-1:
indexes.append(index+offset+1)
start = index+1
self._indexesMutex.acquire()
self._indexes += indexes
self._pages += [None]*(1+(self.getLen()//self._window)-(len(self._pages)))
self._indexesMutex.release()
indexes = []
offset+=len(chunk)
self.indexUpdated.emit(offset/fileSize)
# TTkLog.debug(f&#34;{self._filename} {offset/fileSize} ...&#34;)
self._width = max([ (self._indexes[i+1]-self._indexes[i]) for i in range(len(self._indexes)-1) ])
self.indexUpdated.emit(1.0)
self.indexed.emit()</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.getLen"><code class="name flex">
<span>def <span class="ident">getLen</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def getLen(self):
return len(self._indexes)</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.getLine"><code class="name flex">
<span>def <span class="ident">getLine</span></span>(<span>self, line)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def getLine(self, line):
if line &gt;= self.getLen():
return &#34;&#34;
page = line//self._window
offset = line%self._window
if self._pages[page] == None:
# Dispose of the pages to the bottom
dispose = self._buffer.pop(0)
if dispose is not None:
self._pages[dispose.page] = None
self._pages[page] = self._Page(page, self._window)
self._buffer.append(self._pages[page])
self._indexesMutex.acquire()
self._fd.seek(self._indexes[line-offset])
self._indexesMutex.release()
buffer = self._pages[page].buffer
for i in range(self._window):
buffer[i] = self._fd.readline()
#self._width = max(self._width,len(buffer[i]))
else:
# Push the page to the top of the buffer
i = self._buffer.index(self._pages[page])
p = self._buffer.pop(i)
self._buffer.append(p)
return self._pages[page].buffer[offset]</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.getLineDirect"><code class="name flex">
<span>def <span class="ident">getLineDirect</span></span>(<span>self, line)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def getLineDirect(self, line):
if line &gt;= self.getLen():
return &#34;&#34;
self._indexesMutex.acquire()
self._fd.seek(self._indexes[line])
self._indexesMutex.release()
return self._fd.readline()</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.getSlice"><code class="name flex">
<span>def <span class="ident">getSlice</span></span>(<span>self, line, length)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def getSlice(self, line, length):
ret = []
for i in range(line, line+length):
ret.append(self.getLine(i))
return ret</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.getWidth"><code class="name flex">
<span>def <span class="ident">getWidth</span></span>(<span>self, indexes=None)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def getWidth(self, indexes=None):
return self._width</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.search"><code class="name flex">
<span>def <span class="ident">search</span></span>(<span>self, txt)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def search(self, txt):
indexes = []
id = 0
with open(self._filename,&#39;r&#39;) as infile:
for line in infile:
if txt in line:
indexes.append(id)
id += 1
return indexes</code></pre>
</details>
</dd>
<dt id="TermTk.TTkCore.filebuffer.TTkFileBuffer.searchRe"><code class="name flex">
<span>def <span class="ident">searchRe</span></span>(<span>self, regex)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def searchRe(self, regex):
indexes = []
id = 0
rr = re.compile(regex)
with open(self._filename,&#39;r&#39;) as infile:
for line in infile:
ma = rr.match(line)
if ma:
indexes.append(id)
id += 1
return indexes</code></pre>
</details>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="TermTk.TTkCore" href="index.html">TermTk.TTkCore</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer">TTkFileBuffer</a></code></h4>
<ul class="two-column">
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.createIndex" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.createIndex">createIndex</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.getLen" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.getLen">getLen</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.getLine" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.getLine">getLine</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.getLineDirect" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.getLineDirect">getLineDirect</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.getSlice" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.getSlice">getSlice</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.getWidth" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.getWidth">getWidth</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.indexUpdated" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.indexUpdated">indexUpdated</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.indexed" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.indexed">indexed</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.search" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.search">search</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer.TTkFileBuffer.searchRe" href="#TermTk.TTkCore.filebuffer.TTkFileBuffer.searchRe">searchRe</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc"><cite>pdoc</cite> 0.9.2</a>.</p>
</footer>
</body>
</html>

27
TTkCore/helper.html

@ -52,8 +52,8 @@
import TermTk.libbpytop as lbt
from TermTk.TTkCore.log import TTkLog
from TermTk.TTkCore.cfg import *
from TermTk.TTkCore.constant import *
from TermTk.TTkCore.cfg import TTkCfg, TTkGlbl
from TermTk.TTkCore.constant import TTkK
class TTkHelper:
# TODO: Add Setter/Getter
@ -113,6 +113,7 @@ class TTkHelper:
@staticmethod
def registerRootCanvas(canvas):
TTkHelper._rootCanvas = canvas
TTkHelper._rootCanvas.enableDoubleBuffer()
TTkHelper._updateBuffer = []
TTkHelper._updateWidget = []
@ -152,6 +153,7 @@ class TTkHelper:
&#39;&#39;&#39;
if TTkHelper._rootCanvas is None:
return
# Build a list of buffers to be repainted
updateBuffers = TTkHelper._updateBuffer.copy()
updateWidgets = TTkHelper._updateWidget.copy()
@ -206,13 +208,15 @@ class TTkHelper:
if pushToTerminal:
if TTkHelper._cursor:
lbt.Term.hideCursor()
TTkHelper._rootCanvas.pushToTerminal(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
if TTkCfg.doubleBuffer:
TTkHelper._rootCanvas.pushToTerminalBuffered(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
else:
TTkHelper._rootCanvas.pushToTerminal(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
if TTkHelper._cursor:
x,y = TTkHelper._cursorPos
lbt.Term.push(lbt.Mv.to(y+1,x+1))
lbt.Term.showCursor(TTkHelper._cursorType)
@staticmethod
def widgetDepth(widget) -&gt; int:
if widget is None:
@ -346,6 +350,7 @@ class TTkHelper:
@staticmethod
def registerRootCanvas(canvas):
TTkHelper._rootCanvas = canvas
TTkHelper._rootCanvas.enableDoubleBuffer()
TTkHelper._updateBuffer = []
TTkHelper._updateWidget = []
@ -385,6 +390,7 @@ class TTkHelper:
&#39;&#39;&#39;
if TTkHelper._rootCanvas is None:
return
# Build a list of buffers to be repainted
updateBuffers = TTkHelper._updateBuffer.copy()
updateWidgets = TTkHelper._updateWidget.copy()
@ -439,13 +445,15 @@ class TTkHelper:
if pushToTerminal:
if TTkHelper._cursor:
lbt.Term.hideCursor()
TTkHelper._rootCanvas.pushToTerminal(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
if TTkCfg.doubleBuffer:
TTkHelper._rootCanvas.pushToTerminalBuffered(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
else:
TTkHelper._rootCanvas.pushToTerminal(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
if TTkHelper._cursor:
x,y = TTkHelper._cursorPos
lbt.Term.push(lbt.Mv.to(y+1,x+1))
lbt.Term.showCursor(TTkHelper._cursorType)
@staticmethod
def widgetDepth(widget) -&gt; int:
if widget is None:
@ -760,6 +768,7 @@ def paintAll():
&#39;&#39;&#39;
if TTkHelper._rootCanvas is None:
return
# Build a list of buffers to be repainted
updateBuffers = TTkHelper._updateBuffer.copy()
updateWidgets = TTkHelper._updateWidget.copy()
@ -814,7 +823,10 @@ def paintAll():
if pushToTerminal:
if TTkHelper._cursor:
lbt.Term.hideCursor()
TTkHelper._rootCanvas.pushToTerminal(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
if TTkCfg.doubleBuffer:
TTkHelper._rootCanvas.pushToTerminalBuffered(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
else:
TTkHelper._rootCanvas.pushToTerminal(0, 0, TTkGlbl.term_w, TTkGlbl.term_h)
if TTkHelper._cursor:
x,y = TTkHelper._cursorPos
lbt.Term.push(lbt.Mv.to(y+1,x+1))
@ -833,6 +845,7 @@ def paintAll():
<pre><code class="python">@staticmethod
def registerRootCanvas(canvas):
TTkHelper._rootCanvas = canvas
TTkHelper._rootCanvas.enableDoubleBuffer()
TTkHelper._updateBuffer = []
TTkHelper._updateWidget = []</code></pre>
</details>

5
TTkCore/index.html

@ -57,6 +57,10 @@ from .timer import *</code></pre>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="TermTk.TTkCore.filebuffer" href="filebuffer.html">TermTk.TTkCore.filebuffer</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="TermTk.TTkCore.helper" href="helper.html">TermTk.TTkCore.helper</a></code></dt>
<dd>
<div class="desc"></div>
@ -104,6 +108,7 @@ from .timer import *</code></pre>
<li><code><a title="TermTk.TTkCore.color" href="color.html">TermTk.TTkCore.color</a></code></li>
<li><code><a title="TermTk.TTkCore.constant" href="constant.html">TermTk.TTkCore.constant</a></code></li>
<li><code><a title="TermTk.TTkCore.draw" href="draw.html">TermTk.TTkCore.draw</a></code></li>
<li><code><a title="TermTk.TTkCore.filebuffer" href="filebuffer.html">TermTk.TTkCore.filebuffer</a></code></li>
<li><code><a title="TermTk.TTkCore.helper" href="helper.html">TermTk.TTkCore.helper</a></code></li>
<li><code><a title="TermTk.TTkCore.log" href="log.html">TermTk.TTkCore.log</a></code></li>
<li><code><a title="TermTk.TTkCore.signal" href="signal.html">TermTk.TTkCore.signal</a></code></li>

58
TTkCore/ttk.html

@ -80,6 +80,9 @@ class TTk(TTkWidget):
self.mouse_events = queue.Queue()
self.screen_events = queue.Queue()
self.setFocusPolicy(TTkK.ClickFocus)
self.hide()
size = os.get_terminal_size()
self.setGeometry(0,0,size.columns,size.lines)
TTkCfg.theme = TTkTheme()
TTkHelper.registerRootCanvas(self._canvas)
@ -95,7 +98,18 @@ class TTk(TTkWidget):
self.time = curtime
def mainloop(self):
TTkLog.debug(&#34;Starting Main Loop...&#34;)
TTkLog.debug( &#34;&#34; )
TTkLog.debug( &#34; ████████╗ ████████╗ &#34; )
TTkLog.debug( &#34; ╚══██╔══╝ ╚══██╔══╝ &#34; )
TTkLog.debug( &#34; ██║ ▄▄ ▄ ▄▄ ▄▄▖▄▖ ██║ █ ▗▖ &#34; )
TTkLog.debug( &#34; ▞▀▚ ▖▗ ██║ █▄▄█ █▀▘ █ █ █ ██║ █▟▘ &#34; )
TTkLog.debug( &#34; ▙▄▞▐▄▟ ██║ ▀▄▄▖ █ █ ▝ █ ██║ █ ▀▄ &#34; )
TTkLog.debug( &#34; ▌ ▐ ╚═╝ ╚═╝ &#34; )
TTkLog.debug( &#34; ▚▄▄▘ &#34; )
TTkLog.debug( &#34;&#34; )
TTkLog.debug(f&#34; Version: {TTkCfg.version}&#34; )
TTkLog.debug( &#34;&#34; )
TTkLog.debug( &#34;Starting Main Loop...&#34; )
# Register events
try:
signal.signal(signal.SIGTSTP, self._SIGSTOP) # Ctrl-Z
@ -154,13 +168,15 @@ class TTk(TTkWidget):
TTkHelper.execShortcut(kevt.key)
pass
elif evt is TTkK.TIME_EVENT:
size = os.get_terminal_size()
self.setGeometry(0,0,size.columns,size.lines)
TTkHelper.paintAll()
self._timer.start(1/TTkCfg.maxFps)
self._fps()
pass
elif evt is TTkK.SCREEN_EVENT:
self.setGeometry(0,0,TTkGlbl.term_w,TTkGlbl.term_h)
#TTkLog.info(f&#34;Resize: w:{TTkGlbl.term_w}, h:{TTkGlbl.term_h}&#34;)
TTkLog.info(f&#34;Resize: w:{TTkGlbl.term_w}, h:{TTkGlbl.term_h}&#34;)
elif evt is TTkK.QUIT_EVENT:
TTkLog.debug(f&#34;Quit.&#34;)
break
@ -311,6 +327,9 @@ class TTk(TTkWidget):
self.mouse_events = queue.Queue()
self.screen_events = queue.Queue()
self.setFocusPolicy(TTkK.ClickFocus)
self.hide()
size = os.get_terminal_size()
self.setGeometry(0,0,size.columns,size.lines)
TTkCfg.theme = TTkTheme()
TTkHelper.registerRootCanvas(self._canvas)
@ -326,7 +345,18 @@ class TTk(TTkWidget):
self.time = curtime
def mainloop(self):
TTkLog.debug(&#34;Starting Main Loop...&#34;)
TTkLog.debug( &#34;&#34; )
TTkLog.debug( &#34; ████████╗ ████████╗ &#34; )
TTkLog.debug( &#34; ╚══██╔══╝ ╚══██╔══╝ &#34; )
TTkLog.debug( &#34; ██║ ▄▄ ▄ ▄▄ ▄▄▖▄▖ ██║ █ ▗▖ &#34; )
TTkLog.debug( &#34; ▞▀▚ ▖▗ ██║ █▄▄█ █▀▘ █ █ █ ██║ █▟▘ &#34; )
TTkLog.debug( &#34; ▙▄▞▐▄▟ ██║ ▀▄▄▖ █ █ ▝ █ ██║ █ ▀▄ &#34; )
TTkLog.debug( &#34; ▌ ▐ ╚═╝ ╚═╝ &#34; )
TTkLog.debug( &#34; ▚▄▄▘ &#34; )
TTkLog.debug( &#34;&#34; )
TTkLog.debug(f&#34; Version: {TTkCfg.version}&#34; )
TTkLog.debug( &#34;&#34; )
TTkLog.debug( &#34;Starting Main Loop...&#34; )
# Register events
try:
signal.signal(signal.SIGTSTP, self._SIGSTOP) # Ctrl-Z
@ -385,13 +415,15 @@ class TTk(TTkWidget):
TTkHelper.execShortcut(kevt.key)
pass
elif evt is TTkK.TIME_EVENT:
size = os.get_terminal_size()
self.setGeometry(0,0,size.columns,size.lines)
TTkHelper.paintAll()
self._timer.start(1/TTkCfg.maxFps)
self._fps()
pass
elif evt is TTkK.SCREEN_EVENT:
self.setGeometry(0,0,TTkGlbl.term_w,TTkGlbl.term_h)
#TTkLog.info(f&#34;Resize: w:{TTkGlbl.term_w}, h:{TTkGlbl.term_h}&#34;)
TTkLog.info(f&#34;Resize: w:{TTkGlbl.term_w}, h:{TTkGlbl.term_h}&#34;)
elif evt is TTkK.QUIT_EVENT:
TTkLog.debug(f&#34;Quit.&#34;)
break
@ -498,7 +530,18 @@ class TTk(TTkWidget):
<span>Expand source code</span>
</summary>
<pre><code class="python">def mainloop(self):
TTkLog.debug(&#34;Starting Main Loop...&#34;)
TTkLog.debug( &#34;&#34; )
TTkLog.debug( &#34; ████████╗ ████████╗ &#34; )
TTkLog.debug( &#34; ╚══██╔══╝ ╚══██╔══╝ &#34; )
TTkLog.debug( &#34; ██║ ▄▄ ▄ ▄▄ ▄▄▖▄▖ ██║ █ ▗▖ &#34; )
TTkLog.debug( &#34; ▞▀▚ ▖▗ ██║ █▄▄█ █▀▘ █ █ █ ██║ █▟▘ &#34; )
TTkLog.debug( &#34; ▙▄▞▐▄▟ ██║ ▀▄▄▖ █ █ ▝ █ ██║ █ ▀▄ &#34; )
TTkLog.debug( &#34; ▌ ▐ ╚═╝ ╚═╝ &#34; )
TTkLog.debug( &#34; ▚▄▄▘ &#34; )
TTkLog.debug( &#34;&#34; )
TTkLog.debug(f&#34; Version: {TTkCfg.version}&#34; )
TTkLog.debug( &#34;&#34; )
TTkLog.debug( &#34;Starting Main Loop...&#34; )
# Register events
try:
signal.signal(signal.SIGTSTP, self._SIGSTOP) # Ctrl-Z
@ -557,13 +600,15 @@ class TTk(TTkWidget):
TTkHelper.execShortcut(kevt.key)
pass
elif evt is TTkK.TIME_EVENT:
size = os.get_terminal_size()
self.setGeometry(0,0,size.columns,size.lines)
TTkHelper.paintAll()
self._timer.start(1/TTkCfg.maxFps)
self._fps()
pass
elif evt is TTkK.SCREEN_EVENT:
self.setGeometry(0,0,TTkGlbl.term_w,TTkGlbl.term_h)
#TTkLog.info(f&#34;Resize: w:{TTkGlbl.term_w}, h:{TTkGlbl.term_h}&#34;)
TTkLog.info(f&#34;Resize: w:{TTkGlbl.term_w}, h:{TTkGlbl.term_h}&#34;)
elif evt is TTkK.QUIT_EVENT:
TTkLog.debug(f&#34;Quit.&#34;)
break
@ -610,7 +655,6 @@ class TTk(TTkWidget):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkTestWidgets/logviewer.html

@ -242,7 +242,6 @@ class TTkLogViewer(TTkAbstractScrollArea):
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.moveEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintChildCanvas" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintNotifyParent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.removeWidget" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resize" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resizeEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkTestWidgets/testwidget.html

@ -259,7 +259,6 @@ class TTkTestWidget(TTkFrame):
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.moveEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintChildCanvas" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintNotifyParent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.removeWidget" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resize" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resizeEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkTestWidgets/testwidgetsizes.html

@ -208,7 +208,6 @@ class TTkTestWidgetSizes(TTkFrame):
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.moveEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintChildCanvas" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintNotifyParent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.removeWidget" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resize" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resizeEvent" href="../TTkWidgets/widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/button.html

@ -323,7 +323,6 @@ def text(self):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

48
TTkWidgets/checkbox.html

@ -57,18 +57,24 @@ from TermTk.TTkCore.color import TTkColor
from TermTk.TTkWidgets.widget import *
class TTkCheckbox(TTkWidget):
__slots__ = (&#39;_checked&#39;, &#39;clicked&#39;)
__slots__ = (&#39;_checked&#39;, &#39;clicked&#39;, &#39;stateChanged&#39;)
def __init__(self, *args, **kwargs):
TTkWidget.__init__(self, *args, **kwargs)
self._name = kwargs.get(&#39;name&#39; , &#39;TTkCheckbox&#39; )
# Define Signals
# self.cehcked = pyTTkSignal()
self.stateChanged = pyTTkSignal(int)
self.clicked = pyTTkSignal(bool)
self._checked = kwargs.get(&#39;checked&#39;, False )
self.setMinimumSize(3, 1)
self.setMaximumHeight(1)
self.setFocusPolicy(TTkK.ClickFocus + TTkK.TabFocus)
def checkState(self):
if self._checked:
return TTkK.Checked
else:
return TTkK.Unchecked
def paintEvent(self):
if self.hasFocus():
borderColor = TTkCfg.theme.checkboxBorderColorFocus
@ -86,6 +92,7 @@ class TTkCheckbox(TTkWidget):
def mousePressEvent(self, evt):
self._checked = not self._checked
self.clicked.emit(self._checked)
self.stateChanged.emit(self.checkState())
self.update()
return True</code></pre>
</details>
@ -169,18 +176,24 @@ class TTkCheckbox(TTkWidget):
<span>Expand source code</span>
</summary>
<pre><code class="python">class TTkCheckbox(TTkWidget):
__slots__ = (&#39;_checked&#39;, &#39;clicked&#39;)
__slots__ = (&#39;_checked&#39;, &#39;clicked&#39;, &#39;stateChanged&#39;)
def __init__(self, *args, **kwargs):
TTkWidget.__init__(self, *args, **kwargs)
self._name = kwargs.get(&#39;name&#39; , &#39;TTkCheckbox&#39; )
# Define Signals
# self.cehcked = pyTTkSignal()
self.stateChanged = pyTTkSignal(int)
self.clicked = pyTTkSignal(bool)
self._checked = kwargs.get(&#39;checked&#39;, False )
self.setMinimumSize(3, 1)
self.setMaximumHeight(1)
self.setFocusPolicy(TTkK.ClickFocus + TTkK.TabFocus)
def checkState(self):
if self._checked:
return TTkK.Checked
else:
return TTkK.Unchecked
def paintEvent(self):
if self.hasFocus():
borderColor = TTkCfg.theme.checkboxBorderColorFocus
@ -198,6 +211,7 @@ class TTkCheckbox(TTkWidget):
def mousePressEvent(self, evt):
self._checked = not self._checked
self.clicked.emit(self._checked)
self.stateChanged.emit(self.checkState())
self.update()
return True</code></pre>
</details>
@ -217,6 +231,29 @@ class TTkCheckbox(TTkWidget):
<dd>
<div class="desc"><p>Return an attribute of instance, which is of type owner.</p></div>
</dd>
<dt id="TermTk.TTkWidgets.checkbox.TTkCheckbox.stateChanged"><code class="name">var <span class="ident">stateChanged</span></code></dt>
<dd>
<div class="desc"><p>Return an attribute of instance, which is of type owner.</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="TermTk.TTkWidgets.checkbox.TTkCheckbox.checkState"><code class="name flex">
<span>def <span class="ident">checkState</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def checkState(self):
if self._checked:
return TTkK.Checked
else:
return TTkK.Unchecked</code></pre>
</details>
</dd>
</dl>
<h3>Inherited members</h3>
<ul class="hlist">
@ -239,7 +276,6 @@ class TTkCheckbox(TTkWidget):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>
@ -269,7 +305,9 @@ class TTkCheckbox(TTkWidget):
<li>
<h4><code><a title="TermTk.TTkWidgets.checkbox.TTkCheckbox" href="#TermTk.TTkWidgets.checkbox.TTkCheckbox">TTkCheckbox</a></code></h4>
<ul class="">
<li><code><a title="TermTk.TTkWidgets.checkbox.TTkCheckbox.checkState" href="#TermTk.TTkWidgets.checkbox.TTkCheckbox.checkState">checkState</a></code></li>
<li><code><a title="TermTk.TTkWidgets.checkbox.TTkCheckbox.clicked" href="#TermTk.TTkWidgets.checkbox.TTkCheckbox.clicked">clicked</a></code></li>
<li><code><a title="TermTk.TTkWidgets.checkbox.TTkCheckbox.stateChanged" href="#TermTk.TTkWidgets.checkbox.TTkCheckbox.stateChanged">stateChanged</a></code></li>
</ul>
</li>
</ul>

1
TTkWidgets/combobox.html

@ -264,7 +264,6 @@ class TTkComboBox(TTkWidget):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/frame.html

@ -326,7 +326,6 @@ class TTkFrame(TTkWidget):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/graph.html

@ -277,7 +277,6 @@ class TTkGraph(TTkWidget, TColor):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/label.html

@ -248,7 +248,6 @@ class TTkLabel(TTkWidget, TColor, TText):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

97
TTkWidgets/lineedit.html

@ -65,8 +65,15 @@ from TermTk.TTkWidgets.widget import *
&lt;--&gt; Offset
&#39;&#39;&#39;
class TTkLineEdit(TTkWidget):
__slots__ = (&#39;_text&#39;, &#39;_cursorPos&#39;, &#39;_offset&#39;, &#39;_replace&#39;, &#39;_inputType&#39;)
__slots__ = (
&#39;_text&#39;, &#39;_cursorPos&#39;, &#39;_offset&#39;, &#39;_replace&#39;, &#39;_inputType&#39;,
# Signals
&#39;returnPressed&#39;, &#39;textChanged&#39;, &#39;textEdited&#39; )
def __init__(self, *args, **kwargs):
# Signals
self.returnPressed = pyTTkSignal()
self.textChanged = pyTTkSignal(str)
self.textEdited = pyTTkSignal(str)
TTkWidget.__init__(self, *args, **kwargs)
self._name = kwargs.get(&#39;name&#39; , &#39;TTkLineEdit&#39; )
self._inputType = kwargs.get(&#39;inputType&#39; , TTkK.Input_Text )
@ -80,6 +87,14 @@ class TTkLineEdit(TTkWidget):
self.setMinimumSize(10,1)
self.setFocusPolicy(TTkK.ClickFocus + TTkK.TabFocus)
def setText(self, text):
if text != self._text:
self.textChanged.emit(text)
self._text = text
def text(self):
return self._text
def _pushCursor(self):
TTkHelper.moveCursor(self,self._cursorPos-self._offset,0)
if self._replace:
@ -142,6 +157,9 @@ class TTkLineEdit(TTkWidget):
elif self._cursorPos - self._offset &lt; 0:
self._offset = self._cursorPos
self._pushCursor()
if evt.key == TTkK.Key_Enter:
self.returnPressed.emit()
else:
if self._inputType &amp; TTkK.Input_Number and \
not evt.key.isdigit():
@ -154,12 +172,13 @@ class TTkLineEdit(TTkWidget):
post = text[self._cursorPos:]
text = pre + evt.key + post
self._text = text
self.setText(text)
self._cursorPos += 1
# Scroll to the right if reached the edge
if self._cursorPos - self._offset &gt; w:
self._offset += 1
self._pushCursor()
self.textEdited.emit(self._text)
def focusInEvent(self):
self._pushCursor()
@ -248,8 +267,15 @@ class TTkLineEdit(TTkWidget):
<span>Expand source code</span>
</summary>
<pre><code class="python">class TTkLineEdit(TTkWidget):
__slots__ = (&#39;_text&#39;, &#39;_cursorPos&#39;, &#39;_offset&#39;, &#39;_replace&#39;, &#39;_inputType&#39;)
__slots__ = (
&#39;_text&#39;, &#39;_cursorPos&#39;, &#39;_offset&#39;, &#39;_replace&#39;, &#39;_inputType&#39;,
# Signals
&#39;returnPressed&#39;, &#39;textChanged&#39;, &#39;textEdited&#39; )
def __init__(self, *args, **kwargs):
# Signals
self.returnPressed = pyTTkSignal()
self.textChanged = pyTTkSignal(str)
self.textEdited = pyTTkSignal(str)
TTkWidget.__init__(self, *args, **kwargs)
self._name = kwargs.get(&#39;name&#39; , &#39;TTkLineEdit&#39; )
self._inputType = kwargs.get(&#39;inputType&#39; , TTkK.Input_Text )
@ -263,6 +289,14 @@ class TTkLineEdit(TTkWidget):
self.setMinimumSize(10,1)
self.setFocusPolicy(TTkK.ClickFocus + TTkK.TabFocus)
def setText(self, text):
if text != self._text:
self.textChanged.emit(text)
self._text = text
def text(self):
return self._text
def _pushCursor(self):
TTkHelper.moveCursor(self,self._cursorPos-self._offset,0)
if self._replace:
@ -325,6 +359,9 @@ class TTkLineEdit(TTkWidget):
elif self._cursorPos - self._offset &lt; 0:
self._offset = self._cursorPos
self._pushCursor()
if evt.key == TTkK.Key_Enter:
self.returnPressed.emit()
else:
if self._inputType &amp; TTkK.Input_Number and \
not evt.key.isdigit():
@ -337,12 +374,13 @@ class TTkLineEdit(TTkWidget):
post = text[self._cursorPos:]
text = pre + evt.key + post
self._text = text
self.setText(text)
self._cursorPos += 1
# Scroll to the right if reached the edge
if self._cursorPos - self._offset &gt; w:
self._offset += 1
self._pushCursor()
self.textEdited.emit(self._text)
def focusInEvent(self):
self._pushCursor()
@ -357,6 +395,21 @@ class TTkLineEdit(TTkWidget):
<li><a title="TermTk.TTkTemplates.mouseevents.TMouseEvents" href="../TTkTemplates/mouseevents.html#TermTk.TTkTemplates.mouseevents.TMouseEvents">TMouseEvents</a></li>
<li><a title="TermTk.TTkTemplates.keyevents.TKeyEvents" href="../TTkTemplates/keyevents.html#TermTk.TTkTemplates.keyevents.TKeyEvents">TKeyEvents</a></li>
</ul>
<h3>Instance variables</h3>
<dl>
<dt id="TermTk.TTkWidgets.lineedit.TTkLineEdit.returnPressed"><code class="name">var <span class="ident">returnPressed</span></code></dt>
<dd>
<div class="desc"><p>Return an attribute of instance, which is of type owner.</p></div>
</dd>
<dt id="TermTk.TTkWidgets.lineedit.TTkLineEdit.textChanged"><code class="name">var <span class="ident">textChanged</span></code></dt>
<dd>
<div class="desc"><p>Return an attribute of instance, which is of type owner.</p></div>
</dd>
<dt id="TermTk.TTkWidgets.lineedit.TTkLineEdit.textEdited"><code class="name">var <span class="ident">textEdited</span></code></dt>
<dd>
<div class="desc"><p>Return an attribute of instance, which is of type owner.</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="TermTk.TTkWidgets.lineedit.TTkLineEdit.focusInEvent"><code class="name flex">
@ -386,6 +439,34 @@ class TTkLineEdit(TTkWidget):
self.update()</code></pre>
</details>
</dd>
<dt id="TermTk.TTkWidgets.lineedit.TTkLineEdit.setText"><code class="name flex">
<span>def <span class="ident">setText</span></span>(<span>self, text)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def setText(self, text):
if text != self._text:
self.textChanged.emit(text)
self._text = text</code></pre>
</details>
</dd>
<dt id="TermTk.TTkWidgets.lineedit.TTkLineEdit.text"><code class="name flex">
<span>def <span class="ident">text</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def text(self):
return self._text</code></pre>
</details>
</dd>
</dl>
<h3>Inherited members</h3>
<ul class="hlist">
@ -408,7 +489,6 @@ class TTkLineEdit(TTkWidget):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>
@ -437,9 +517,14 @@ class TTkLineEdit(TTkWidget):
<ul>
<li>
<h4><code><a title="TermTk.TTkWidgets.lineedit.TTkLineEdit" href="#TermTk.TTkWidgets.lineedit.TTkLineEdit">TTkLineEdit</a></code></h4>
<ul class="">
<ul class="two-column">
<li><code><a title="TermTk.TTkWidgets.lineedit.TTkLineEdit.focusInEvent" href="#TermTk.TTkWidgets.lineedit.TTkLineEdit.focusInEvent">focusInEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.lineedit.TTkLineEdit.focusOutEvent" href="#TermTk.TTkWidgets.lineedit.TTkLineEdit.focusOutEvent">focusOutEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.lineedit.TTkLineEdit.returnPressed" href="#TermTk.TTkWidgets.lineedit.TTkLineEdit.returnPressed">returnPressed</a></code></li>
<li><code><a title="TermTk.TTkWidgets.lineedit.TTkLineEdit.setText" href="#TermTk.TTkWidgets.lineedit.TTkLineEdit.setText">setText</a></code></li>
<li><code><a title="TermTk.TTkWidgets.lineedit.TTkLineEdit.text" href="#TermTk.TTkWidgets.lineedit.TTkLineEdit.text">text</a></code></li>
<li><code><a title="TermTk.TTkWidgets.lineedit.TTkLineEdit.textChanged" href="#TermTk.TTkWidgets.lineedit.TTkLineEdit.textChanged">textChanged</a></code></li>
<li><code><a title="TermTk.TTkWidgets.lineedit.TTkLineEdit.textEdited" href="#TermTk.TTkWidgets.lineedit.TTkLineEdit.textEdited">textEdited</a></code></li>
</ul>
</li>
</ul>

1
TTkWidgets/list.html

@ -255,7 +255,6 @@ class TTkList(TTkAbstractScrollArea):
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/listwidget.html

@ -429,7 +429,6 @@ class TTkListWidget(TTkAbstractScrollView):
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/radiobutton.html

@ -246,7 +246,6 @@ class TTkRadioButton(TTkWidget):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/resizableframe.html

@ -287,7 +287,6 @@ class TTkResizableFrame(TTkFrame):
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/scrollarea.html

@ -202,7 +202,6 @@ class TTkScrollArea(TTkAbstractScrollArea):
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/scrollbar.html

@ -825,7 +825,6 @@ def setValue(self, v):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/spacer.html

@ -170,7 +170,6 @@ class TTkSpacer(TTkWidget):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

45
TTkWidgets/splitter.html

@ -57,11 +57,16 @@ from TermTk.TTkWidgets.widget import *
from TermTk.TTkWidgets.frame import *
class TTkSplitter(TTkFrame):
__slots__ = (&#39;_splitterInitialized&#39;, &#39;_orientation&#39;,&#39;_separators&#39;, &#39;_separatorSelected&#39;, &#39;_mouseDelta&#39;)
__slots__ = (
&#39;_splitterInitialized&#39;, &#39;_orientation&#39;,
&#39;_separators&#39;, &#39;_separatorsRef&#39;, &#39;_sizeRef&#39;,
&#39;_separatorSelected&#39;, &#39;_mouseDelta&#39;)
def __init__(self, *args, **kwargs):
self._splitterInitialized = False
# self._splitterInitialized = True
self._separators = []
self._separatorsRef = []
self._sizeRef = 0
self._separatorSelected = None
self._orientation = TTkK.HORIZONTAL
TTkFrame.__init__(self, *args, **kwargs)
@ -86,6 +91,8 @@ class TTkSplitter(TTkFrame):
newSep = -1
self._separators.append(newSep)
self._updateGeometries()
self._separatorsRef = self._separators
self._sizeRef = fullSize
def _minMaxSizeBefore(self, index):
if self._separatorSelected is None:
@ -111,6 +118,7 @@ class TTkSplitter(TTkFrame):
return minsize, maxsize
def _updateGeometries(self):
if not self.isVisible(): return
_,_,w,h = self.geometry()
sep = self._separators
x,y=0,0
@ -168,7 +176,19 @@ class TTkSplitter(TTkFrame):
for i in range(selected, len(sep)):
_processGeometry(i, True)
if self._separatorSelected is not None or self._sizeRef==0:
self._separatorsRef = self._separators
self._sizeRef = size
def resizeEvent(self, w, h):
# Adjust separators to the new size;
self._separatorSelected = None
if self._sizeRef &gt; 0:
if self._orientation == TTkK.HORIZONTAL:
diff = w/self._sizeRef
else:
diff = h/self._sizeRef
self._separators = [int(i*diff) for i in self._separatorsRef]
self._updateGeometries()
def paintEvent(self):
@ -343,11 +363,16 @@ class TTkSplitter(TTkFrame):
<span>Expand source code</span>
</summary>
<pre><code class="python">class TTkSplitter(TTkFrame):
__slots__ = (&#39;_splitterInitialized&#39;, &#39;_orientation&#39;,&#39;_separators&#39;, &#39;_separatorSelected&#39;, &#39;_mouseDelta&#39;)
__slots__ = (
&#39;_splitterInitialized&#39;, &#39;_orientation&#39;,
&#39;_separators&#39;, &#39;_separatorsRef&#39;, &#39;_sizeRef&#39;,
&#39;_separatorSelected&#39;, &#39;_mouseDelta&#39;)
def __init__(self, *args, **kwargs):
self._splitterInitialized = False
# self._splitterInitialized = True
self._separators = []
self._separatorsRef = []
self._sizeRef = 0
self._separatorSelected = None
self._orientation = TTkK.HORIZONTAL
TTkFrame.__init__(self, *args, **kwargs)
@ -372,6 +397,8 @@ class TTkSplitter(TTkFrame):
newSep = -1
self._separators.append(newSep)
self._updateGeometries()
self._separatorsRef = self._separators
self._sizeRef = fullSize
def _minMaxSizeBefore(self, index):
if self._separatorSelected is None:
@ -397,6 +424,7 @@ class TTkSplitter(TTkFrame):
return minsize, maxsize
def _updateGeometries(self):
if not self.isVisible(): return
_,_,w,h = self.geometry()
sep = self._separators
x,y=0,0
@ -454,7 +482,19 @@ class TTkSplitter(TTkFrame):
for i in range(selected, len(sep)):
_processGeometry(i, True)
if self._separatorSelected is not None or self._sizeRef==0:
self._separatorsRef = self._separators
self._sizeRef = size
def resizeEvent(self, w, h):
# Adjust separators to the new size;
self._separatorSelected = None
if self._sizeRef &gt; 0:
if self._orientation == TTkK.HORIZONTAL:
diff = w/self._sizeRef
else:
diff = h/self._sizeRef
self._separators = [int(i*diff) for i in self._separatorsRef]
self._updateGeometries()
def paintEvent(self):
@ -683,7 +723,6 @@ class TTkSplitter(TTkFrame):
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/table.html

@ -289,7 +289,6 @@ class TTkTable(TTkAbstractScrollArea):
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/tableview.html

@ -763,7 +763,6 @@ def viewMoveTo(self, x, y):
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollview.TTkAbstractScrollView.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/tabwidget.html

@ -482,7 +482,6 @@ class TTkTabWidget(TTkFrame):
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.frame.TTkFrame.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/texedit.html

@ -266,7 +266,6 @@ def setText(self, text):
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/tree.html

@ -323,7 +323,6 @@ class TTkTree(TTkAbstractScrollArea):
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkAbstract.abstractscrollarea.TTkAbstractScrollArea.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

1
TTkWidgets/treeview.html

@ -181,7 +181,6 @@ class TTkTreeView(TTkTableView):
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

7
TTkWidgets/treewidget.html

@ -101,7 +101,7 @@ class _TTkDisplayedTreeItem(TTkWidget):
def paintEvent(self):
if self._isLeaf:
self._canvas.drawText(pos=(self._depth, 0), text=&#34;&#34;)
self._canvas.drawText(pos=(self._depth, 0), text=&#34;&#34;)
self._canvas.drawText(pos=(self._depth+2, 0), text=self._text)
@ -158,7 +158,7 @@ class TTkTreeWidget(TTkTableView):
if item.parent() is None:
self._topLevelItems.addChild(item)
displayedItems = item.data().copy()
displayTreeItem = _TTkDisplayedTreeItem(text=displayedItems[0], id=0, depth=depth, treeWidgetItem=item)
displayTreeItem = _TTkDisplayedTreeItem(text=displayedItems[0], id=0, depth=depth, treeWidgetItem=item)
displayTreeItem._clicked.connect(self._controlClicked)
displayedItems[0] = displayTreeItem
if index == -1:
@ -306,7 +306,7 @@ class TTkTreeWidget(TTkTableView):
if item.parent() is None:
self._topLevelItems.addChild(item)
displayedItems = item.data().copy()
displayTreeItem = _TTkDisplayedTreeItem(text=displayedItems[0], id=0, depth=depth, treeWidgetItem=item)
displayTreeItem = _TTkDisplayedTreeItem(text=displayedItems[0], id=0, depth=depth, treeWidgetItem=item)
displayTreeItem._clicked.connect(self._controlClicked)
displayedItems[0] = displayTreeItem
if index == -1:
@ -383,7 +383,6 @@ class TTkTreeWidget(TTkTableView):
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.tableview.TTkTableView.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

80
TTkWidgets/widget.html

@ -214,7 +214,7 @@ class TTkWidget(TMouseEvents,TKeyEvents):
for child in item.zSortedItems:
ix, iy, iw, ih = item.geometry()
# child outside the bound
if ix+iw &lt; lx and ix &gt; lx+lw and iy+ih &lt; ly and y &gt; ly+lh: continue
if ix+iw &lt; lx and ix &gt; lx+lw and iy+ih &lt; ly and iy &gt; ly+lh: continue
# Reduce the bound to the minimum visible
bx = max(ix,lx)
by = max(iy,ly)
@ -226,15 +226,6 @@ class TTkWidget(TMouseEvents,TKeyEvents):
&#39;&#39;&#39; .. caution:: Don&#39;t touch this! &#39;&#39;&#39;
TTkWidget._paintChildCanvas(self._canvas, self.rootLayout(), self.rootLayout().geometry())
def paintNotifyParent(self):
&#39;&#39;&#39; .. caution:: Don&#39;t touch this! &#39;&#39;&#39;
parent = self._parent
while parent is not None:
parent._canvas.clean()
parent.paintEvent()
parent.paintChildCanvas()
parent = parent._parent
def moveEvent(self, x: int, y: int):
&#39;&#39;&#39; Event Callback triggered after a successful move&#39;&#39;&#39;
pass
@ -508,15 +499,6 @@ class TTkWidget(TMouseEvents,TKeyEvents):
self._minw = minw
self.update(updateLayout=True, updateParent=True)
#@staticmethod
#def _showHandle(layout):
# for i in range(layout.count()):
# item = layout.itemAt(i)
# if isinstance(item, CuWidgetItem) and not item.isEmpty():
# item.widget().show()
# elif isinstance(item, CuLayout):
# CuWidget._showHandle(item)
@staticmethod
def _propagateShowToLayout(layout):
&#39;&#39;&#39; .. caution:: Don&#39;t touch this! &#39;&#39;&#39;
@ -541,15 +523,6 @@ class TTkWidget(TMouseEvents,TKeyEvents):
self._canvas.show()
self._propagateShow()
#@staticmethod
#def _hideHandle(layout):
# for i in range(layout.count()):
# item = layout.itemAt(i)
# if isinstance(item, CuWidgetItem) and not item.isEmpty():
# item.widget().hide()
# elif isinstance(item, CuLayout):
# CuWidget._hideHandle(item)
@pyTTkSlot()
def hide(self):
if not self._visible: return
@ -860,7 +833,7 @@ class TTkWidget(TMouseEvents,TKeyEvents):
for child in item.zSortedItems:
ix, iy, iw, ih = item.geometry()
# child outside the bound
if ix+iw &lt; lx and ix &gt; lx+lw and iy+ih &lt; ly and y &gt; ly+lh: continue
if ix+iw &lt; lx and ix &gt; lx+lw and iy+ih &lt; ly and iy &gt; ly+lh: continue
# Reduce the bound to the minimum visible
bx = max(ix,lx)
by = max(iy,ly)
@ -872,15 +845,6 @@ class TTkWidget(TMouseEvents,TKeyEvents):
&#39;&#39;&#39; .. caution:: Don&#39;t touch this! &#39;&#39;&#39;
TTkWidget._paintChildCanvas(self._canvas, self.rootLayout(), self.rootLayout().geometry())
def paintNotifyParent(self):
&#39;&#39;&#39; .. caution:: Don&#39;t touch this! &#39;&#39;&#39;
parent = self._parent
while parent is not None:
parent._canvas.clean()
parent.paintEvent()
parent.paintChildCanvas()
parent = parent._parent
def moveEvent(self, x: int, y: int):
&#39;&#39;&#39; Event Callback triggered after a successful move&#39;&#39;&#39;
pass
@ -1154,15 +1118,6 @@ class TTkWidget(TMouseEvents,TKeyEvents):
self._minw = minw
self.update(updateLayout=True, updateParent=True)
#@staticmethod
#def _showHandle(layout):
# for i in range(layout.count()):
# item = layout.itemAt(i)
# if isinstance(item, CuWidgetItem) and not item.isEmpty():
# item.widget().show()
# elif isinstance(item, CuLayout):
# CuWidget._showHandle(item)
@staticmethod
def _propagateShowToLayout(layout):
&#39;&#39;&#39; .. caution:: Don&#39;t touch this! &#39;&#39;&#39;
@ -1187,15 +1142,6 @@ class TTkWidget(TMouseEvents,TKeyEvents):
self._canvas.show()
self._propagateShow()
#@staticmethod
#def _hideHandle(layout):
# for i in range(layout.count()):
# item = layout.itemAt(i)
# if isinstance(item, CuWidgetItem) and not item.isEmpty():
# item.widget().hide()
# elif isinstance(item, CuLayout):
# CuWidget._hideHandle(item)
@pyTTkSlot()
def hide(self):
if not self._visible: return
@ -1802,27 +1748,6 @@ ths need to be overridden in the widget.</p></div>
pass</code></pre>
</details>
</dd>
<dt id="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent"><code class="name flex">
<span>def <span class="ident">paintNotifyParent</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"><div class="admonition caution">
<p class="admonition-title">Caution:&ensp;Don't touch this!</p>
</div></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def paintNotifyParent(self):
&#39;&#39;&#39; .. caution:: Don&#39;t touch this! &#39;&#39;&#39;
parent = self._parent
while parent is not None:
parent._canvas.clean()
parent.paintEvent()
parent.paintChildCanvas()
parent = parent._parent</code></pre>
</details>
</dd>
<dt id="TermTk.TTkWidgets.widget.TTkWidget.parentWidget"><code class="name flex">
<span>def <span class="ident">parentWidget</span></span>(<span>self)</span>
</code></dt>
@ -2327,7 +2252,6 @@ def show(self):
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.moveEvent" href="#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas" href="#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintEvent" href="#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent" href="#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.parentWidget" href="#TermTk.TTkWidgets.widget.TTkWidget.parentWidget">parentWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.pos" href="#TermTk.TTkWidgets.widget.TTkWidget.pos">pos</a></code></li>
<li><code><a title="TermTk.TTkWidgets.widget.TTkWidget.raiseWidget" href="#TermTk.TTkWidgets.widget.TTkWidget.raiseWidget">raiseWidget</a></code></li>

1
TTkWidgets/window.html

@ -305,7 +305,6 @@ class TTkWindow(TTkResizableFrame):
<li><code><a title="TermTk.TTkWidgets.resizableframe.TTkResizableFrame.moveEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.moveEvent">moveEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.resizableframe.TTkResizableFrame.paintChildCanvas" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintChildCanvas">paintChildCanvas</a></code></li>
<li><code><a title="TermTk.TTkWidgets.resizableframe.TTkResizableFrame.paintEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintEvent">paintEvent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.resizableframe.TTkResizableFrame.paintNotifyParent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.paintNotifyParent">paintNotifyParent</a></code></li>
<li><code><a title="TermTk.TTkWidgets.resizableframe.TTkResizableFrame.removeWidget" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.removeWidget">removeWidget</a></code></li>
<li><code><a title="TermTk.TTkWidgets.resizableframe.TTkResizableFrame.resize" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resize">resize</a></code></li>
<li><code><a title="TermTk.TTkWidgets.resizableframe.TTkResizableFrame.resizeEvent" href="widget.html#TermTk.TTkWidgets.widget.TTkWidget.resizeEvent">resizeEvent</a></code></li>

7
libbpytop/colors.html

@ -57,6 +57,7 @@ except Exception as e:
from TermTk.libbpytop.term import Term
from TermTk.TTkCore.constant import TTkK
from TermTk.TTkCore.cfg import TTkCfg
from TermTk.TTkCore.log import TTkLog
# Ansi Escape Codes:
@ -99,7 +100,7 @@ class Color:
else:
color = f&#39;{Color.truecolor_to_256(rgb=(int(hexa[1:3], base=16), int(hexa[3:5], base=16), int(hexa[5:7], base=16)), depth=depth)}&#39;
except ValueError as e:
ttk.TTkLog.error(f&#39;{e}&#39;)
TTkLog.error(f&#39;{e}&#39;)
else:
if TTkCfg.color_depth is TTkK.DEP_24:
@ -185,7 +186,7 @@ class Color:
else:
color = f&#39;{Color.truecolor_to_256(rgb=(int(hexa[1:3], base=16), int(hexa[3:5], base=16), int(hexa[5:7], base=16)), depth=depth)}&#39;
except ValueError as e:
ttk.TTkLog.error(f&#39;{e}&#39;)
TTkLog.error(f&#39;{e}&#39;)
else:
if TTkCfg.color_depth is TTkK.DEP_24:
@ -260,7 +261,7 @@ def escape_color(hexa: str = &#34;&#34;, r: int = 0, g: int = 0, b: int = 0, dep
else:
color = f&#39;{Color.truecolor_to_256(rgb=(int(hexa[1:3], base=16), int(hexa[3:5], base=16), int(hexa[5:7], base=16)), depth=depth)}&#39;
except ValueError as e:
ttk.TTkLog.error(f&#39;{e}&#39;)
TTkLog.error(f&#39;{e}&#39;)
else:
if TTkCfg.color_depth is TTkK.DEP_24:

2
libbpytop/input.html

@ -50,7 +50,7 @@ from select import select
from time import time, sleep, strftime, localtime
from typing import TextIO, List, Set, Dict, Tuple, Optional, Union, Any, Callable, ContextManager, Iterable, Type, NamedTuple
try: import fcntl, termios, tty, pwd
try: import fcntl, termios, tty
except Exception as e:
print(f&#39;ERROR: {e}&#39;)
exit(1)

Loading…
Cancel
Save