@@ -33,7 +33,7 @@ public event EventHandler<ScreenKeyPressEventArgs> KeyPress
3333 remove => RemoveHandler ( KeyPressEvent , value ) ;
3434 }
3535
36- private enum KeyboardMode { Lower , Upper , Symbols }
36+ private enum KeyboardMode { Lower , Upper , Symbols , Symbols2 }
3737
3838 // label, action, column width multiplier
3939 private record struct KeyDef ( string Label , string Action , double Width = 1.0 ) ;
@@ -59,7 +59,15 @@ private record struct KeyDef(string Label, string Action, double Width = 1.0);
5959 [ K ( "1" ) , K ( "2" ) , K ( "3" ) , K ( "4" ) , K ( "5" ) , K ( "6" ) , K ( "7" ) , K ( "8" ) , K ( "9" ) , K ( "0" ) ] ,
6060 [ K ( "!" ) , K ( "@" ) , K ( "#" ) , K ( "$" ) , K ( "%" ) , K ( "&" ) , K ( "*" ) , K ( "(" ) , K ( ")" ) , K ( "-" ) , K ( "?" ) ] ,
6161 [ K ( "_" ) , K ( "=" ) , K ( "+" ) , K ( "[" ) , K ( "]" ) , K ( "{" ) , K ( "}" ) , K ( ";" ) , K ( ":" ) , K ( "'" ) ] ,
62- [ Sp ( "abc" , "ModeLower" , 2.0 ) , Sp ( "spazio" , "Space" , 6.0 ) , Sp ( "⌫" , "Backspace" , 2.0 ) ] ,
62+ [ Sp ( "abc" , "ModeLower" , 1.5 ) , Sp ( "▸" , "ModeSymbols2" , 1.5 ) , Sp ( "spazio" , "Space" , 5.0 ) , Sp ( "." , "." , 0.75 ) , Sp ( "⌫" , "Backspace" , 1.25 ) ] ,
63+ ] ;
64+
65+ private static readonly KeyDef [ ] [ ] SymbolRows2 =
66+ [
67+ [ K ( "^" ) , K ( "~" ) , K ( "`" ) , K ( "\" " ) , K ( "<" ) , K ( ">" ) , K ( "/" ) , K ( "\\ " ) , K ( "|" ) , K ( "," ) ] ,
68+ [ K ( "." ) , K ( "€" ) , K ( "£" ) , K ( "¥" ) , K ( "°" ) , K ( "•" ) , K ( "–" ) , K ( "—" ) , K ( "×" ) , K ( "÷" ) ] ,
69+ [ K ( "±" ) , K ( "™" ) , K ( "©" ) , K ( "®" ) , K ( "←" ) , K ( "→" ) , K ( "↑" ) , K ( "↓" ) , K ( "§" ) , K ( "¶" ) ] ,
70+ [ Sp ( "◀" , "ModeSymbols" , 1.5 ) , Sp ( "abc" , "ModeLower" , 1.5 ) , Sp ( "spazio" , "Space" , 5.0 ) , Sp ( "⌫" , "Backspace" , 2.0 ) ] ,
6371 ] ;
6472
6573 private static KeyDef K ( string key ) => new ( key , key ) ;
@@ -89,6 +97,7 @@ private void BuildKeyboard()
8997 {
9098 KeyboardMode . Upper => UpperRows ,
9199 KeyboardMode . Symbols => SymbolRows ,
100+ KeyboardMode . Symbols2 => SymbolRows2 ,
92101 _ => LowerRows ,
93102 } ;
94103
@@ -134,7 +143,7 @@ private Button CreateKeyButton(KeyDef key)
134143 var button = new Button { Content = key . Label } ;
135144 button . Classes . Add ( "key" ) ;
136145
137- bool isSpecial = key . Action is "ModeUpper" or "ModeLower" or "ModeSymbols"
146+ bool isSpecial = key . Action is "ModeUpper" or "ModeLower" or "ModeSymbols" or "ModeSymbols2"
138147 or "Backspace" or "Space" or "123" or "abc" ;
139148
140149 if ( isSpecial ) button . Classes . Add ( "key-special" ) ;
@@ -148,9 +157,10 @@ private void HandleKeyPress(string action)
148157 {
149158 switch ( action )
150159 {
151- case "ModeUpper" : _mode = KeyboardMode . Upper ; BuildKeyboard ( ) ; return ;
152- case "ModeLower" : _mode = KeyboardMode . Lower ; BuildKeyboard ( ) ; return ;
153- case "ModeSymbols" : _mode = KeyboardMode . Symbols ; BuildKeyboard ( ) ; return ;
160+ case "ModeUpper" : _mode = KeyboardMode . Upper ; BuildKeyboard ( ) ; return ;
161+ case "ModeLower" : _mode = KeyboardMode . Lower ; BuildKeyboard ( ) ; return ;
162+ case "ModeSymbols" : _mode = KeyboardMode . Symbols ; BuildKeyboard ( ) ; return ;
163+ case "ModeSymbols2" : _mode = KeyboardMode . Symbols2 ; BuildKeyboard ( ) ; return ;
154164 }
155165
156166 var key = action == "Space" ? " " : action ;
0 commit comments