Переглянути джерело

Fixed ToString/Parse for unknown codes

Brian Fiete 5 роки тому
батько
коміт
c5b48a1dc1
1 змінених файлів з 12 додано та 0 видалено
  1. 12 0
      BeefLibs/Beefy2D/src/widgets/KeyCode.bf

+ 12 - 0
BeefLibs/Beefy2D/src/widgets/KeyCode.bf

@@ -119,6 +119,12 @@ namespace Beefy.widgets
 					return (KeyCode)(c.ToUpper);
 			}
 
+			if (str.StartsWith("0x"))
+			{
+				if (int code = int.Parse(str))
+					return .Ok((.)code);
+			}
+
 			return Enum.Parse<KeyCode>(str, true);
 		}
 
@@ -131,7 +137,13 @@ namespace Beefy.widgets
 				return;
 			}
 
+			int buffStart = strBuffer.Length;
 			base.ToString(strBuffer);
+			if ((strBuffer.Length > buffStart) && (strBuffer[buffStart].IsDigit))
+			{
+				strBuffer.RemoveToEnd(buffStart);
+				strBuffer.AppendF("0x{:X}", (int32)this);
+			}
 		}
 	}
 }