__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# Copyright 2018 Canonical, Ltd.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import urwid
size_neutral_decorations = (
urwid.AttrMap,
urwid.PopUpLauncher,
urwid.WidgetDisable,
)
size_neutral_widget_wraps = (
urwid.Button,
urwid.CheckBox,
)
def widget_width(w):
"""Return the natural width of the widget w."""
if (isinstance(w, urwid.WidgetDecoration)
and getattr(w, 'has_original_width', False)):
return widget_width(w.original_widget)
if hasattr(w, 'get_natural_width'):
return w.get_natural_width()
if isinstance(w, size_neutral_widget_wraps):
return widget_width(w._wrapped_widget)
if isinstance(w, size_neutral_decorations):
return widget_width(w.original_widget)
if isinstance(w, urwid.Padding):
if w.width == urwid.RELATIVE_100:
return w.left + w.right + widget_width(w.original_widget)
elif isinstance(w.width, int):
return w.width
if isinstance(w, urwid.Text):
return len(w.text)
if isinstance(w, urwid.Columns):
if len(w.contents) == 0:
return 0
r = 0
for w1, o in w.contents:
if o[0] == urwid.GIVEN:
r += o[1]
else:
r += widget_width(w1)
r += (len(w.contents) - 1) * w.dividechars
return r
raise Exception(f"don't know how to find width of {w!r}")
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| tests | Folder | 0755 |
|
|
| views | Folder | 0755 |
|
|
| __init__.py | File | 639 B | 0644 |
|
| actionmenu.py | File | 4.71 KB | 0644 |
|
| anchors.py | File | 2.22 KB | 0644 |
|
| buttons.py | File | 1.64 KB | 0644 |
|
| container.py | File | 20.3 KB | 0644 |
|
| form.py | File | 14.73 KB | 0644 |
|
| frame.py | File | 1.6 KB | 0644 |
|
| interactive.py | File | 2.74 KB | 0644 |
|
| selector.py | File | 7.41 KB | 0644 |
|
| spinner.py | File | 1.73 KB | 0644 |
|
| stretchy.py | File | 6.1 KB | 0644 |
|
| table.py | File | 17.25 KB | 0644 |
|
| utils.py | File | 10.39 KB | 0644 |
|
| width.py | File | 1.91 KB | 0644 |
|