From 710b418970e464dd8bdd31ac76e05cb418bd6698 Mon Sep 17 00:00:00 2001 From: CrispyPin Date: Wed, 19 Jan 2022 20:57:30 +0100 Subject: [PATCH] basic loading of keyboard layout, including key width --- src/addons/openvr_overlay/overlay_instance.gd | 2 +- src/overlay_resources/keyboard/KeyBtn.tscn | 12 + src/overlay_resources/keyboard/KeyRow.tscn | 8 + src/overlay_resources/keyboard/keyboard.theme | Bin 938 -> 936 bytes .../keyboard/keyboard_overlay.gd | 50 ++- .../keyboard/layouts/layout_se.json | 321 ++++++++++++++++++ src/overlays/KeyboardOverlay.tscn | 77 +---- 7 files changed, 401 insertions(+), 69 deletions(-) create mode 100644 src/overlay_resources/keyboard/KeyBtn.tscn create mode 100644 src/overlay_resources/keyboard/KeyRow.tscn create mode 100644 src/overlay_resources/keyboard/layouts/layout_se.json diff --git a/src/addons/openvr_overlay/overlay_instance.gd b/src/addons/openvr_overlay/overlay_instance.gd index 06e7ef8..35b8443 100644 --- a/src/addons/openvr_overlay/overlay_instance.gd +++ b/src/addons/openvr_overlay/overlay_instance.gd @@ -81,7 +81,7 @@ func update_tracker_id(): if _tracker_id == -1: # could not find controller, fallback - print("Missing controller ", current_target, " ", target, " ", fallback, " - ", name) +# print("Missing controller ", current_target, " ", target, " ", fallback, " - ", name) _tracker_id = 63 # highest tracker id (unused, at origin) diff --git a/src/overlay_resources/keyboard/KeyBtn.tscn b/src/overlay_resources/keyboard/KeyBtn.tscn new file mode 100644 index 0000000..9dace5c --- /dev/null +++ b/src/overlay_resources/keyboard/KeyBtn.tscn @@ -0,0 +1,12 @@ +[gd_scene format=2] + +[node name="Key" type="Button"] +margin_right = 128.0 +margin_bottom = 128.0 +rect_min_size = Vector2( 128, 128 ) + +[node name="Label" type="Label" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +align = 1 +valign = 1 diff --git a/src/overlay_resources/keyboard/KeyRow.tscn b/src/overlay_resources/keyboard/KeyRow.tscn new file mode 100644 index 0000000..48e2e2b --- /dev/null +++ b/src/overlay_resources/keyboard/KeyRow.tscn @@ -0,0 +1,8 @@ +[gd_scene format=2] + +[node name="KeyRow" type="HBoxContainer"] +margin_right = 230.0 +margin_bottom = 128.0 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/src/overlay_resources/keyboard/keyboard.theme b/src/overlay_resources/keyboard/keyboard.theme index f133549ae00db3b5f25b481f8b28fa3bab165a5a..f0b34193d31854c3b98a4bc8f150f8f43d5df833 100644 GIT binary patch delta 490 zcmVsQd2`i0ssI201yBGBnkikkOKe!D77#BU?d4O8~`TdbUqNzBpnYR zkOTk#pa4`L0000Lioqiyw-1qn9_*m!cfnSM}DnRv7J^lJ8I7;@@eN> ziIrTg4O=6h7D_tb)J&ooMefdE{(rnR%#_;cdZB($vkomZC&Nl5H-XPeA=TKE?&2&F z$f*ROQrbGTj!gYG@FgfWEOjK#Zy4tDzrd;P&IB1|Wk&tP#b$q^mj>5XnT~A1y-QeXs{jcByavQ#pffoW7#F3gCe}ZcM zTU7iP@CO_>X6CrkkmkZs&yGiatx~a_AZd2go>An~&bbmRxm+6tjhtFI>3mc(k){;6 zJA?WE@zyZYYN_ju`a#V+w9%XlEtT8^J}re+V^6w^vq&MQ6NFl6E7dx3_20k)B`6}E zIuqw2hWY$2@T$8*L55kGQ9p69e;Mhe!L?PUBVTau(m0a&pI~yJTvuufxz`P{9t2qr zL?U;ZR9bSW2R|I-#-|-Q27?=Q1A`Ed$nJf3ICy-P)T@19DfJ|Uqk_$F9O@+lF*F~V z{}wJS6Ii6q|B4j}5g", + "width": 1.5 + }, + { + "keycode": "Q" + }, + { + "keycode": "W" + }, + { + "keycode": "E" + }, + { + "keycode": "R" + }, + { + "keycode": "T" + }, + { + "keycode": "Y" + }, + { + "keycode": "U" + }, + { + "keycode": "I" + }, + { + "keycode": "O" + }, + { + "keycode": "P" + }, + { + "keycode": "ARING", + "display": "Å" + }, + { + "keycode": "DIAERSIS", + "display": "^\n¨ ~" + }, + { + "keycode": "ENTER", + "display": "Enter", + "width": 1.5 + } + ] + }, + { + "gap": 0, + "keys": [ + { + "keycode": "CAPSLOCK", + "display": "CAPS", + "width": 1.75 + }, + { + "keycode": "A" + }, + { + "keycode": "S" + }, + { + "keycode": "D" + }, + { + "keycode": "F" + }, + { + "keycode": "G" + }, + { + "keycode": "H" + }, + { + "keycode": "J" + }, + { + "keycode": "K" + }, + { + "keycode": "L" + }, + { + "keycode": "ODIAERSIS", + "display": "Ö" + }, + { + "keycode": "ADIAERSIS", + "display": "Ä" + }, + { + "keycode": "APOSTROPHE", + "display": "*\n'" + }, + { + "keycode": "ENTER", + "display": "Enter", + "width": 1.25 + } + ] + }, + { + "gap": 0, + "keys": [ + { + "keycode": "SHIFT", + "display": "^", + "width": 1.25 + }, + { + "keycode": "LESS", + "display": "> \n<|" + }, + { + "keycode": "Z" + }, + { + "keycode": "X" + }, + { + "keycode": "C" + }, + { + "keycode": "V" + }, + { + "keycode": "B" + }, + { + "keycode": "N" + }, + { + "keycode": "M" + }, + { + "keycode": "COMMA", + "display": ";\n," + }, + { + "keycode": "PERIOD", + "display": ":\n." + }, + { + "keycode": "MINUS", + "display": "_\n-" + }, + { + "keycode": "SHIFT", + "display": "SHIFT", + "width": 2.5 + } + ] + }, + { + "gap": 0, + "keys": [ + { + "keycode": "CONTROL", + "display": "Ctrl", + "width": 1.5 + }, + { + "keycode": "SUPER", + "display": "Super", + "width": 1.5 + }, + { + "keycode": "ALT", + "display": "Alt", + "width": 1.5 + }, + { + "keycode": "SPACE", + "display": "", + "width": 5.5 + }, + { + "keycode": "ALT", + "display": "Alt Gr(!)", + "width": 1.5 + }, + { + "keycode": "SUPER", + "display": "Super", + "width": 1.5 + }, + { + "keycode": "MENU", + "display": "Menu", + "width": 1.5 + }, + { + "keycode": "CONTROL", + "display": "Ctrl", + "width": 1.5 + } + ] + } + ] +} \ No newline at end of file diff --git a/src/overlays/KeyboardOverlay.tscn b/src/overlays/KeyboardOverlay.tscn index 1edc7c1..93e14d1 100644 --- a/src/overlays/KeyboardOverlay.tscn +++ b/src/overlays/KeyboardOverlay.tscn @@ -1,7 +1,9 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://overlay_resources/keyboard/keyboard.theme" type="Theme" id=1] [ext_resource path="res://overlay_resources/keyboard/keyboard_overlay.gd" type="Script" id=2] +[ext_resource path="res://overlay_resources/keyboard/KeyRow.tscn" type="PackedScene" id=3] +[ext_resource path="res://overlay_resources/keyboard/KeyBtn.tscn" type="PackedScene" id=4] [node name="Overlay" type="Control"] anchor_right = 1.0 @@ -9,19 +11,14 @@ anchor_bottom = 1.0 theme = ExtResource( 1 ) script = ExtResource( 2 ) __meta__ = { -"_edit_lock_": true, "_edit_use_anchors_": false } +key_row = ExtResource( 3 ) +key_button = ExtResource( 4 ) [node name="PanelContainer" type="PanelContainer" parent="."] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -123.0 -margin_top = -103.5 -margin_right = 123.0 -margin_bottom = 103.5 +anchor_right = 1.0 +margin_bottom = 16.0 __meta__ = { "_edit_use_anchors_": false } @@ -29,59 +26,9 @@ __meta__ = { [node name="CenterContainer" type="CenterContainer" parent="PanelContainer"] margin_left = 8.0 margin_top = 8.0 -margin_right = 400.0 -margin_bottom = 268.0 +margin_right = 2040.0 +margin_bottom = 8.0 -[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"] -margin_left = 8.0 -margin_top = 8.0 -margin_right = 400.0 -margin_bottom = 268.0 - -[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] -margin_right = 392.0 -margin_bottom = 128.0 - -[node name="KeyH" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer"] -margin_right = 128.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -text = "H" - -[node name="KeyE" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer"] -margin_left = 132.0 -margin_right = 260.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -text = "E" - -[node name="KeyO" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer"] -margin_left = 264.0 -margin_right = 392.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -text = "O" - -[node name="HBoxContainer2" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] -margin_top = 132.0 -margin_right = 392.0 -margin_bottom = 260.0 - -[node name="KeyCaps" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer2"] -margin_right = 224.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 224, 128 ) -text = "CAPS" - -[node name="KeyL" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer2"] -margin_left = 228.0 -margin_right = 356.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -text = "L" - -[connection signal="pressed" from="PanelContainer/VBoxContainer/HBoxContainer/KeyH" to="." method="_on_KeyH_pressed"] -[connection signal="pressed" from="PanelContainer/VBoxContainer/HBoxContainer/KeyE" to="." method="_on_KeyE_pressed"] -[connection signal="pressed" from="PanelContainer/VBoxContainer/HBoxContainer/KeyO" to="." method="_on_KeyO_pressed"] -[connection signal="pressed" from="PanelContainer/VBoxContainer/HBoxContainer2/KeyCaps" to="." method="_on_KeyCaps_pressed"] -[connection signal="pressed" from="PanelContainer/VBoxContainer/HBoxContainer2/KeyL" to="." method="_on_KeyL_pressed"] +[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/CenterContainer"] +margin_left = 1016.0 +margin_right = 1016.0