3
3
from typing import Tuple
4
4
from gettext import gettext as _
5
5
6
- from seedsigner .gui .components import Fonts , GUIConstants
6
+ from seedsigner .gui .components import Fonts , GUIConstants , SeedSignerIconConstants
7
7
from seedsigner .hardware .buttons import HardwareButtonsConstants
8
8
9
9
@@ -30,58 +30,55 @@ class Keyboard:
30
30
ENTER_RIGHT = "enter_right"
31
31
32
32
REGULAR_KEY_FONT = "regular"
33
- COMPACT_KEY_FONT = "compact"
33
+ ICON_KEY_FONT = GUIConstants . ICON_FONT_NAME__SEEDSIGNER
34
34
35
- # TRANSLATOR_NOTE: The abbreviated label for the special key <del> on a standard keyboard.
36
- del_label = _ ("del" )
37
35
KEY_BACKSPACE = {
38
36
"code" : "DEL" ,
39
- "letter" : del_label ,
40
- "font" : COMPACT_KEY_FONT ,
37
+ "letter" : SeedSignerIconConstants . DELETE ,
38
+ "font" : ICON_KEY_FONT ,
41
39
"size" : 2 ,
42
40
}
43
- # TRANSLATOR_NOTE: The abbreviated label for the special key <space> on a standard keyboard.
44
- space_label = _ ("space" )
41
+
45
42
KEY_SPACE = {
46
43
"code" : "SPACE" ,
47
- "letter" : space_label ,
48
- "font" : COMPACT_KEY_FONT ,
44
+ "letter" : SeedSignerIconConstants . SPACE ,
45
+ "font" : ICON_KEY_FONT ,
49
46
"size" : 1 ,
50
47
}
51
48
KEY_SPACE_2 = {
52
49
"code" : "SPACE" ,
53
- "letter" : space_label ,
54
- "font" : COMPACT_KEY_FONT ,
50
+ "letter" : SeedSignerIconConstants . SPACE ,
51
+ "font" : ICON_KEY_FONT ,
55
52
"size" : 2 ,
56
53
}
57
54
KEY_SPACE_3 = {
58
55
"code" : "SPACE" ,
59
- "letter" : space_label ,
60
- "font" : COMPACT_KEY_FONT ,
56
+ "letter" : SeedSignerIconConstants . SPACE ,
57
+ "font" : ICON_KEY_FONT ,
61
58
"size" : 3 ,
62
59
}
63
60
KEY_SPACE_4 = {
64
61
"code" : "SPACE" ,
65
- "letter" : space_label ,
66
- "font" : COMPACT_KEY_FONT ,
62
+ "letter" : SeedSignerIconConstants . SPACE ,
63
+ "font" : ICON_KEY_FONT ,
67
64
"size" : 4 ,
68
65
}
69
66
KEY_SPACE_5 = {
70
67
"code" : "SPACE" ,
71
- "letter" : space_label ,
72
- "font" : COMPACT_KEY_FONT ,
68
+ "letter" : SeedSignerIconConstants . SPACE ,
69
+ "font" : ICON_KEY_FONT ,
73
70
"size" : 5 ,
74
71
}
75
72
KEY_CURSOR_LEFT = {
76
73
"code" : "CURSOR_LEFT" ,
77
- "letter" : "<" ,
78
- "font" : REGULAR_KEY_FONT ,
74
+ "letter" : SeedSignerIconConstants . CHEVRON_LEFT ,
75
+ "font" : ICON_KEY_FONT ,
79
76
"size" : 1 ,
80
77
}
81
78
KEY_CURSOR_RIGHT = {
82
79
"code" : "CURSOR_RIGHT" ,
83
- "letter" : ">" ,
84
- "font" : REGULAR_KEY_FONT ,
80
+ "letter" : SeedSignerIconConstants . CHEVRON_RIGHT ,
81
+ "font" : ICON_KEY_FONT ,
85
82
"size" : 1 ,
86
83
}
87
84
KEY_PREVIOUS_PAGE = {
@@ -123,9 +120,11 @@ def __post_init__(self):
123
120
124
121
def render_key (self ):
125
122
font = self .keyboard .font
123
+ text_height = self .keyboard .text_height
126
124
if self .is_additional_key :
127
- if Keyboard .ADDITIONAL_KEYS [self .code ]["font" ] == Keyboard .COMPACT_KEY_FONT :
128
- font = self .keyboard .additonal_key_compact_font
125
+ if Keyboard .ADDITIONAL_KEYS [self .code ]["font" ] == Keyboard .ICON_KEY_FONT :
126
+ font = self .keyboard .icon_key_font
127
+ text_height = self .keyboard .icon_key_height
129
128
130
129
outline_color = "#333"
131
130
if not self .is_active :
@@ -159,15 +158,12 @@ def render_key(self):
159
158
radius = 4
160
159
)
161
160
162
- # Fixed-width fonts will all have same height, ignoring below baseline (e.g. "Q" or "q")
163
- (left , top , right , bottom ) = font .getbbox ("X" , anchor = "ls" )
164
- text_height = - 1 * top
165
161
self .keyboard .draw .text (
166
162
(
167
163
self .screen_x + int (self .keyboard .key_width * self .size / 2 ),
168
164
self .screen_y + self .keyboard .key_height - int ((self .keyboard .key_height - text_height )/ 2 )
169
165
),
170
- _ ( self .letter ) ,
166
+ self .letter ,
171
167
fill = font_color ,
172
168
font = font ,
173
169
anchor = "ms"
@@ -217,8 +213,15 @@ def __init__(self,
217
213
218
214
# Set up the rendering and state params
219
215
self .active_keys = list (self .charset )
216
+ self .icon_key_font = Fonts .get_font (GUIConstants .ICON_FONT_NAME__SEEDSIGNER , 26 )
217
+
218
+ # Fixed-width fonts will all have same height, ignoring below baseline (e.g. "Q" or "q")
219
+ (left , top , right , bottom ) = self .font .getbbox ("X" , anchor = "ls" )
220
+ self .text_height = - 1 * top
221
+
222
+ (left , top , right , bottom ) = self .icon_key_font .getbbox (SeedSignerIconConstants .DELETE + SeedSignerIconConstants .SPACE , anchor = "ls" )
223
+ self .icon_key_height = - 1 * top
220
224
221
- self .additonal_key_compact_font = Fonts .get_font ("RobotoCondensed-Bold" , 18 )
222
225
self .x_start = rect [0 ]
223
226
self .y_start = rect [1 ]
224
227
self .x_gap = 2
0 commit comments