Make UI cursors configurable.
This commit is contained in:
committed by
Paul Chote
parent
96c4554644
commit
e7cfd2765c
@@ -190,7 +190,7 @@ namespace OpenRA
|
|||||||
OrderManager.LastTickTime = RunTime;
|
OrderManager.LastTickTime = RunTime;
|
||||||
OrderManager.StartGame();
|
OrderManager.StartGame();
|
||||||
worldRenderer.RefreshPalette();
|
worldRenderer.RefreshPalette();
|
||||||
Cursor.SetCursor("default");
|
Cursor.SetCursor(ChromeMetrics.Get<string>("DefaultCursor"));
|
||||||
|
|
||||||
// Now loading is completed, now is the ideal time to run a GC and compact the LOH.
|
// Now loading is completed, now is the ideal time to run a GC and compact the LOH.
|
||||||
// - All the temporary garbage created during loading can be collected.
|
// - All the temporary garbage created during loading can be collected.
|
||||||
|
|||||||
@@ -13,11 +13,15 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
namespace OpenRA.Orders
|
namespace OpenRA.Orders
|
||||||
{
|
{
|
||||||
public class UnitOrderGenerator : IOrderGenerator
|
public class UnitOrderGenerator : IOrderGenerator
|
||||||
{
|
{
|
||||||
|
readonly string worldSelectCursor = ChromeMetrics.Get<string>("WorldSelectCursor");
|
||||||
|
readonly string worldDefaultCursor = ChromeMetrics.Get<string>("WorldDefaultCursor");
|
||||||
|
|
||||||
static Target TargetForInput(World world, CPos cell, int2 worldPixel, MouseInput mi)
|
static Target TargetForInput(World world, CPos cell, int2 worldPixel, MouseInput mi)
|
||||||
{
|
{
|
||||||
var actor = world.ScreenMap.ActorsAtMouse(mi)
|
var actor = world.ScreenMap.ActorsAtMouse(mi)
|
||||||
@@ -85,7 +89,7 @@ namespace OpenRA.Orders
|
|||||||
(mi.Modifiers.HasModifier(Modifiers.Shift) || !world.Selection.Actors.Any());
|
(mi.Modifiers.HasModifier(Modifiers.Shift) || !world.Selection.Actors.Any());
|
||||||
}
|
}
|
||||||
|
|
||||||
return useSelect ? "select" : "default";
|
return useSelect ? worldSelectCursor : worldDefaultCursor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Deactivate() { }
|
public void Deactivate() { }
|
||||||
|
|||||||
@@ -167,6 +167,8 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
public abstract class Widget
|
public abstract class Widget
|
||||||
{
|
{
|
||||||
|
string defaultCursor = null;
|
||||||
|
|
||||||
public readonly List<Widget> Children = new List<Widget>();
|
public readonly List<Widget> Children = new List<Widget>();
|
||||||
|
|
||||||
// Info defined in YAML
|
// Info defined in YAML
|
||||||
@@ -235,6 +237,8 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
public virtual void Initialize(WidgetArgs args)
|
public virtual void Initialize(WidgetArgs args)
|
||||||
{
|
{
|
||||||
|
defaultCursor = ChromeMetrics.Get<string>("DefaultCursor");
|
||||||
|
|
||||||
// Parse the YAML equations to find the widget bounds
|
// Parse the YAML equations to find the widget bounds
|
||||||
var parentBounds = (Parent == null)
|
var parentBounds = (Parent == null)
|
||||||
? new Rectangle(0, 0, Game.Renderer.Resolution.Width, Game.Renderer.Resolution.Height)
|
? new Rectangle(0, 0, Game.Renderer.Resolution.Width, Game.Renderer.Resolution.Height)
|
||||||
@@ -347,7 +351,7 @@ namespace OpenRA.Widgets
|
|||||||
Ui.KeyboardFocusWidget = null;
|
Ui.KeyboardFocusWidget = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual string GetCursor(int2 pos) { return "default"; }
|
public virtual string GetCursor(int2 pos) { return defaultCursor; }
|
||||||
public string GetCursorOuter(int2 pos)
|
public string GetCursorOuter(int2 pos)
|
||||||
{
|
{
|
||||||
// Is the cursor on top of us?
|
// Is the cursor on top of us?
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ using OpenRA.Graphics;
|
|||||||
using OpenRA.Mods.Common.Traits;
|
using OpenRA.Mods.Common.Traits;
|
||||||
using OpenRA.Primitives;
|
using OpenRA.Primitives;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.Orders
|
namespace OpenRA.Mods.Common.Orders
|
||||||
{
|
{
|
||||||
@@ -38,6 +39,8 @@ namespace OpenRA.Mods.Common.Orders
|
|||||||
|
|
||||||
public class PlaceBuildingOrderGenerator : IOrderGenerator
|
public class PlaceBuildingOrderGenerator : IOrderGenerator
|
||||||
{
|
{
|
||||||
|
readonly string worldDefaultCursor = ChromeMetrics.Get<string>("WorldDefaultCursor");
|
||||||
|
|
||||||
class VariantWrapper
|
class VariantWrapper
|
||||||
{
|
{
|
||||||
public readonly ActorInfo ActorInfo;
|
public readonly ActorInfo ActorInfo;
|
||||||
@@ -288,7 +291,10 @@ namespace OpenRA.Mods.Common.Orders
|
|||||||
return preview != null ? preview.RenderAnnotations(wr, TopLeft) : Enumerable.Empty<IRenderable>();
|
return preview != null ? preview.RenderAnnotations(wr, TopLeft) : Enumerable.Empty<IRenderable>();
|
||||||
}
|
}
|
||||||
|
|
||||||
string IOrderGenerator.GetCursor(World world, CPos cell, int2 worldPixel, MouseInput mi) { return "default"; }
|
string IOrderGenerator.GetCursor(World world, CPos cell, int2 worldPixel, MouseInput mi)
|
||||||
|
{
|
||||||
|
return worldDefaultCursor;
|
||||||
|
}
|
||||||
|
|
||||||
bool IOrderGenerator.HandleKeyPress(KeyInput e)
|
bool IOrderGenerator.HandleKeyPress(KeyInput e)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,6 +68,8 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
public Action OnDoubleClick = () => { };
|
public Action OnDoubleClick = () => { };
|
||||||
public Action<KeyInput> OnKeyPress = _ => { };
|
public Action<KeyInput> OnKeyPress = _ => { };
|
||||||
|
|
||||||
|
public string Cursor = ChromeMetrics.Get<string>("ButtonCursor");
|
||||||
|
|
||||||
protected readonly Ruleset ModRules;
|
protected readonly Ruleset ModRules;
|
||||||
|
|
||||||
[ObjectCreator.UseCtor]
|
[ObjectCreator.UseCtor]
|
||||||
@@ -221,6 +223,8 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
tooltipContainer.Value.RemoveTooltip();
|
tooltipContainer.Value.RemoveTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string GetCursor(int2 pos) { return Cursor; }
|
||||||
|
|
||||||
public override int2 ChildOrigin
|
public override int2 ChildOrigin
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
readonly int cellWidth;
|
readonly int cellWidth;
|
||||||
readonly int previewWidth;
|
readonly int previewWidth;
|
||||||
readonly int previewHeight;
|
readonly int previewHeight;
|
||||||
|
readonly string worldDefaultCursor = ChromeMetrics.Get<string>("WorldDefaultCursor");
|
||||||
|
|
||||||
float radarMinimapHeight;
|
float radarMinimapHeight;
|
||||||
int frame;
|
int frame;
|
||||||
@@ -283,7 +284,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
|
|
||||||
var cursor = world.OrderGenerator.GetCursor(world, cell, worldPixel, mi);
|
var cursor = world.OrderGenerator.GetCursor(world, cell, worldPixel, mi);
|
||||||
if (cursor == null)
|
if (cursor == null)
|
||||||
return "default";
|
return worldDefaultCursor;
|
||||||
|
|
||||||
return Game.ModData.CursorProvider.HasCursorSequence(cursor + "-minimap") ? cursor + "-minimap" : cursor;
|
return Game.ModData.CursorProvider.HasCursorSequence(cursor + "-minimap") ? cursor + "-minimap" : cursor;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,3 +54,7 @@ Metrics:
|
|||||||
NormalSelectionColor: FFFFFF
|
NormalSelectionColor: FFFFFF
|
||||||
AltSelectionColor: 00FFFF
|
AltSelectionColor: 00FFFF
|
||||||
CtrlSelectionColor: FFFF00
|
CtrlSelectionColor: FFFF00
|
||||||
|
ButtonCursor: default
|
||||||
|
DefaultCursor: default
|
||||||
|
WorldSelectCursor: select
|
||||||
|
WorldDefaultCursor: default
|
||||||
|
|||||||
Reference in New Issue
Block a user