Server IP : 13.213.54.232 / Your IP : 216.73.217.11 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ip-172-31-17-110 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 7.1.33-67+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /snap/core20/current/usr/share/subiquity/subiquitycore/ui/ |
Upload File : |
# 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("don't know how to find width of %r", w)