|
|
<!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.libbpytop.term 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.libbpytop.term</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 |
|
|
|
|
|
# Copyright 2021 Eugenio Parodi <ceccopierangiolieugenio AT googlemail DOT com> |
|
|
# Copyright 2020 Aristocratos (https://github.com/aristocratos/bpytop) |
|
|
# |
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
# you may not use this file except in compliance with the License. |
|
|
# You may obtain a copy of the License at |
|
|
# |
|
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
|
# |
|
|
# Unless required by applicable law or agreed to in writing, software |
|
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
|
# See the License for the specific language governing permissions and |
|
|
# limitations under the License. |
|
|
|
|
|
import os, sys, io, threading, signal, re, subprocess, logging, logging.handlers, argparse |
|
|
import queue |
|
|
from select import select |
|
|
from time import time, sleep, strftime, localtime |
|
|
from typing import List, Set, Dict, Tuple, Optional, Union, Any, Callable, ContextManager, Iterable, Type, NamedTuple |
|
|
|
|
|
try: import fcntl, termios, tty, pwd |
|
|
except Exception as e: |
|
|
print(f'ERROR: {e}') |
|
|
exit(1) |
|
|
|
|
|
class Mv: |
|
|
"""Class with collection of cursor movement functions: .t[o](line, column) | .r[ight](columns) | .l[eft](columns) | .u[p](lines) | .d[own](lines) | .save() | .restore()""" |
|
|
@staticmethod |
|
|
def to(line: int, col: int) -> str: |
|
|
return f'\033[{line};{col}f' #* Move cursor to line, column |
|
|
@staticmethod |
|
|
def right(x: int) -> str: #* Move cursor right x columns |
|
|
return f'\033[{x}C' |
|
|
@staticmethod |
|
|
def left(x: int) -> str: #* Move cursor left x columns |
|
|
return f'\033[{x}D' |
|
|
@staticmethod |
|
|
def up(x: int) -> str: #* Move cursor up x lines |
|
|
return f'\033[{x}A' |
|
|
@staticmethod |
|
|
def down(x: int) -> str: #* Move cursor down x lines |
|
|
return f'\033[{x}B' |
|
|
|
|
|
save: str = "\033[s" #* Save cursor position |
|
|
restore: str = "\033[u" #* Restore saved cursor postion |
|
|
t = to |
|
|
r = right |
|
|
l = left |
|
|
u = up |
|
|
d = down |
|
|
|
|
|
class Term: |
|
|
"""Terminal info and commands""" |
|
|
title: str = "TermTk" |
|
|
mouse: bool = True |
|
|
width: int = 0 |
|
|
height: int = 0 |
|
|
fg: str = "" #* Default foreground color |
|
|
bg: str = "" #* Default background color |
|
|
hide_cursor = "\033[?25l" #* Hide terminal cursor |
|
|
show_cursor = "\033[?25h" #* Show terminal cursor |
|
|
alt_screen = "\033[?1049h" #* Switch to alternate screen |
|
|
normal_screen = "\033[?1049l" #* Switch to normal screen |
|
|
clear = "\033[2J\033[0;0f" #* Clear screen and set cursor to position 0,0 |
|
|
mouse_on = "\033[?1002h\033[?1015h\033[?1006h" #* Enable reporting of mouse position on click and release |
|
|
mouse_off = "\033[?1002l" #* Disable mouse reporting |
|
|
mouse_direct_on = "\033[?1003h" #* Enable reporting of mouse position at any movement |
|
|
mouse_direct_off = "\033[?1003l" #* Disable direct mouse reporting |
|
|
|
|
|
# from: |
|
|
# https://superuser.com/questions/607478/how-do-you-change-the-xterm-cursor-to-an-i-beam-or-vertical-bar |
|
|
# echo -e -n "\x1b[\x30 q" # changes to blinking block |
|
|
# echo -e -n "\x1b[\x31 q" # changes to blinking block also |
|
|
# echo -e -n "\x1b[\x32 q" # changes to steady block |
|
|
# echo -e -n "\x1b[\x33 q" # changes to blinking underline |
|
|
# echo -e -n "\x1b[\x34 q" # changes to steady underline |
|
|
# echo -e -n "\x1b[\x35 q" # changes to blinking bar |
|
|
# echo -e -n "\x1b[\x36 q" # changes to steady bar |
|
|
|
|
|
cursor_blinking_block = "\033[\x30 q" |
|
|
cursor_blinking_block_also = "\033[\x31 q" |
|
|
cursor_steady_block = "\033[\x32 q" |
|
|
cursor_blinking_underline = "\033[\x33 q" |
|
|
cursor_steady_underline = "\033[\x34 q" |
|
|
cursor_blinking_bar = "\033[\x35 q" |
|
|
cursor_steady_bar = "\033[\x36 q" |
|
|
|
|
|
_sigWinChCb = None |
|
|
|
|
|
@staticmethod |
|
|
def showCursor(cursor): |
|
|
Term.push(cursor) |
|
|
Term.push(Term.show_cursor) |
|
|
@staticmethod |
|
|
def hideCursor(): |
|
|
Term.push(Term.hide_cursor) |
|
|
|
|
|
@staticmethod |
|
|
def init(mouse: bool = True, title: str = "TermTk"): |
|
|
Term.title = title |
|
|
Term.mouse = mouse |
|
|
Term.push(Term.alt_screen, Term.clear, Term.hide_cursor, Term.escTitle(Term.title)) |
|
|
if Term.mouse: |
|
|
Term.push(Term.mouse_on) |
|
|
Term.echo(False) |
|
|
|
|
|
@staticmethod |
|
|
def stop(): |
|
|
Term.push(Term.mouse_off, Term.mouse_direct_off) |
|
|
Term.push(Term.clear, Term.normal_screen, Term.show_cursor, Term.escTitle()) |
|
|
Term.echo(True) |
|
|
|
|
|
@staticmethod |
|
|
def cont(): |
|
|
Term.push(Term.alt_screen, Term.clear, Term.hide_cursor, Term.escTitle(Term.title)) |
|
|
if Term.mouse: |
|
|
Term.push(Term.mouse_on) |
|
|
Term.echo(False) |
|
|
|
|
|
@staticmethod |
|
|
def exit(): |
|
|
Term.push(Term.mouse_off, Term.mouse_direct_off) |
|
|
Term.push(Term.clear, Term.normal_screen, Term.show_cursor, Term.escTitle()) |
|
|
Term.echo(True) |
|
|
|
|
|
|
|
|
@staticmethod |
|
|
def echo(on: bool): |
|
|
"""Toggle input echo""" |
|
|
(iflag, oflag, cflag, lflag, ispeed, ospeed, cc) = termios.tcgetattr(sys.stdin.fileno()) |
|
|
if on: |
|
|
lflag |= termios.ECHO # type: ignore |
|
|
else: |
|
|
lflag &= ~termios.ECHO # type: ignore |
|
|
new_attr = [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] |
|
|
termios.tcsetattr(sys.stdin.fileno(), termios.TCSANOW, new_attr) |
|
|
|
|
|
@staticmethod |
|
|
def push(*args): |
|
|
try: |
|
|
print(*args, sep="", end="", flush=True) |
|
|
except BlockingIOError: |
|
|
pass |
|
|
print(*args, sep="", end="", flush=True) |
|
|
|
|
|
@staticmethod |
|
|
def escTitle(text: str = "") -> str: |
|
|
out: str = f'{os.environ.get("TERMINAL_TITLE", "")}' |
|
|
if out and text: out += " " |
|
|
if text: out += f'{text}' |
|
|
return f'\033]0;{out}\a' |
|
|
|
|
|
@staticmethod |
|
|
def _sigWinCh(signum, frame): |
|
|
Term.width, Term.height = os.get_terminal_size() |
|
|
if Term._sigWinChCb is not None: |
|
|
Term._sigWinChCb(Term.width, Term.height) |
|
|
|
|
|
@staticmethod |
|
|
def registerResizeCb(callback): |
|
|
Term._sigWinChCb = callback |
|
|
# Dummy call to retrieve the terminal size |
|
|
Term._sigWinCh(signal.SIGWINCH, None) |
|
|
signal.signal(signal.SIGWINCH, Term._sigWinCh)</code></pre> |
|
|
</details> |
|
|
</section> |
|
|
<section> |
|
|
</section> |
|
|
<section> |
|
|
</section> |
|
|
<section> |
|
|
</section> |
|
|
<section> |
|
|
<h2 class="section-title" id="header-classes">Classes</h2> |
|
|
<dl> |
|
|
<dt id="TermTk.libbpytop.term.Mv"><code class="flex name class"> |
|
|
<span>class <span class="ident">Mv</span></span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"><p>Class with collection of cursor movement functions: .t<a href="line, column">o</a> | .r<a href="columns">ight</a> | .l<a href="columns">eft</a> | .u<a href="lines">p</a> | .d<a href="lines">own</a> | .save() | .restore()</p></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">class Mv: |
|
|
"""Class with collection of cursor movement functions: .t[o](line, column) | .r[ight](columns) | .l[eft](columns) | .u[p](lines) | .d[own](lines) | .save() | .restore()""" |
|
|
@staticmethod |
|
|
def to(line: int, col: int) -> str: |
|
|
return f'\033[{line};{col}f' #* Move cursor to line, column |
|
|
@staticmethod |
|
|
def right(x: int) -> str: #* Move cursor right x columns |
|
|
return f'\033[{x}C' |
|
|
@staticmethod |
|
|
def left(x: int) -> str: #* Move cursor left x columns |
|
|
return f'\033[{x}D' |
|
|
@staticmethod |
|
|
def up(x: int) -> str: #* Move cursor up x lines |
|
|
return f'\033[{x}A' |
|
|
@staticmethod |
|
|
def down(x: int) -> str: #* Move cursor down x lines |
|
|
return f'\033[{x}B' |
|
|
|
|
|
save: str = "\033[s" #* Save cursor position |
|
|
restore: str = "\033[u" #* Restore saved cursor postion |
|
|
t = to |
|
|
r = right |
|
|
l = left |
|
|
u = up |
|
|
d = down</code></pre> |
|
|
</details> |
|
|
<h3>Subclasses</h3> |
|
|
<ul class="hlist"> |
|
|
<li><a title="TermTk.TTkCore.helper.TTkHelper.Mv" href="../TTkCore/helper.html#TermTk.TTkCore.helper.TTkHelper.Mv">TTkHelper.Mv</a></li> |
|
|
</ul> |
|
|
<h3>Class variables</h3> |
|
|
<dl> |
|
|
<dt id="TermTk.libbpytop.term.Mv.restore"><code class="name">var <span class="ident">restore</span> : str</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.save"><code class="name">var <span class="ident">save</span> : str</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
</dl> |
|
|
<h3>Static methods</h3> |
|
|
<dl> |
|
|
<dt id="TermTk.libbpytop.term.Mv.d"><code class="name flex"> |
|
|
<span>def <span class="ident">d</span></span>(<span>x: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def down(x: int) -> str: #* Move cursor down x lines |
|
|
return f'\033[{x}B'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.down"><code class="name flex"> |
|
|
<span>def <span class="ident">down</span></span>(<span>x: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def down(x: int) -> str: #* Move cursor down x lines |
|
|
return f'\033[{x}B'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.l"><code class="name flex"> |
|
|
<span>def <span class="ident">l</span></span>(<span>x: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def left(x: int) -> str: #* Move cursor left x columns |
|
|
return f'\033[{x}D'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.left"><code class="name flex"> |
|
|
<span>def <span class="ident">left</span></span>(<span>x: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def left(x: int) -> str: #* Move cursor left x columns |
|
|
return f'\033[{x}D'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.r"><code class="name flex"> |
|
|
<span>def <span class="ident">r</span></span>(<span>x: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def right(x: int) -> str: #* Move cursor right x columns |
|
|
return f'\033[{x}C'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.right"><code class="name flex"> |
|
|
<span>def <span class="ident">right</span></span>(<span>x: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def right(x: int) -> str: #* Move cursor right x columns |
|
|
return f'\033[{x}C'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.t"><code class="name flex"> |
|
|
<span>def <span class="ident">t</span></span>(<span>line: int, col: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def to(line: int, col: int) -> str: |
|
|
return f'\033[{line};{col}f' #* Move cursor to line, column</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.to"><code class="name flex"> |
|
|
<span>def <span class="ident">to</span></span>(<span>line: int, col: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def to(line: int, col: int) -> str: |
|
|
return f'\033[{line};{col}f' #* Move cursor to line, column</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.u"><code class="name flex"> |
|
|
<span>def <span class="ident">u</span></span>(<span>x: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def up(x: int) -> str: #* Move cursor up x lines |
|
|
return f'\033[{x}A'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Mv.up"><code class="name flex"> |
|
|
<span>def <span class="ident">up</span></span>(<span>x: int) ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def up(x: int) -> str: #* Move cursor up x lines |
|
|
return f'\033[{x}A'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
</dl> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term"><code class="flex name class"> |
|
|
<span>class <span class="ident">Term</span></span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"><p>Terminal info and commands</p></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">class Term: |
|
|
"""Terminal info and commands""" |
|
|
title: str = "TermTk" |
|
|
mouse: bool = True |
|
|
width: int = 0 |
|
|
height: int = 0 |
|
|
fg: str = "" #* Default foreground color |
|
|
bg: str = "" #* Default background color |
|
|
hide_cursor = "\033[?25l" #* Hide terminal cursor |
|
|
show_cursor = "\033[?25h" #* Show terminal cursor |
|
|
alt_screen = "\033[?1049h" #* Switch to alternate screen |
|
|
normal_screen = "\033[?1049l" #* Switch to normal screen |
|
|
clear = "\033[2J\033[0;0f" #* Clear screen and set cursor to position 0,0 |
|
|
mouse_on = "\033[?1002h\033[?1015h\033[?1006h" #* Enable reporting of mouse position on click and release |
|
|
mouse_off = "\033[?1002l" #* Disable mouse reporting |
|
|
mouse_direct_on = "\033[?1003h" #* Enable reporting of mouse position at any movement |
|
|
mouse_direct_off = "\033[?1003l" #* Disable direct mouse reporting |
|
|
|
|
|
# from: |
|
|
# https://superuser.com/questions/607478/how-do-you-change-the-xterm-cursor-to-an-i-beam-or-vertical-bar |
|
|
# echo -e -n "\x1b[\x30 q" # changes to blinking block |
|
|
# echo -e -n "\x1b[\x31 q" # changes to blinking block also |
|
|
# echo -e -n "\x1b[\x32 q" # changes to steady block |
|
|
# echo -e -n "\x1b[\x33 q" # changes to blinking underline |
|
|
# echo -e -n "\x1b[\x34 q" # changes to steady underline |
|
|
# echo -e -n "\x1b[\x35 q" # changes to blinking bar |
|
|
# echo -e -n "\x1b[\x36 q" # changes to steady bar |
|
|
|
|
|
cursor_blinking_block = "\033[\x30 q" |
|
|
cursor_blinking_block_also = "\033[\x31 q" |
|
|
cursor_steady_block = "\033[\x32 q" |
|
|
cursor_blinking_underline = "\033[\x33 q" |
|
|
cursor_steady_underline = "\033[\x34 q" |
|
|
cursor_blinking_bar = "\033[\x35 q" |
|
|
cursor_steady_bar = "\033[\x36 q" |
|
|
|
|
|
_sigWinChCb = None |
|
|
|
|
|
@staticmethod |
|
|
def showCursor(cursor): |
|
|
Term.push(cursor) |
|
|
Term.push(Term.show_cursor) |
|
|
@staticmethod |
|
|
def hideCursor(): |
|
|
Term.push(Term.hide_cursor) |
|
|
|
|
|
@staticmethod |
|
|
def init(mouse: bool = True, title: str = "TermTk"): |
|
|
Term.title = title |
|
|
Term.mouse = mouse |
|
|
Term.push(Term.alt_screen, Term.clear, Term.hide_cursor, Term.escTitle(Term.title)) |
|
|
if Term.mouse: |
|
|
Term.push(Term.mouse_on) |
|
|
Term.echo(False) |
|
|
|
|
|
@staticmethod |
|
|
def stop(): |
|
|
Term.push(Term.mouse_off, Term.mouse_direct_off) |
|
|
Term.push(Term.clear, Term.normal_screen, Term.show_cursor, Term.escTitle()) |
|
|
Term.echo(True) |
|
|
|
|
|
@staticmethod |
|
|
def cont(): |
|
|
Term.push(Term.alt_screen, Term.clear, Term.hide_cursor, Term.escTitle(Term.title)) |
|
|
if Term.mouse: |
|
|
Term.push(Term.mouse_on) |
|
|
Term.echo(False) |
|
|
|
|
|
@staticmethod |
|
|
def exit(): |
|
|
Term.push(Term.mouse_off, Term.mouse_direct_off) |
|
|
Term.push(Term.clear, Term.normal_screen, Term.show_cursor, Term.escTitle()) |
|
|
Term.echo(True) |
|
|
|
|
|
|
|
|
@staticmethod |
|
|
def echo(on: bool): |
|
|
"""Toggle input echo""" |
|
|
(iflag, oflag, cflag, lflag, ispeed, ospeed, cc) = termios.tcgetattr(sys.stdin.fileno()) |
|
|
if on: |
|
|
lflag |= termios.ECHO # type: ignore |
|
|
else: |
|
|
lflag &= ~termios.ECHO # type: ignore |
|
|
new_attr = [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] |
|
|
termios.tcsetattr(sys.stdin.fileno(), termios.TCSANOW, new_attr) |
|
|
|
|
|
@staticmethod |
|
|
def push(*args): |
|
|
try: |
|
|
print(*args, sep="", end="", flush=True) |
|
|
except BlockingIOError: |
|
|
pass |
|
|
print(*args, sep="", end="", flush=True) |
|
|
|
|
|
@staticmethod |
|
|
def escTitle(text: str = "") -> str: |
|
|
out: str = f'{os.environ.get("TERMINAL_TITLE", "")}' |
|
|
if out and text: out += " " |
|
|
if text: out += f'{text}' |
|
|
return f'\033]0;{out}\a' |
|
|
|
|
|
@staticmethod |
|
|
def _sigWinCh(signum, frame): |
|
|
Term.width, Term.height = os.get_terminal_size() |
|
|
if Term._sigWinChCb is not None: |
|
|
Term._sigWinChCb(Term.width, Term.height) |
|
|
|
|
|
@staticmethod |
|
|
def registerResizeCb(callback): |
|
|
Term._sigWinChCb = callback |
|
|
# Dummy call to retrieve the terminal size |
|
|
Term._sigWinCh(signal.SIGWINCH, None) |
|
|
signal.signal(signal.SIGWINCH, Term._sigWinCh)</code></pre> |
|
|
</details> |
|
|
<h3>Class variables</h3> |
|
|
<dl> |
|
|
<dt id="TermTk.libbpytop.term.Term.alt_screen"><code class="name">var <span class="ident">alt_screen</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.bg"><code class="name">var <span class="ident">bg</span> : str</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.clear"><code class="name">var <span class="ident">clear</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.cursor_blinking_bar"><code class="name">var <span class="ident">cursor_blinking_bar</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.cursor_blinking_block"><code class="name">var <span class="ident">cursor_blinking_block</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.cursor_blinking_block_also"><code class="name">var <span class="ident">cursor_blinking_block_also</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.cursor_blinking_underline"><code class="name">var <span class="ident">cursor_blinking_underline</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.cursor_steady_bar"><code class="name">var <span class="ident">cursor_steady_bar</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.cursor_steady_block"><code class="name">var <span class="ident">cursor_steady_block</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.cursor_steady_underline"><code class="name">var <span class="ident">cursor_steady_underline</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.fg"><code class="name">var <span class="ident">fg</span> : str</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.height"><code class="name">var <span class="ident">height</span> : int</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.hide_cursor"><code class="name">var <span class="ident">hide_cursor</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.mouse"><code class="name">var <span class="ident">mouse</span> : bool</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.mouse_direct_off"><code class="name">var <span class="ident">mouse_direct_off</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.mouse_direct_on"><code class="name">var <span class="ident">mouse_direct_on</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.mouse_off"><code class="name">var <span class="ident">mouse_off</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.mouse_on"><code class="name">var <span class="ident">mouse_on</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.normal_screen"><code class="name">var <span class="ident">normal_screen</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.show_cursor"><code class="name">var <span class="ident">show_cursor</span></code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.title"><code class="name">var <span class="ident">title</span> : str</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.width"><code class="name">var <span class="ident">width</span> : int</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
</dd> |
|
|
</dl> |
|
|
<h3>Static methods</h3> |
|
|
<dl> |
|
|
<dt id="TermTk.libbpytop.term.Term.cont"><code class="name flex"> |
|
|
<span>def <span class="ident">cont</span></span>(<span>)</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def cont(): |
|
|
Term.push(Term.alt_screen, Term.clear, Term.hide_cursor, Term.escTitle(Term.title)) |
|
|
if Term.mouse: |
|
|
Term.push(Term.mouse_on) |
|
|
Term.echo(False)</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.echo"><code class="name flex"> |
|
|
<span>def <span class="ident">echo</span></span>(<span>on: bool)</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"><p>Toggle input echo</p></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def echo(on: bool): |
|
|
"""Toggle input echo""" |
|
|
(iflag, oflag, cflag, lflag, ispeed, ospeed, cc) = termios.tcgetattr(sys.stdin.fileno()) |
|
|
if on: |
|
|
lflag |= termios.ECHO # type: ignore |
|
|
else: |
|
|
lflag &= ~termios.ECHO # type: ignore |
|
|
new_attr = [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] |
|
|
termios.tcsetattr(sys.stdin.fileno(), termios.TCSANOW, new_attr)</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.escTitle"><code class="name flex"> |
|
|
<span>def <span class="ident">escTitle</span></span>(<span>text: str = '') ‑> str</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def escTitle(text: str = "") -> str: |
|
|
out: str = f'{os.environ.get("TERMINAL_TITLE", "")}' |
|
|
if out and text: out += " " |
|
|
if text: out += f'{text}' |
|
|
return f'\033]0;{out}\a'</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.exit"><code class="name flex"> |
|
|
<span>def <span class="ident">exit</span></span>(<span>)</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def exit(): |
|
|
Term.push(Term.mouse_off, Term.mouse_direct_off) |
|
|
Term.push(Term.clear, Term.normal_screen, Term.show_cursor, Term.escTitle()) |
|
|
Term.echo(True)</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.hideCursor"><code class="name flex"> |
|
|
<span>def <span class="ident">hideCursor</span></span>(<span>)</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def hideCursor(): |
|
|
Term.push(Term.hide_cursor)</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.init"><code class="name flex"> |
|
|
<span>def <span class="ident">init</span></span>(<span>mouse: bool = True, title: str = 'TermTk')</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def init(mouse: bool = True, title: str = "TermTk"): |
|
|
Term.title = title |
|
|
Term.mouse = mouse |
|
|
Term.push(Term.alt_screen, Term.clear, Term.hide_cursor, Term.escTitle(Term.title)) |
|
|
if Term.mouse: |
|
|
Term.push(Term.mouse_on) |
|
|
Term.echo(False)</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.push"><code class="name flex"> |
|
|
<span>def <span class="ident">push</span></span>(<span>*args)</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def push(*args): |
|
|
try: |
|
|
print(*args, sep="", end="", flush=True) |
|
|
except BlockingIOError: |
|
|
pass |
|
|
print(*args, sep="", end="", flush=True)</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.registerResizeCb"><code class="name flex"> |
|
|
<span>def <span class="ident">registerResizeCb</span></span>(<span>callback)</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def registerResizeCb(callback): |
|
|
Term._sigWinChCb = callback |
|
|
# Dummy call to retrieve the terminal size |
|
|
Term._sigWinCh(signal.SIGWINCH, None) |
|
|
signal.signal(signal.SIGWINCH, Term._sigWinCh)</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.showCursor"><code class="name flex"> |
|
|
<span>def <span class="ident">showCursor</span></span>(<span>cursor)</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def showCursor(cursor): |
|
|
Term.push(cursor) |
|
|
Term.push(Term.show_cursor)</code></pre> |
|
|
</details> |
|
|
</dd> |
|
|
<dt id="TermTk.libbpytop.term.Term.stop"><code class="name flex"> |
|
|
<span>def <span class="ident">stop</span></span>(<span>)</span> |
|
|
</code></dt> |
|
|
<dd> |
|
|
<div class="desc"></div> |
|
|
<details class="source"> |
|
|
<summary> |
|
|
<span>Expand source code</span> |
|
|
</summary> |
|
|
<pre><code class="python">@staticmethod |
|
|
def stop(): |
|
|
Term.push(Term.mouse_off, Term.mouse_direct_off) |
|
|
Term.push(Term.clear, Term.normal_screen, Term.show_cursor, Term.escTitle()) |
|
|
Term.echo(True)</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.libbpytop" href="index.html">TermTk.libbpytop</a></code></li> |
|
|
</ul> |
|
|
</li> |
|
|
<li><h3><a href="#header-classes">Classes</a></h3> |
|
|
<ul> |
|
|
<li> |
|
|
<h4><code><a title="TermTk.libbpytop.term.Mv" href="#TermTk.libbpytop.term.Mv">Mv</a></code></h4> |
|
|
<ul class="two-column"> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.d" href="#TermTk.libbpytop.term.Mv.d">d</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.down" href="#TermTk.libbpytop.term.Mv.down">down</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.l" href="#TermTk.libbpytop.term.Mv.l">l</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.left" href="#TermTk.libbpytop.term.Mv.left">left</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.r" href="#TermTk.libbpytop.term.Mv.r">r</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.restore" href="#TermTk.libbpytop.term.Mv.restore">restore</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.right" href="#TermTk.libbpytop.term.Mv.right">right</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.save" href="#TermTk.libbpytop.term.Mv.save">save</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.t" href="#TermTk.libbpytop.term.Mv.t">t</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.to" href="#TermTk.libbpytop.term.Mv.to">to</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.u" href="#TermTk.libbpytop.term.Mv.u">u</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Mv.up" href="#TermTk.libbpytop.term.Mv.up">up</a></code></li> |
|
|
</ul> |
|
|
</li> |
|
|
<li> |
|
|
<h4><code><a title="TermTk.libbpytop.term.Term" href="#TermTk.libbpytop.term.Term">Term</a></code></h4> |
|
|
<ul class=""> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.alt_screen" href="#TermTk.libbpytop.term.Term.alt_screen">alt_screen</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.bg" href="#TermTk.libbpytop.term.Term.bg">bg</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.clear" href="#TermTk.libbpytop.term.Term.clear">clear</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.cont" href="#TermTk.libbpytop.term.Term.cont">cont</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.cursor_blinking_bar" href="#TermTk.libbpytop.term.Term.cursor_blinking_bar">cursor_blinking_bar</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.cursor_blinking_block" href="#TermTk.libbpytop.term.Term.cursor_blinking_block">cursor_blinking_block</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.cursor_blinking_block_also" href="#TermTk.libbpytop.term.Term.cursor_blinking_block_also">cursor_blinking_block_also</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.cursor_blinking_underline" href="#TermTk.libbpytop.term.Term.cursor_blinking_underline">cursor_blinking_underline</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.cursor_steady_bar" href="#TermTk.libbpytop.term.Term.cursor_steady_bar">cursor_steady_bar</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.cursor_steady_block" href="#TermTk.libbpytop.term.Term.cursor_steady_block">cursor_steady_block</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.cursor_steady_underline" href="#TermTk.libbpytop.term.Term.cursor_steady_underline">cursor_steady_underline</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.echo" href="#TermTk.libbpytop.term.Term.echo">echo</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.escTitle" href="#TermTk.libbpytop.term.Term.escTitle">escTitle</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.exit" href="#TermTk.libbpytop.term.Term.exit">exit</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.fg" href="#TermTk.libbpytop.term.Term.fg">fg</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.height" href="#TermTk.libbpytop.term.Term.height">height</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.hideCursor" href="#TermTk.libbpytop.term.Term.hideCursor">hideCursor</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.hide_cursor" href="#TermTk.libbpytop.term.Term.hide_cursor">hide_cursor</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.init" href="#TermTk.libbpytop.term.Term.init">init</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.mouse" href="#TermTk.libbpytop.term.Term.mouse">mouse</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.mouse_direct_off" href="#TermTk.libbpytop.term.Term.mouse_direct_off">mouse_direct_off</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.mouse_direct_on" href="#TermTk.libbpytop.term.Term.mouse_direct_on">mouse_direct_on</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.mouse_off" href="#TermTk.libbpytop.term.Term.mouse_off">mouse_off</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.mouse_on" href="#TermTk.libbpytop.term.Term.mouse_on">mouse_on</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.normal_screen" href="#TermTk.libbpytop.term.Term.normal_screen">normal_screen</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.push" href="#TermTk.libbpytop.term.Term.push">push</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.registerResizeCb" href="#TermTk.libbpytop.term.Term.registerResizeCb">registerResizeCb</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.showCursor" href="#TermTk.libbpytop.term.Term.showCursor">showCursor</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.show_cursor" href="#TermTk.libbpytop.term.Term.show_cursor">show_cursor</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.stop" href="#TermTk.libbpytop.term.Term.stop">stop</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.title" href="#TermTk.libbpytop.term.Term.title">title</a></code></li> |
|
|
<li><code><a title="TermTk.libbpytop.term.Term.width" href="#TermTk.libbpytop.term.Term.width">width</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> |