OXIESEC PANEL
- Current Dir:
/
/
snap
/
core20
/
2582
/
usr
/
share
/
subiquity
/
subiquitycore
/
ui
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
04/29/2025 04:07:53 PM
rwxr-xr-x
📄
__init__.py
639 bytes
04/20/2020 02:31:39 PM
rw-r--r--
📁
__pycache__
-
04/29/2025 04:07:53 PM
rwxr-xr-x
📄
actionmenu.py
4.71 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
anchors.py
2.22 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
buttons.py
1.64 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
container.py
20.3 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
form.py
14.73 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
frame.py
1.6 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
interactive.py
2.74 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
selector.py
7.41 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
spinner.py
1.73 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
stretchy.py
6.1 KB
04/20/2020 02:31:39 PM
rw-r--r--
📄
table.py
17.25 KB
04/20/2020 02:31:39 PM
rw-r--r--
📁
tests
-
04/29/2025 04:07:53 PM
rwxr-xr-x
📄
utils.py
9.37 KB
04/20/2020 02:31:39 PM
rw-r--r--
📁
views
-
04/29/2025 04:07:53 PM
rwxr-xr-x
📄
width.py
1.91 KB
04/20/2020 02:31:39 PM
rw-r--r--
Editing: anchors.py
Close
# Copyright 2015 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 logging from urwid import ( int_scale, SolidFill, Text, ) from subiquitycore.ui.container import ( Columns, Pile, WidgetWrap, ) from subiquitycore.ui.utils import Color from subiquitycore.ui.width import widget_width log = logging.getLogger('subiquitycore.ui.anchors') class HeaderColumns(Columns): # The idea is to render output like this: # # [ pad ][ message ][ btn ][ pad ] # # The constraints are: # # 1. pad + message + btn + pad = maxcol # # 2. pad is at least 1 # # 3. btn is fixed # # 4. message + btn is 79% of maxcol or 76, whichever is greater. def column_widths(self, size, focus=False): maxcol = size[0] btn = widget_width(self.contents[2][0]) center = max(int_scale(79, 101, maxcol + 1), 76) message = center - btn pad = (maxcol - center)//2 if pad <= 0: pad = 1 message = maxcol - 2 - btn return [pad, message, btn, pad] class Header(WidgetWrap): """ Header Widget """ def __init__(self, title, right_icon): if isinstance(title, str): title = Text(title) title = HeaderColumns([ Text(""), title, right_icon, Text(""), ]) super().__init__( Pile([ (1, Color.frame_header_fringe( SolidFill("\N{lower half block}"))), Color.frame_header(title), (1, Color.frame_header_fringe( SolidFill("\N{upper half block}"))), ]))