-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathcontact.py
More file actions
74 lines (59 loc) · 1.63 KB
/
contact.py
File metadata and controls
74 lines (59 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import pytermgui as ptg
from pytermgui.pretty import pprint
OUTPUT = {}
def submit(manager: ptg.WindowManager, window: ptg.Window) -> None:
for widget in window:
if isinstance(widget, ptg.InputField):
OUTPUT[widget.prompt] = widget.value
continue
if isinstance(widget, ptg.Container):
label, field = iter(widget)
OUTPUT[label.value] = field.value
manager.stop()
CONFIG = """
config:
InputField:
styles:
prompt: dim italic
cursor: '@72'
Label:
styles:
value: dim bold
Window:
styles:
border: '60'
corner: '60'
Container:
styles:
border: '96'
corner: '96'
"""
with ptg.YamlLoader() as loader:
loader.load(CONFIG)
with ptg.WindowManager() as manager:
window = (
ptg.Window(
"",
ptg.InputField("Balazs", prompt="Name: "),
ptg.InputField("Some street", prompt="Address: "),
ptg.InputField("+11 0 123 456", prompt="Phone number: "),
"",
ptg.Container(
"Additional notes:",
ptg.InputField(
"A whole bunch of\nMeaningful notes\nand stuff", multiline=True
),
box="EMPTY_VERTICAL",
),
"",
["Submit", lambda *_: submit(manager, window)],
width=60,
box="DOUBLE",
)
.set_title("[210 bold]New contact")
.center()
)
# For the screenshot's sake
window.select(0)
manager.add(window)
# pprint(OUTPUT)