Normalize checkboxes
This commit is contained in:
@@ -15,40 +15,32 @@ using System.Reflection;
|
|||||||
|
|
||||||
namespace OpenRA.Widgets
|
namespace OpenRA.Widgets
|
||||||
{
|
{
|
||||||
public class CheckboxWidget : Widget
|
public class CheckboxWidget : ButtonWidget
|
||||||
{
|
{
|
||||||
public string Text = "";
|
|
||||||
public int baseLine = 1;
|
|
||||||
public bool Bold = false;
|
|
||||||
public Func<bool> IsChecked = () => false;
|
public Func<bool> IsChecked = () => false;
|
||||||
public event Action<bool> OnChange = _ => {};
|
public int BaseLine = 1;
|
||||||
|
|
||||||
object boundObject;
|
object boundObject;
|
||||||
bool boundReadOnly;
|
bool boundReadOnly;
|
||||||
FieldInfo boundField;
|
FieldInfo boundField;
|
||||||
|
[Obsolete] public event Action<bool> OnChange = _ => {};
|
||||||
|
|
||||||
public override void DrawInner()
|
public CheckboxWidget()
|
||||||
|
: base()
|
||||||
{
|
{
|
||||||
var font = Bold ? Game.Renderer.Fonts["Bold"] : Game.Renderer.Fonts["Regular"];
|
OnClick = OldClickBehavior;
|
||||||
var pos = RenderOrigin;
|
IsChecked = () => (boundObject != null && (bool)boundField.GetValue(boundObject));
|
||||||
var rect = RenderBounds;
|
|
||||||
var check = new Rectangle(rect.Location,
|
|
||||||
new Size(Bounds.Height, Bounds.Height));
|
|
||||||
WidgetUtils.DrawPanel("dialog3", check);
|
|
||||||
|
|
||||||
var textSize = font.Measure(Text);
|
|
||||||
font.DrawText(Text,
|
|
||||||
new float2(rect.Left + rect.Height * 1.5f,
|
|
||||||
pos.Y - baseLine + (Bounds.Height - textSize.Y)/2), Color.White);
|
|
||||||
|
|
||||||
if ((boundObject != null && (bool)boundField.GetValue(boundObject)) || IsChecked())
|
|
||||||
WidgetUtils.DrawRGBA(
|
|
||||||
ChromeProvider.GetImage("checkbox", "checked"),
|
|
||||||
new float2(rect.Left + 2, rect.Top + 2));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bind(object obj, string field) { Bind(obj, field, false); }
|
protected CheckboxWidget(CheckboxWidget widget)
|
||||||
public void BindReadOnly(object obj, string field) { Bind(obj, field, true); }
|
: base(widget)
|
||||||
|
{
|
||||||
|
OnClick = OldClickBehavior;
|
||||||
|
IsChecked = () => (boundObject != null && (bool)boundField.GetValue(boundObject));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Obsolete] public void Bind(object obj, string field) { Bind(obj, field, false); }
|
||||||
|
[Obsolete] public void BindReadOnly(object obj, string field) { Bind(obj, field, true); }
|
||||||
|
|
||||||
void Bind(object obj, string field, bool readOnly)
|
void Bind(object obj, string field, bool readOnly)
|
||||||
{
|
{
|
||||||
@@ -57,13 +49,8 @@ namespace OpenRA.Widgets
|
|||||||
boundField = obj.GetType().GetField(field);
|
boundField = obj.GetType().GetField(field);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: CheckboxWidget doesn't support raising events for mouse input
|
void OldClickBehavior()
|
||||||
public override bool HandleMouseInput(MouseInput mi)
|
|
||||||
{
|
{
|
||||||
// Checkboxes require lmb
|
|
||||||
if (mi.Button != MouseButton.Left || mi.Event != MouseInputEvent.Down)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
bool newVal = !IsChecked();
|
bool newVal = !IsChecked();
|
||||||
if (boundObject != null && !boundReadOnly)
|
if (boundObject != null && !boundReadOnly)
|
||||||
{
|
{
|
||||||
@@ -72,15 +59,31 @@ namespace OpenRA.Widgets
|
|||||||
}
|
}
|
||||||
|
|
||||||
OnChange(newVal);
|
OnChange(newVal);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public CheckboxWidget() : base() { }
|
public override void DrawInner()
|
||||||
|
|
||||||
protected CheckboxWidget(CheckboxWidget other)
|
|
||||||
: base(other)
|
|
||||||
{
|
{
|
||||||
Text = other.Text;
|
if (Font == "Regular" && Bold)
|
||||||
|
Font = "Bold";
|
||||||
|
|
||||||
|
var font = Game.Renderer.Fonts[Font];
|
||||||
|
var rect = RenderBounds;
|
||||||
|
var check = new Rectangle(rect.Location, new Size(Bounds.Height, Bounds.Height));
|
||||||
|
var state = IsDisabled() ? "checkbox-disabled" :
|
||||||
|
Depressed ? "checkbox-pressed" :
|
||||||
|
RenderBounds.Contains(Viewport.LastMousePos) ? "checkbox-hover" :
|
||||||
|
"checkbox";
|
||||||
|
|
||||||
|
WidgetUtils.DrawPanel(state, check);
|
||||||
|
|
||||||
|
var textSize = font.Measure(Text);
|
||||||
|
font.DrawText(Text,
|
||||||
|
new float2(rect.Left + rect.Height * 1.5f, RenderOrigin.Y - BaseLine + (Bounds.Height - textSize.Y)/2), Color.White);
|
||||||
|
|
||||||
|
if (IsChecked() || Depressed)
|
||||||
|
WidgetUtils.DrawRGBA(
|
||||||
|
ChromeProvider.GetImage("checkbox-bits", Depressed ? "pressed" : "checked"),
|
||||||
|
new float2(rect.Left + 2, rect.Top + 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Widget Clone() { return new CheckboxWidget(this); }
|
public override Widget Clone() { return new CheckboxWidget(this); }
|
||||||
|
|||||||
@@ -32,11 +32,11 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
var panel = widget.GetWidget("CHEATS_PANEL");
|
var panel = widget.GetWidget("CHEATS_PANEL");
|
||||||
|
|
||||||
var devTrait = world.LocalPlayer.PlayerActor.Trait<DeveloperMode>();
|
var devTrait = world.LocalPlayer.PlayerActor.Trait<DeveloperMode>();
|
||||||
var shroudCheckbox = panel.GetWidget<CncCheckboxWidget>("SHROUD_CHECKBOX");
|
var shroudCheckbox = panel.GetWidget<CheckboxWidget>("SHROUD_CHECKBOX");
|
||||||
shroudCheckbox.IsChecked = () => devTrait.DisableShroud;
|
shroudCheckbox.IsChecked = () => devTrait.DisableShroud;
|
||||||
shroudCheckbox.OnClick = () => Order(world, "DevShroud");
|
shroudCheckbox.OnClick = () => Order(world, "DevShroud");
|
||||||
|
|
||||||
var pathCheckbox = panel.GetWidget<CncCheckboxWidget>("PATHDEBUG_CHECKBOX");
|
var pathCheckbox = panel.GetWidget<CheckboxWidget>("PATHDEBUG_CHECKBOX");
|
||||||
pathCheckbox.IsChecked = () => devTrait.PathDebug;
|
pathCheckbox.IsChecked = () => devTrait.PathDebug;
|
||||||
pathCheckbox.OnClick = () => Order(world, "DevPathDebug");
|
pathCheckbox.OnClick = () => Order(world, "DevPathDebug");
|
||||||
|
|
||||||
@@ -44,23 +44,23 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
panel.GetWidget<ButtonWidget>("GIVE_CASH_BUTTON").OnClick = () =>
|
panel.GetWidget<ButtonWidget>("GIVE_CASH_BUTTON").OnClick = () =>
|
||||||
world.IssueOrder(new Order("DevGiveCash", world.LocalPlayer.PlayerActor, false));
|
world.IssueOrder(new Order("DevGiveCash", world.LocalPlayer.PlayerActor, false));
|
||||||
|
|
||||||
var fastBuildCheckbox = panel.GetWidget<CncCheckboxWidget>("INSTANT_BUILD_CHECKBOX");
|
var fastBuildCheckbox = panel.GetWidget<CheckboxWidget>("INSTANT_BUILD_CHECKBOX");
|
||||||
fastBuildCheckbox.IsChecked = () => devTrait.FastBuild;
|
fastBuildCheckbox.IsChecked = () => devTrait.FastBuild;
|
||||||
fastBuildCheckbox.OnClick = () => Order(world, "DevFastBuild");
|
fastBuildCheckbox.OnClick = () => Order(world, "DevFastBuild");
|
||||||
|
|
||||||
var fastChargeCheckbox = panel.GetWidget<CncCheckboxWidget>("INSTANT_CHARGE_CHECKBOX");
|
var fastChargeCheckbox = panel.GetWidget<CheckboxWidget>("INSTANT_CHARGE_CHECKBOX");
|
||||||
fastChargeCheckbox.IsChecked = () => devTrait.FastCharge;
|
fastChargeCheckbox.IsChecked = () => devTrait.FastCharge;
|
||||||
fastChargeCheckbox.OnClick = () => Order(world, "DevFastCharge");
|
fastChargeCheckbox.OnClick = () => Order(world, "DevFastCharge");
|
||||||
|
|
||||||
var allTechCheckbox = panel.GetWidget<CncCheckboxWidget>("ENABLE_TECH_CHECKBOX");
|
var allTechCheckbox = panel.GetWidget<CheckboxWidget>("ENABLE_TECH_CHECKBOX");
|
||||||
allTechCheckbox.IsChecked = () => devTrait.AllTech;
|
allTechCheckbox.IsChecked = () => devTrait.AllTech;
|
||||||
allTechCheckbox.OnClick = () => Order(world, "DevEnableTech");
|
allTechCheckbox.OnClick = () => Order(world, "DevEnableTech");
|
||||||
|
|
||||||
var powerCheckbox = panel.GetWidget<CncCheckboxWidget>("UNLIMITED_POWER_CHECKBOX");
|
var powerCheckbox = panel.GetWidget<CheckboxWidget>("UNLIMITED_POWER_CHECKBOX");
|
||||||
powerCheckbox.IsChecked = () => devTrait.UnlimitedPower;
|
powerCheckbox.IsChecked = () => devTrait.UnlimitedPower;
|
||||||
powerCheckbox.OnClick = () => Order(world, "DevUnlimitedPower");
|
powerCheckbox.OnClick = () => Order(world, "DevUnlimitedPower");
|
||||||
|
|
||||||
var buildAnywhereCheckbox = panel.GetWidget<CncCheckboxWidget>("BUILD_ANYWHERE_CHECKBOX");
|
var buildAnywhereCheckbox = panel.GetWidget<CheckboxWidget>("BUILD_ANYWHERE_CHECKBOX");
|
||||||
buildAnywhereCheckbox.IsChecked = () => devTrait.BuildAnywhere;
|
buildAnywhereCheckbox.IsChecked = () => devTrait.BuildAnywhere;
|
||||||
buildAnywhereCheckbox.OnClick = () => Order(world, "DevBuildAnywhere");
|
buildAnywhereCheckbox.OnClick = () => Order(world, "DevBuildAnywhere");
|
||||||
|
|
||||||
|
|||||||
@@ -209,13 +209,13 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
disconnectButton.OnClick = () => { Widget.CloseWindow(); onExit(); };
|
disconnectButton.OnClick = () => { Widget.CloseWindow(); onExit(); };
|
||||||
|
|
||||||
var gameStarting = false;
|
var gameStarting = false;
|
||||||
var lockTeamsCheckbox = lobby.GetWidget<CncCheckboxWidget>("LOCKTEAMS_CHECKBOX");
|
var lockTeamsCheckbox = lobby.GetWidget<CheckboxWidget>("LOCKTEAMS_CHECKBOX");
|
||||||
lockTeamsCheckbox.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.LockTeams;
|
lockTeamsCheckbox.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.LockTeams;
|
||||||
lockTeamsCheckbox.IsDisabled = () => !Game.IsHost || gameStarting;
|
lockTeamsCheckbox.IsDisabled = () => !Game.IsHost || gameStarting;
|
||||||
lockTeamsCheckbox.OnClick = () => orderManager.IssueOrder(Order.Command(
|
lockTeamsCheckbox.OnClick = () => orderManager.IssueOrder(Order.Command(
|
||||||
"lockteams {0}".F(!orderManager.LobbyInfo.GlobalSettings.LockTeams)));
|
"lockteams {0}".F(!orderManager.LobbyInfo.GlobalSettings.LockTeams)));
|
||||||
|
|
||||||
var allowCheats = lobby.GetWidget<CncCheckboxWidget>("ALLOWCHEATS_CHECKBOX");
|
var allowCheats = lobby.GetWidget<CheckboxWidget>("ALLOWCHEATS_CHECKBOX");
|
||||||
allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats;
|
allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats;
|
||||||
allowCheats.IsDisabled = () => !Game.IsHost || gameStarting;
|
allowCheats.IsDisabled = () => !Game.IsHost || gameStarting;
|
||||||
allowCheats.OnClick = () => orderManager.IssueOrder(Order.Command(
|
allowCheats.OnClick = () => orderManager.IssueOrder(Order.Command(
|
||||||
@@ -521,7 +521,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
team.OnMouseDown = _ => ShowTeamDropDown(team);
|
team.OnMouseDown = _ => ShowTeamDropDown(team);
|
||||||
team.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString();
|
team.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString();
|
||||||
|
|
||||||
var status = template.GetWidget<CncCheckboxWidget>("STATUS");
|
var status = template.GetWidget<CheckboxWidget>("STATUS");
|
||||||
status.IsChecked = () => c.State == Session.ClientState.Ready;
|
status.IsChecked = () => c.State == Session.ClientState.Ready;
|
||||||
status.OnClick += CycleReady;
|
status.OnClick += CycleReady;
|
||||||
|
|
||||||
@@ -553,7 +553,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
var team = template.GetWidget<LabelWidget>("TEAM");
|
var team = template.GetWidget<LabelWidget>("TEAM");
|
||||||
team.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString();
|
team.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString();
|
||||||
|
|
||||||
var status = template.GetWidget<CncCheckboxWidget>("STATUS");
|
var status = template.GetWidget<CheckboxWidget>("STATUS");
|
||||||
status.IsChecked = () => c.State == Session.ClientState.Ready;
|
status.IsChecked = () => c.State == Session.ClientState.Ready;
|
||||||
if (c.Index == orderManager.LocalClient.Index)
|
if (c.Index == orderManager.LocalClient.Index)
|
||||||
status.OnClick += CycleReady;
|
status.OnClick += CycleReady;
|
||||||
|
|||||||
@@ -13,39 +13,10 @@ using System.Collections.Generic;
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Cnc.Widgets
|
namespace OpenRA.Mods.Cnc.Widgets
|
||||||
{
|
{
|
||||||
public class CncCheckboxWidget : ButtonWidget
|
|
||||||
{
|
|
||||||
public CncCheckboxWidget()
|
|
||||||
: base() { }
|
|
||||||
protected CncCheckboxWidget(CncCheckboxWidget widget)
|
|
||||||
: base(widget) { }
|
|
||||||
|
|
||||||
public Func<bool> IsChecked = () => false;
|
|
||||||
public int baseLine = 1;
|
|
||||||
|
|
||||||
public override void DrawInner()
|
|
||||||
{
|
|
||||||
var font = Game.Renderer.Fonts[Font];
|
|
||||||
var rect = RenderBounds;
|
|
||||||
ButtonWidget.DrawBackground(new Rectangle(rect.Location, new Size(Bounds.Height, Bounds.Height)),
|
|
||||||
IsDisabled(), Depressed, RenderBounds.Contains(Viewport.LastMousePos));
|
|
||||||
|
|
||||||
var textSize = font.Measure(Text);
|
|
||||||
font.DrawText(Text,
|
|
||||||
new float2(rect.Left + rect.Height * 1.5f, RenderOrigin.Y - baseLine + (Bounds.Height - textSize.Y)/2), Color.White);
|
|
||||||
|
|
||||||
if (IsChecked())
|
|
||||||
WidgetUtils.DrawRGBA(
|
|
||||||
ChromeProvider.GetImage("checkbox", "checked"),
|
|
||||||
new float2(rect.Left + 2, rect.Top + 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override Widget Clone() { return new CncCheckboxWidget(this); }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class CncDropDownButtonWidget : DropDownButtonWidget
|
public class CncDropDownButtonWidget : DropDownButtonWidget
|
||||||
{
|
{
|
||||||
public CncDropDownButtonWidget() : base() { }
|
public CncDropDownButtonWidget() : base() { }
|
||||||
|
|||||||
@@ -81,11 +81,11 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
prevButton.OnClick = () => { currentSong = GetPrevSong(); Play(); };
|
prevButton.OnClick = () => { currentSong = GetPrevSong(); Play(); };
|
||||||
prevButton.IsDisabled = noMusic;
|
prevButton.IsDisabled = noMusic;
|
||||||
|
|
||||||
var shuffleCheckbox = panel.GetWidget<CncCheckboxWidget>("SHUFFLE");
|
var shuffleCheckbox = panel.GetWidget<CheckboxWidget>("SHUFFLE");
|
||||||
shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle;
|
shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle;
|
||||||
shuffleCheckbox.OnClick = () => Game.Settings.Sound.Shuffle ^= true;
|
shuffleCheckbox.OnClick = () => Game.Settings.Sound.Shuffle ^= true;
|
||||||
|
|
||||||
var repeatCheckbox = panel.GetWidget<CncCheckboxWidget>("REPEAT");
|
var repeatCheckbox = panel.GetWidget<CheckboxWidget>("REPEAT");
|
||||||
repeatCheckbox.IsChecked = () => Game.Settings.Sound.Repeat;
|
repeatCheckbox.IsChecked = () => Game.Settings.Sound.Repeat;
|
||||||
repeatCheckbox.OnClick = () => Game.Settings.Sound.Repeat ^= true;
|
repeatCheckbox.OnClick = () => Game.Settings.Sound.Repeat ^= true;
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
externalPort.Text = settings.Server.ExternalPort.ToString();
|
externalPort.Text = settings.Server.ExternalPort.ToString();
|
||||||
externalPort.IsDisabled = () => !advertiseOnline;
|
externalPort.IsDisabled = () => !advertiseOnline;
|
||||||
|
|
||||||
var advertiseCheckbox = panel.GetWidget<CncCheckboxWidget>("ADVERTISE_CHECKBOX");
|
var advertiseCheckbox = panel.GetWidget<CheckboxWidget>("ADVERTISE_CHECKBOX");
|
||||||
advertiseCheckbox.IsChecked = () => advertiseOnline;
|
advertiseCheckbox.IsChecked = () => advertiseOnline;
|
||||||
advertiseCheckbox.OnClick = () => advertiseOnline ^= true;
|
advertiseCheckbox.OnClick = () => advertiseOnline ^= true;
|
||||||
|
|
||||||
|
|||||||
@@ -64,22 +64,22 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
|
|
||||||
// Debug
|
// Debug
|
||||||
var perftext = Game.Settings.Debug.PerfText;
|
var perftext = Game.Settings.Debug.PerfText;
|
||||||
var perftextCheckbox = generalPane.GetWidget<CncCheckboxWidget>("PERFTEXT_CHECKBOX");
|
var perftextCheckbox = generalPane.GetWidget<CheckboxWidget>("PERFTEXT_CHECKBOX");
|
||||||
perftextCheckbox.IsChecked = () => perftext;
|
perftextCheckbox.IsChecked = () => perftext;
|
||||||
perftextCheckbox.OnClick = () => perftext ^= true;
|
perftextCheckbox.OnClick = () => perftext ^= true;
|
||||||
|
|
||||||
var perfgraph = Game.Settings.Debug.PerfGraph;
|
var perfgraph = Game.Settings.Debug.PerfGraph;
|
||||||
var perfgraphCheckbox = generalPane.GetWidget<CncCheckboxWidget>("PERFGRAPH_CHECKBOX");
|
var perfgraphCheckbox = generalPane.GetWidget<CheckboxWidget>("PERFGRAPH_CHECKBOX");
|
||||||
perfgraphCheckbox.IsChecked = () => perfgraph;
|
perfgraphCheckbox.IsChecked = () => perfgraph;
|
||||||
perfgraphCheckbox.OnClick = () => perfgraph ^= true;
|
perfgraphCheckbox.OnClick = () => perfgraph ^= true;
|
||||||
|
|
||||||
var matchtimer = Game.Settings.Game.MatchTimer;
|
var matchtimer = Game.Settings.Game.MatchTimer;
|
||||||
var matchtimerCheckbox = generalPane.GetWidget<CncCheckboxWidget>("MATCHTIME_CHECKBOX");
|
var matchtimerCheckbox = generalPane.GetWidget<CheckboxWidget>("MATCHTIME_CHECKBOX");
|
||||||
matchtimerCheckbox.IsChecked = () => matchtimer;
|
matchtimerCheckbox.IsChecked = () => matchtimer;
|
||||||
matchtimerCheckbox.OnClick = () => matchtimer ^= true;
|
matchtimerCheckbox.OnClick = () => matchtimer ^= true;
|
||||||
|
|
||||||
var checkunsynced = Game.Settings.Debug.SanityCheckUnsyncedCode;
|
var checkunsynced = Game.Settings.Debug.SanityCheckUnsyncedCode;
|
||||||
var checkunsyncedCheckbox = generalPane.GetWidget<CncCheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
|
var checkunsyncedCheckbox = generalPane.GetWidget<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
|
||||||
checkunsyncedCheckbox.IsChecked = () => checkunsynced;
|
checkunsyncedCheckbox.IsChecked = () => checkunsynced;
|
||||||
checkunsyncedCheckbox.OnClick = () => checkunsynced ^= true;
|
checkunsyncedCheckbox.OnClick = () => checkunsynced ^= true;
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
musicSlider.SetOffset(musicVolume);
|
musicSlider.SetOffset(musicVolume);
|
||||||
|
|
||||||
var shellmapMusic = Game.Settings.Game.ShellmapMusic;
|
var shellmapMusic = Game.Settings.Game.ShellmapMusic;
|
||||||
var shellmapMusicCheckbox = generalPane.GetWidget<CncCheckboxWidget>("SHELLMAP_MUSIC");
|
var shellmapMusicCheckbox = generalPane.GetWidget<CheckboxWidget>("SHELLMAP_MUSIC");
|
||||||
shellmapMusicCheckbox.IsChecked = () => shellmapMusic;
|
shellmapMusicCheckbox.IsChecked = () => shellmapMusic;
|
||||||
shellmapMusicCheckbox.OnClick = () => shellmapMusic ^= true;
|
shellmapMusicCheckbox.OnClick = () => shellmapMusic ^= true;
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
inputButton.OnClick = () => Settings = PanelType.Input;
|
inputButton.OnClick = () => Settings = PanelType.Input;
|
||||||
inputButton.IsDisabled = () => Settings == PanelType.Input;
|
inputButton.IsDisabled = () => Settings == PanelType.Input;
|
||||||
|
|
||||||
inputPane.GetWidget<CncCheckboxWidget>("CLASSICORDERS_CHECKBOX").IsDisabled = () => true;
|
inputPane.GetWidget<CheckboxWidget>("CLASSICORDERS_CHECKBOX").IsDisabled = () => true;
|
||||||
|
|
||||||
var scrollStrength = Game.Settings.Game.ViewportEdgeScrollStep;
|
var scrollStrength = Game.Settings.Game.ViewportEdgeScrollStep;
|
||||||
var scrollSlider = inputPane.GetWidget<SliderWidget>("SCROLLSPEED_SLIDER");
|
var scrollSlider = inputPane.GetWidget<SliderWidget>("SCROLLSPEED_SLIDER");
|
||||||
@@ -131,7 +131,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
scrollSlider.SetOffset(scrollStrength);
|
scrollSlider.SetOffset(scrollStrength);
|
||||||
|
|
||||||
var edgescroll = Game.Settings.Game.ViewportEdgeScroll;
|
var edgescroll = Game.Settings.Game.ViewportEdgeScroll;
|
||||||
var edgescrollCheckbox = inputPane.GetWidget<CncCheckboxWidget>("EDGESCROLL_CHECKBOX");
|
var edgescrollCheckbox = inputPane.GetWidget<CheckboxWidget>("EDGESCROLL_CHECKBOX");
|
||||||
edgescrollCheckbox.IsChecked = () => edgescroll;
|
edgescrollCheckbox.IsChecked = () => edgescroll;
|
||||||
edgescrollCheckbox.OnClick = () => edgescroll ^= true;
|
edgescrollCheckbox.OnClick = () => edgescroll ^= true;
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
|||||||
mouseScrollDropdown.GetText = () => mouseScroll.ToString();
|
mouseScrollDropdown.GetText = () => mouseScroll.ToString();
|
||||||
|
|
||||||
var teamchat = Game.Settings.Game.TeamChatToggle;
|
var teamchat = Game.Settings.Game.TeamChatToggle;
|
||||||
var teamchatCheckbox = inputPane.GetWidget<CncCheckboxWidget>("TEAMCHAT_CHECKBOX");
|
var teamchatCheckbox = inputPane.GetWidget<CheckboxWidget>("TEAMCHAT_CHECKBOX");
|
||||||
teamchatCheckbox.IsChecked = () => teamchat;
|
teamchatCheckbox.IsChecked = () => teamchat;
|
||||||
teamchatCheckbox.OnClick = () => teamchat ^= true;
|
teamchatCheckbox.OnClick = () => teamchat ^= true;
|
||||||
|
|
||||||
|
|||||||
@@ -181,6 +181,59 @@ slider-track: chrome.png
|
|||||||
corner-bl: 64,126,2,2
|
corner-bl: 64,126,2,2
|
||||||
corner-br: 126,126,2,2
|
corner-br: 126,126,2,2
|
||||||
|
|
||||||
|
|
||||||
|
# A copy of button
|
||||||
|
checkbox: chrome.png
|
||||||
|
background: 2,194,60,60
|
||||||
|
border-r: 62,194,2,60
|
||||||
|
border-l: 0,194,2,60
|
||||||
|
border-b: 2,254,60,2
|
||||||
|
border-t: 2,192,60,2
|
||||||
|
corner-tl: 0,192,2,2
|
||||||
|
corner-tr: 62,192,2,2
|
||||||
|
corner-bl: 0,254,2,2
|
||||||
|
corner-br: 62,254,2,2
|
||||||
|
|
||||||
|
# A copy of button-hover
|
||||||
|
checkbox-hover: chrome.png
|
||||||
|
background: 2,130,60,60
|
||||||
|
border-r: 62,132,2,60
|
||||||
|
border-l: 0,130,2,60
|
||||||
|
border-b: 2,190,60,2
|
||||||
|
border-t: 2,128,60,2
|
||||||
|
corner-tl: 0,128,2,2
|
||||||
|
corner-tr: 62,128,2,2
|
||||||
|
corner-bl: 0,190,2,2
|
||||||
|
corner-br: 62,190,2,2
|
||||||
|
|
||||||
|
# A copy of button-disabled
|
||||||
|
checkbox-disabled: chrome.png
|
||||||
|
background: 66,130,60,60
|
||||||
|
border-r: 126,130,2,60
|
||||||
|
border-l: 64,130,2,60
|
||||||
|
border-b: 66,190,60,2
|
||||||
|
border-t: 66,128,60,2
|
||||||
|
corner-tl: 64,128,2,2
|
||||||
|
corner-tr: 126,128,2,2
|
||||||
|
corner-bl: 64,190,2,2
|
||||||
|
corner-br: 126,190,2,2
|
||||||
|
|
||||||
|
# A copy of button-pressed
|
||||||
|
checkbox-pressed: chrome.png
|
||||||
|
background: 66,194,60,60
|
||||||
|
border-r: 126,194,2,60
|
||||||
|
border-l: 64,194,2,60
|
||||||
|
border-b: 66,254,60,2
|
||||||
|
border-t: 66,192,60,2
|
||||||
|
corner-tl: 64,192,2,2
|
||||||
|
corner-tr: 126,192,2,2
|
||||||
|
corner-bl: 64,254,2,2
|
||||||
|
corner-br: 126,254,2,2
|
||||||
|
|
||||||
|
checkbox-bits: buttons.png
|
||||||
|
checked: 0,112,16,16
|
||||||
|
pressed: 0,128,16,16
|
||||||
|
|
||||||
panel-black: chrome.png
|
panel-black: chrome.png
|
||||||
background: 66,2,60,60
|
background: 66,2,60,60
|
||||||
border-r: 126,2,2,60
|
border-r: 126,2,2,60
|
||||||
@@ -258,9 +311,6 @@ scrollbar: buttons.png
|
|||||||
down_arrow: 16,112,16,16
|
down_arrow: 16,112,16,16
|
||||||
up_arrow: 32,112,16,16
|
up_arrow: 32,112,16,16
|
||||||
|
|
||||||
checkbox: buttons.png
|
|
||||||
checked: 0,112,16,16
|
|
||||||
|
|
||||||
strategic: strategic.png
|
strategic: strategic.png
|
||||||
unowned: 0,0,32,32
|
unowned: 0,0,32,32
|
||||||
critical_unowned: 0,32,32,32
|
critical_unowned: 0,32,32,32
|
||||||
|
|||||||
@@ -18,49 +18,49 @@ Container@CHEATS_PANEL:
|
|||||||
Height:110
|
Height:110
|
||||||
Background:panel-black
|
Background:panel-black
|
||||||
Children:
|
Children:
|
||||||
CncCheckbox@INSTANT_BUILD:
|
Checkbox@INSTANT_BUILD:
|
||||||
Id:INSTANT_BUILD_CHECKBOX
|
Id:INSTANT_BUILD_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:15
|
Y:15
|
||||||
Width:200
|
Width:200
|
||||||
Height:20
|
Height:20
|
||||||
Text:Instant Build Speed
|
Text:Instant Build Speed
|
||||||
CncCheckbox@ENABLE_TECH:
|
Checkbox@ENABLE_TECH:
|
||||||
Id:ENABLE_TECH_CHECKBOX
|
Id:ENABLE_TECH_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:45
|
Y:45
|
||||||
Width:200
|
Width:200
|
||||||
Height:20
|
Height:20
|
||||||
Text:Build Everything
|
Text:Build Everything
|
||||||
CncCheckbox@BUILD_ANYWHERE:
|
Checkbox@BUILD_ANYWHERE:
|
||||||
Id:BUILD_ANYWHERE_CHECKBOX
|
Id:BUILD_ANYWHERE_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:75
|
Y:75
|
||||||
Width:200
|
Width:200
|
||||||
Height:20
|
Height:20
|
||||||
Text:Build Anywhere
|
Text:Build Anywhere
|
||||||
CncCheckbox@UNLIMITED_POWER:
|
Checkbox@UNLIMITED_POWER:
|
||||||
Id:UNLIMITED_POWER_CHECKBOX
|
Id:UNLIMITED_POWER_CHECKBOX
|
||||||
X:200
|
X:200
|
||||||
Y:15
|
Y:15
|
||||||
Width:200
|
Width:200
|
||||||
Height:20
|
Height:20
|
||||||
Text:Unlimited Power
|
Text:Unlimited Power
|
||||||
CncCheckbox@INSTANT_CHARGE:
|
Checkbox@INSTANT_CHARGE:
|
||||||
Id:INSTANT_CHARGE_CHECKBOX
|
Id:INSTANT_CHARGE_CHECKBOX
|
||||||
X:200
|
X:200
|
||||||
Y:45
|
Y:45
|
||||||
Width:200
|
Width:200
|
||||||
Height:20
|
Height:20
|
||||||
Text:Instant Charge Time
|
Text:Instant Charge Time
|
||||||
CncCheckbox@CHECKBOX_SHROUD:
|
Checkbox@CHECKBOX_SHROUD:
|
||||||
Id:SHROUD_CHECKBOX
|
Id:SHROUD_CHECKBOX
|
||||||
X:400
|
X:400
|
||||||
Y:15
|
Y:15
|
||||||
Height:20
|
Height:20
|
||||||
Width:200
|
Width:200
|
||||||
Text:Disable Shroud
|
Text:Disable Shroud
|
||||||
CncCheckbox@CHECKBOX_PATHDEBUG:
|
Checkbox@CHECKBOX_PATHDEBUG:
|
||||||
Id:PATHDEBUG_CHECKBOX
|
Id:PATHDEBUG_CHECKBOX
|
||||||
X:400
|
X:400
|
||||||
Y:45
|
Y:45
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ Container@CREATESERVER_PANEL:
|
|||||||
MaxLength:5
|
MaxLength:5
|
||||||
Height:25
|
Height:25
|
||||||
Text:1234
|
Text:1234
|
||||||
CncCheckbox@ADVERTISE_CHECKBOX:
|
Checkbox@ADVERTISE_CHECKBOX:
|
||||||
Id:ADVERTISE_CHECKBOX
|
Id:ADVERTISE_CHECKBOX
|
||||||
X:110
|
X:110
|
||||||
Y:155
|
Y:155
|
||||||
|
|||||||
@@ -31,14 +31,14 @@ Container@SERVER_LOBBY:
|
|||||||
Y:1
|
Y:1
|
||||||
Width:192
|
Width:192
|
||||||
Height:192
|
Height:192
|
||||||
CncCheckbox@LOCKTEAMS_CHECKBOX:
|
Checkbox@LOCKTEAMS_CHECKBOX:
|
||||||
Id:LOCKTEAMS_CHECKBOX
|
Id:LOCKTEAMS_CHECKBOX
|
||||||
X:PARENT_RIGHT-209
|
X:PARENT_RIGHT-209
|
||||||
Y:230
|
Y:230
|
||||||
Width:130
|
Width:130
|
||||||
Height:20
|
Height:20
|
||||||
Text: Lock Teams
|
Text: Lock Teams
|
||||||
CncCheckbox@ALLOWCHEATS_CHECKBOX:
|
Checkbox@ALLOWCHEATS_CHECKBOX:
|
||||||
Id:ALLOWCHEATS_CHECKBOX
|
Id:ALLOWCHEATS_CHECKBOX
|
||||||
X:PARENT_RIGHT-209
|
X:PARENT_RIGHT-209
|
||||||
Y:255
|
Y:255
|
||||||
@@ -107,7 +107,7 @@ Container@SERVER_LOBBY:
|
|||||||
Height:25
|
Height:25
|
||||||
X:390
|
X:390
|
||||||
Font:Regular
|
Font:Regular
|
||||||
CncCheckbox@STATUS:
|
Checkbox@STATUS:
|
||||||
Id:STATUS
|
Id:STATUS
|
||||||
X:448
|
X:448
|
||||||
Y:2
|
Y:2
|
||||||
@@ -179,7 +179,7 @@ Container@SERVER_LOBBY:
|
|||||||
Align:Center
|
Align:Center
|
||||||
X:390
|
X:390
|
||||||
Y:0
|
Y:0
|
||||||
CncCheckbox@STATUS:
|
Checkbox@STATUS:
|
||||||
Id:STATUS
|
Id:STATUS
|
||||||
X:448
|
X:448
|
||||||
Y:2
|
Y:2
|
||||||
|
|||||||
@@ -155,14 +155,14 @@ Container@MUSIC_PANEL:
|
|||||||
Height:25
|
Height:25
|
||||||
Align:Center
|
Align:Center
|
||||||
Font:Bold
|
Font:Bold
|
||||||
CncCheckbox@SHUFFLE:
|
Checkbox@SHUFFLE:
|
||||||
Id:SHUFFLE
|
Id:SHUFFLE
|
||||||
X:15
|
X:15
|
||||||
Y:PARENT_BOTTOM-15-HEIGHT
|
Y:PARENT_BOTTOM-15-HEIGHT
|
||||||
Width:85
|
Width:85
|
||||||
Height:20
|
Height:20
|
||||||
Text:Shuffle
|
Text:Shuffle
|
||||||
CncCheckbox@REPEAT:
|
Checkbox@REPEAT:
|
||||||
Id:REPEAT
|
Id:REPEAT
|
||||||
X:PARENT_RIGHT-15-WIDTH
|
X:PARENT_RIGHT-15-WIDTH
|
||||||
Y:PARENT_BOTTOM-15-HEIGHT
|
Y:PARENT_BOTTOM-15-HEIGHT
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ Container@SETTINGS_PANEL:
|
|||||||
Font:Bold
|
Font:Bold
|
||||||
Text:Debug
|
Text:Debug
|
||||||
Align:Center
|
Align:Center
|
||||||
CncCheckbox@PERFINFO_CHECKBOX:
|
Checkbox@PERFINFO_CHECKBOX:
|
||||||
Id:PERFTEXT_CHECKBOX
|
Id:PERFTEXT_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:120
|
Y:120
|
||||||
@@ -68,7 +68,7 @@ Container@SETTINGS_PANEL:
|
|||||||
Height:20
|
Height:20
|
||||||
Font:Regular
|
Font:Regular
|
||||||
Text:Show Performance Text
|
Text:Show Performance Text
|
||||||
CncCheckbox@PERFGRAPH_CHECKBOX:
|
Checkbox@PERFGRAPH_CHECKBOX:
|
||||||
Id:PERFGRAPH_CHECKBOX
|
Id:PERFGRAPH_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:150
|
Y:150
|
||||||
@@ -76,7 +76,7 @@ Container@SETTINGS_PANEL:
|
|||||||
Height:20
|
Height:20
|
||||||
Font:Regular
|
Font:Regular
|
||||||
Text:Show Performance Graph
|
Text:Show Performance Graph
|
||||||
CncCheckbox@MATCHTIME_CHECKBOX:
|
Checkbox@MATCHTIME_CHECKBOX:
|
||||||
Id:MATCHTIME_CHECKBOX
|
Id:MATCHTIME_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:180
|
Y:180
|
||||||
@@ -84,7 +84,7 @@ Container@SETTINGS_PANEL:
|
|||||||
Height:20
|
Height:20
|
||||||
Font:Regular
|
Font:Regular
|
||||||
Text:Show Match Timer
|
Text:Show Match Timer
|
||||||
CncCheckbox@CHECKUNSYNCED_CHECKBOX:
|
Checkbox@CHECKUNSYNCED_CHECKBOX:
|
||||||
Id:CHECKUNSYNCED_CHECKBOX
|
Id:CHECKUNSYNCED_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:210
|
Y:210
|
||||||
@@ -190,7 +190,7 @@ Container@SETTINGS_PANEL:
|
|||||||
Width:240
|
Width:240
|
||||||
Height:20
|
Height:20
|
||||||
Ticks:5
|
Ticks:5
|
||||||
CncCheckbox@SHELLMAP_MUSIC:
|
Checkbox@SHELLMAP_MUSIC:
|
||||||
Id:SHELLMAP_MUSIC
|
Id:SHELLMAP_MUSIC
|
||||||
X:375
|
X:375
|
||||||
Y:200
|
Y:200
|
||||||
@@ -212,7 +212,7 @@ Container@SETTINGS_PANEL:
|
|||||||
X:15
|
X:15
|
||||||
Y:20
|
Y:20
|
||||||
Width:340
|
Width:340
|
||||||
CncCheckbox@CLASSICORDERS_CHECKBOX:
|
Checkbox@CLASSICORDERS_CHECKBOX:
|
||||||
Id:CLASSICORDERS_CHECKBOX
|
Id:CLASSICORDERS_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:35
|
Y:35
|
||||||
@@ -241,7 +241,7 @@ Container@SETTINGS_PANEL:
|
|||||||
Height:20
|
Height:20
|
||||||
Ticks:5
|
Ticks:5
|
||||||
Range:10,50
|
Range:10,50
|
||||||
CncCheckbox@EDGESCROLL_CHECKBOX:
|
Checkbox@EDGESCROLL_CHECKBOX:
|
||||||
Id:EDGESCROLL_CHECKBOX
|
Id:EDGESCROLL_CHECKBOX
|
||||||
X:15
|
X:15
|
||||||
Y:150
|
Y:150
|
||||||
@@ -288,7 +288,7 @@ Container@SETTINGS_PANEL:
|
|||||||
Font:Bold
|
Font:Bold
|
||||||
Text:Keyboard Input
|
Text:Keyboard Input
|
||||||
Align:Center
|
Align:Center
|
||||||
CncCheckbox@TEAMCHAT_CHECKBOX:
|
Checkbox@TEAMCHAT_CHECKBOX:
|
||||||
Id:TEAMCHAT_CHECKBOX
|
Id:TEAMCHAT_CHECKBOX
|
||||||
X:375
|
X:375
|
||||||
Y:35
|
Y:35
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 19 KiB |
@@ -211,9 +211,6 @@ scrollbar: buttons.png
|
|||||||
down_arrow: 16,112,16,16
|
down_arrow: 16,112,16,16
|
||||||
up_arrow: 32,112,16,16
|
up_arrow: 32,112,16,16
|
||||||
|
|
||||||
checkbox: buttons.png
|
|
||||||
checked: 0,112,16,16
|
|
||||||
|
|
||||||
# A copy of dialog3
|
# A copy of dialog3
|
||||||
progressbar-bg: dialog.png
|
progressbar-bg: dialog.png
|
||||||
background: 641,1,126,126
|
background: 641,1,126,126
|
||||||
@@ -370,3 +367,55 @@ slider-track: dialog.png
|
|||||||
corner-tr: 722,0,1,1
|
corner-tr: 722,0,1,1
|
||||||
corner-bl: 640,82,1,1
|
corner-bl: 640,82,1,1
|
||||||
corner-br: 722,82,1,1
|
corner-br: 722,82,1,1
|
||||||
|
|
||||||
|
# A copy of dialog3
|
||||||
|
checkbox: dialog.png
|
||||||
|
background: 641,1,126,126
|
||||||
|
border-r: 767,1,1,126
|
||||||
|
border-l: 640,1,1,126
|
||||||
|
border-b: 641,127,126,1
|
||||||
|
border-t: 641,0,126,1
|
||||||
|
corner-tl: 640,0,1,1
|
||||||
|
corner-tr: 722,0,1,1
|
||||||
|
corner-bl: 640,82,1,1
|
||||||
|
corner-br: 722,82,1,1
|
||||||
|
|
||||||
|
checkbox-bits: buttons.png
|
||||||
|
checked: 0,112,16,16
|
||||||
|
pressed: 0,128,16,16
|
||||||
|
|
||||||
|
# A copy of dialog3
|
||||||
|
checkbox-hover: dialog.png
|
||||||
|
background: 641,1,126,126
|
||||||
|
border-r: 767,1,1,126
|
||||||
|
border-l: 640,1,1,126
|
||||||
|
border-b: 641,127,126,1
|
||||||
|
border-t: 641,0,126,1
|
||||||
|
corner-tl: 640,0,1,1
|
||||||
|
corner-tr: 722,0,1,1
|
||||||
|
corner-bl: 640,82,1,1
|
||||||
|
corner-br: 722,82,1,1
|
||||||
|
|
||||||
|
# A copy of dialog3
|
||||||
|
checkbox-disabled: dialog.png
|
||||||
|
background: 641,1,126,126
|
||||||
|
border-r: 767,1,1,126
|
||||||
|
border-l: 640,1,1,126
|
||||||
|
border-b: 641,127,126,1
|
||||||
|
border-t: 641,0,126,1
|
||||||
|
corner-tl: 640,0,1,1
|
||||||
|
corner-tr: 722,0,1,1
|
||||||
|
corner-bl: 640,82,1,1
|
||||||
|
corner-br: 722,82,1,1
|
||||||
|
|
||||||
|
# A copy of dialog3
|
||||||
|
checkbox-pressed: dialog.png
|
||||||
|
background: 641,1,126,126
|
||||||
|
border-r: 767,1,1,126
|
||||||
|
border-l: 640,1,1,126
|
||||||
|
border-b: 641,127,126,1
|
||||||
|
border-t: 641,0,126,1
|
||||||
|
corner-tl: 640,0,1,1
|
||||||
|
corner-tr: 722,0,1,1
|
||||||
|
corner-bl: 640,82,1,1
|
||||||
|
corner-br: 722,82,1,1
|
||||||
Reference in New Issue
Block a user