split Widget static bits into Ui static class
This commit is contained in:
@@ -17,7 +17,7 @@ using OpenRA.Graphics;
|
||||
|
||||
namespace OpenRA.Widgets
|
||||
{
|
||||
public abstract class Widget
|
||||
public static class Ui
|
||||
{
|
||||
public static Widget RootWidget = new ContainerWidget();
|
||||
|
||||
@@ -108,10 +108,13 @@ namespace OpenRA.Widgets
|
||||
{
|
||||
RootWidget.RemoveChildren();
|
||||
|
||||
while (Widget.WindowList.Count > 0)
|
||||
Widget.CloseWindow();
|
||||
while (WindowList.Count > 0)
|
||||
CloseWindow();
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class Widget
|
||||
{
|
||||
// Info defined in YAML
|
||||
public string Id = null;
|
||||
public string X = "0";
|
||||
@@ -221,6 +224,7 @@ namespace OpenRA.Widgets
|
||||
}
|
||||
|
||||
public virtual Rectangle EventBounds { get { return RenderBounds; } }
|
||||
|
||||
public virtual Rectangle GetEventBounds()
|
||||
{
|
||||
return Children
|
||||
@@ -229,16 +233,17 @@ namespace OpenRA.Widgets
|
||||
.Aggregate(EventBounds, Rectangle.Union);
|
||||
}
|
||||
|
||||
public bool Focused { get { return SelectedWidget == this; } }
|
||||
public bool Focused { get { return Ui.SelectedWidget == this; } }
|
||||
|
||||
public virtual bool TakeFocus(MouseInput mi)
|
||||
{
|
||||
if (Focused)
|
||||
return true;
|
||||
|
||||
if (SelectedWidget != null && !SelectedWidget.LoseFocus(mi))
|
||||
if (Ui.SelectedWidget != null && !Ui.SelectedWidget.LoseFocus(mi))
|
||||
return false;
|
||||
|
||||
SelectedWidget = this;
|
||||
Ui.SelectedWidget = this;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -251,8 +256,8 @@ namespace OpenRA.Widgets
|
||||
|
||||
public virtual bool LoseFocus()
|
||||
{
|
||||
if (SelectedWidget == this)
|
||||
SelectedWidget = null;
|
||||
if (Ui.SelectedWidget == this)
|
||||
Ui.SelectedWidget = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -285,17 +290,17 @@ namespace OpenRA.Widgets
|
||||
if (!(Focused || (IsVisible() && GetEventBounds().Contains(mi.Location))))
|
||||
return false;
|
||||
|
||||
var oldMouseOver = MouseOverWidget;
|
||||
var oldMouseOver = Ui.MouseOverWidget;
|
||||
// Send the event to the deepest children first and bubble up if unhandled
|
||||
foreach (var child in Children.OfType<Widget>().Reverse())
|
||||
if (child.HandleMouseInputOuter(mi))
|
||||
return true;
|
||||
|
||||
if (IgnoreChildMouseOver)
|
||||
MouseOverWidget = oldMouseOver;
|
||||
Ui.MouseOverWidget = oldMouseOver;
|
||||
|
||||
if (mi.Event == MouseInputEvent.Move && MouseOverWidget == null && !IgnoreMouseOver)
|
||||
MouseOverWidget = this;
|
||||
if (mi.Event == MouseInputEvent.Move && Ui.MouseOverWidget == null && !IgnoreMouseOver)
|
||||
Ui.MouseOverWidget = this;
|
||||
|
||||
return HandleMouseInput(mi);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user