Add developer shortcut to reload chrome files

Hitting Ctrl+Shift+C will re-initialize the chrome provider,
reloading all chrome files instantly. Useful when changing the
UI.

Note: A new "RootWidget" was created to trap top-level (global)
shortcuts instead of putting everything in Widget.
This commit is contained in:
Pavlos Touboulidis
2014-06-05 01:32:15 +03:00
parent b8cdb224d1
commit db53f8e648
6 changed files with 130 additions and 57 deletions

View File

@@ -0,0 +1,39 @@
#region Copyright & License Information
/*
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
* see COPYING.
*/
#endregion
using System;
using OpenRA.Graphics;
namespace OpenRA.Widgets
{
public class RootWidget : ContainerWidget
{
public RootWidget()
{
IgnoreMouseOver = true;
}
public override bool HandleKeyPress(KeyInput e)
{
if (e.Event == KeyInputEvent.Down)
{
var hk = Hotkey.FromKeyInput(e);
if (hk == Game.Settings.Keys.DevReloadChromeKey)
{
ChromeProvider.Initialize();
return true;
}
}
return base.HandleKeyPress(e);
}
}
}

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Widgets
{
public static class Ui
{
public static Widget Root = new ContainerWidget();
public static Widget Root = new RootWidget();
public static int LastTickTime = Environment.TickCount;