Bläddra i källkod

Fixed ToString/Parse for unknown codes

Brian Fiete 5 år sedan
förälder
incheckning
c5b48a1dc1
1 ändrade filer med 12 tillägg och 0 borttagningar
  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);
+			}
 		}
 	}
 }