From ae0fc22de377e6eefb8c622a41cef965e32595fd Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 27 Feb 2020 17:51:44 +0100 Subject: [PATCH] added text copying and pasting to mlem.ui --- MLEM.Ui/Elements/TextField.cs | 13 ++++++++++++- MLEM.Ui/MLEM.Ui.csproj | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/MLEM.Ui/Elements/TextField.cs b/MLEM.Ui/Elements/TextField.cs index 559ba37..0d3ecb1 100644 --- a/MLEM.Ui/Elements/TextField.cs +++ b/MLEM.Ui/Elements/TextField.cs @@ -10,6 +10,7 @@ using MLEM.Input; using MLEM.Misc; using MLEM.Textures; using MLEM.Ui.Style; +using TextCopy; namespace MLEM.Ui.Elements { public class TextField : Element { @@ -117,7 +118,10 @@ namespace MLEM.Ui.Elements { // handle first initialization if not done if (this.displayedText == null) this.HandleTextChange(false); - + + if (!this.IsSelected || this.IsHidden) + return; + if (this.Input.IsKeyPressed(Keys.Left)) { this.CaretPos--; } else if (this.Input.IsKeyPressed(Keys.Right)) { @@ -126,6 +130,13 @@ namespace MLEM.Ui.Elements { this.CaretPos = 0; } else if (this.Input.IsKeyPressed(Keys.End)) { this.CaretPos = this.text.Length; + } else if (this.Input.IsModifierKeyDown(ModifierKey.Control)) { + if (this.Input.IsKeyPressed(Keys.V)) { + this.InsertText(Clipboard.GetText()); + } else if (this.Input.IsKeyPressed(Keys.C)) { + // until there is text selection, just copy the whole content + Clipboard.SetText(this.Text); + } } this.caretBlinkTimer += time.ElapsedGameTime.TotalSeconds; diff --git a/MLEM.Ui/MLEM.Ui.csproj b/MLEM.Ui/MLEM.Ui.csproj index 4077a31..00a2f8e 100644 --- a/MLEM.Ui/MLEM.Ui.csproj +++ b/MLEM.Ui/MLEM.Ui.csproj @@ -17,6 +17,7 @@ all +