-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreview.sh
More file actions
executable file
·129 lines (101 loc) · 3.04 KB
/
preview.sh
File metadata and controls
executable file
·129 lines (101 loc) · 3.04 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash
source ../src/lib.sh
set -e
init_screen
# Create layouts for main screen
layout.create_from_screen LAYOUT
layout.v_split LAYOUT v1 V2
layout.h_split V2 h4=1px h5=1g h1=50% h3=1g h2=1g h55=1g
# Init components that used within page
# Create rects and stylize them
rect.new r1
rect.new r2
rect.new r3
rect.set_title r1 "First rect!" center
rect.set_title r2 "Second rect!" start
rect.set_title r3 "Third!" end
rect.set_title_style r3 reversed=1
rect.set_style r2 reversed=1
rect.get_layout r2 layout_inside_r2
rect.get_layout r3 layout_inside_r3
rect.set_title_style r2 underlined reversed=0
rect.set_style r1 reversed=1 crossed underlined blink bg_color="225;0;115" fg_color="111;255;255"
rect.set_style r1 reversed=0 crossed=0 underlined=0 blink=0 bg_color="2;2;2"
rect.get_layout r1 layout_inside_r1
# Create gauges
layout.h_split layout_inside_r1 g1l g2l
gauge.new g1 h
gauge.new g2 v
gauge.set_style g1 reversed=0
gauge.set_label_style g1 reversed=0
# Labels!
label.new label_inside_r2 "im inside r2!"
label.set_style label_inside_r2 crossed
label.set_text_align label_inside_r2 center center
label.set_text label_inside_r2 "Hey im veryyyyyyyyyyyyyyyyyyy bigggggggg loooooooooooooooooooong teeeeeeeeeext thaaaaaaaaaaaaaaaaaat wooooooooooouldn't fiiiiiiiiiiiiiiit"
label.set_multiline_mode label_inside_r2 1
label.set_multiline_mode a1 1
label.set_style label1 bg_color="255;255;0"
# Create right bottom list with 1000 labels
labels=()
for i in {0..1000}; do
label.new "label$i" "item num $i dd tem num $i dd"
labels+=("label$i")
done
list.new list1
list.set_items list1 g1 ${labels[@]}
list.set_fixed_size list1 1
list.set_selected_style list1 reversed
# Modal that recieves user input
layout.v_split LAYOUT empty_1=1g vpasswd=3px empty_2=3px
layout.h_split vpasswd hpasswd=40px
modal.new password
modal.set_title password "Enter your private sentence here!"
modal.get_layout password password_layout
label.new password_label
label.set_text_align password_label center
i=30
a=0
inp=""
# Render loop
while [ 1 ]; do
if [ "$a" -ge 50 ]; then
pos=center
else
pos=start
fi
if [ $a -gt 60 ]; then
gauge.set_style g1 fg_color="255;0;0"
gauge.set_style g2 fg_color="0;255;0"
else
gauge.set_style g1 fg_color=0
gauge.set_style g2 fg_color=0
fi
((a+=1))
rect.set_title r1 "$(date)" "$pos"
rect.set_title r3 "Third! $a"
rect.draw r1 v1
gauge.set_percentage g1 $a
gauge.set_percentage g2 $((100 - a))
gauge.set_label g1 "$a% :)"
gauge.set_label g2 "$((100-a))%"
gauge.draw g1 g1l
gauge.draw g2 g2l
rect.draw r2 h1
rect.draw r3 h2
list.draw list1 layout_inside_r3
list.set_selected list1 "$a"
if [ $a -gt 100 ]; then
a=0
fi
label.draw label_inside_r2 layout_inside_r2
modal.draw password hpasswd
# Read keyboard
if read -rsn1 -t 0.005 key; then
inp="$inp${key:-" "}"
label.set_text password_label "$inp"
fi
label.draw password_label password_layout
buffer.flush 0
done
exit_screen