Merge pull request #4031 from pchote/sdl2

Add a SDL2-GL renderer.
This commit is contained in:
Matthias Mailänder
2013-10-31 11:48:50 -07:00
19 changed files with 939 additions and 71 deletions

View File

@@ -154,27 +154,24 @@ namespace OpenRA.Widgets
return true;
}
TypeChar(e);
return true;
}
public void TypeChar(KeyInput key)
{
if (key.Key == Keycode.BACKSPACE && CursorPosition > 0)
if (e.Key == Keycode.BACKSPACE && CursorPosition > 0)
{
CursorPosition--;
Text = Text.Remove(CursorPosition, 1);
}
else if (key.IsValidInput())
{
if (MaxLength > 0 && Text.Length >= MaxLength)
return;
return true;
}
Text = Text.Insert(CursorPosition, key.UnicodeChar.ToString());
public override bool HandleTextInput(string text)
{
if (MaxLength > 0 && Text.Length >= MaxLength)
return true;
CursorPosition++;
}
Text = Text.Insert(CursorPosition, text);
CursorPosition++;
return true;
}
protected int blinkCycle = 10;

View File

@@ -104,9 +104,15 @@ namespace OpenRA.Widgets
if (KeyboardFocusWidget != null)
return KeyboardFocusWidget.HandleKeyPressOuter(e);
if (Root.HandleKeyPressOuter(e))
return true;
return false;
return Root.HandleKeyPressOuter(e);
}
public static bool HandleTextInput(string text)
{
if (KeyboardFocusWidget != null)
return KeyboardFocusWidget.HandleTextInputOuter(text);
return Root.HandleTextInputOuter(text);
}
public static void ResetAll()
@@ -334,12 +340,30 @@ namespace OpenRA.Widgets
if (child.HandleKeyPressOuter(e))
return true;
// Do any widgety behavior (enter text etc)
// Do any widgety behavior
var handled = HandleKeyPress(e);
return handled;
}
public virtual bool HandleTextInput(string text) { return false; }
public virtual bool HandleTextInputOuter(string text)
{
if (!IsVisible())
return false;
// Can any of our children handle this?
foreach (var child in Children.OfType<Widget>().Reverse())
if (child.HandleTextInputOuter(text))
return true;
// Do any widgety behavior (enter text etc)
var handled = HandleTextInput(text);
return handled;
}
public virtual void Draw() {}
public virtual void DrawOuter()