Remove legacy settings panel.
This commit is contained in:
@@ -94,7 +94,6 @@
|
|||||||
<Compile Include="Widgets\Logic\CncIngameMenuLogic.cs" />
|
<Compile Include="Widgets\Logic\CncIngameMenuLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\CncInstallFromCDLogic.cs" />
|
<Compile Include="Widgets\Logic\CncInstallFromCDLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\CncMenuLogic.cs" />
|
<Compile Include="Widgets\Logic\CncMenuLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\CncSettingsLogic.cs" />
|
|
||||||
<Compile Include="Widgets\Logic\ProductionTooltipLogic.cs" />
|
<Compile Include="Widgets\Logic\ProductionTooltipLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\SupportPowerTooltipLogic.cs" />
|
<Compile Include="Widgets\Logic\SupportPowerTooltipLogic.cs" />
|
||||||
<Compile Include="Widgets\ProductionPaletteWidget.cs" />
|
<Compile Include="Widgets\ProductionPaletteWidget.cs" />
|
||||||
|
|||||||
@@ -403,7 +403,6 @@
|
|||||||
<Compile Include="Widgets\Logic\ReplayBrowserLogic.cs" />
|
<Compile Include="Widgets\Logic\ReplayBrowserLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\ServerBrowserLogic.cs" />
|
<Compile Include="Widgets\Logic\ServerBrowserLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\ServerCreationLogic.cs" />
|
<Compile Include="Widgets\Logic\ServerCreationLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\SettingsMenuLogic.cs" />
|
|
||||||
<Compile Include="Widgets\MoneyBinWidget.cs" />
|
<Compile Include="Widgets\MoneyBinWidget.cs" />
|
||||||
<Compile Include="Widgets\ObserverProductionIconsWidget.cs" />
|
<Compile Include="Widgets\ObserverProductionIconsWidget.cs" />
|
||||||
<Compile Include="Widgets\ObserverSupportPowerIconsWidget.cs" />
|
<Compile Include="Widgets\ObserverSupportPowerIconsWidget.cs" />
|
||||||
@@ -472,6 +471,7 @@
|
|||||||
<Compile Include="CombatDebugOverlay.cs" />
|
<Compile Include="CombatDebugOverlay.cs" />
|
||||||
<Compile Include="World\PathfinderDebugOverlay.cs" />
|
<Compile Include="World\PathfinderDebugOverlay.cs" />
|
||||||
<Compile Include="Effects\ContrailFader.cs" />
|
<Compile Include="Effects\ContrailFader.cs" />
|
||||||
|
<Compile Include="Widgets\Logic\SettingsLogic.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
widget.Get<ButtonWidget>("SETTINGS").OnClick = () =>
|
widget.Get<ButtonWidget>("SETTINGS").OnClick = () =>
|
||||||
{
|
{
|
||||||
widget.Visible = false;
|
widget.Visible = false;
|
||||||
Ui.OpenWindow("SETTINGS_MENU", new WidgetArgs()
|
Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs()
|
||||||
{
|
{
|
||||||
{ "onExit", () => widget.Visible = true },
|
{ "onExit", () => widget.Visible = true },
|
||||||
{ "worldRenderer", worldRenderer },
|
{ "worldRenderer", worldRenderer },
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_SETTINGS").OnClick = () =>
|
widget.Get<ButtonWidget>("MAINMENU_BUTTON_SETTINGS").OnClick = () =>
|
||||||
{
|
{
|
||||||
Menu = MenuType.None;
|
Menu = MenuType.None;
|
||||||
Game.OpenWindow("SETTINGS_MENU", new WidgetArgs()
|
Game.OpenWindow("SETTINGS_PANEL", new WidgetArgs()
|
||||||
{
|
{
|
||||||
{ "onExit", () => Menu = MenuType.Main }
|
{ "onExit", () => Menu = MenuType.Main }
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,12 +18,11 @@ using OpenRA.GameRules;
|
|||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Mods.RA;
|
using OpenRA.Mods.RA;
|
||||||
using OpenRA.Mods.RA.Widgets;
|
using OpenRA.Mods.RA.Widgets;
|
||||||
using OpenRA.Mods.RA.Widgets.Logic;
|
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Cnc.Widgets.Logic
|
namespace OpenRA.Mods.Ra.Widgets.Logic
|
||||||
{
|
{
|
||||||
public class CncSettingsLogic
|
public class SettingsLogic
|
||||||
{
|
{
|
||||||
enum PanelType { Display, Audio, Input, Advanced }
|
enum PanelType { Display, Audio, Input, Advanced }
|
||||||
Dictionary<PanelType, Action> leavePanelActions = new Dictionary<PanelType, Action>();
|
Dictionary<PanelType, Action> leavePanelActions = new Dictionary<PanelType, Action>();
|
||||||
@@ -35,12 +34,12 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
|||||||
SoundDevice soundDevice;
|
SoundDevice soundDevice;
|
||||||
|
|
||||||
[ObjectCreator.UseCtor]
|
[ObjectCreator.UseCtor]
|
||||||
public CncSettingsLogic(Widget widget, Action onExit, WorldRenderer worldRenderer)
|
public SettingsLogic(Widget widget, Action onExit, WorldRenderer worldRenderer)
|
||||||
{
|
{
|
||||||
this.worldRenderer = worldRenderer;
|
this.worldRenderer = worldRenderer;
|
||||||
|
|
||||||
panelContainer = widget.Get("SETTINGS_PANEL");
|
panelContainer = widget.Get("SETTINGS_PANEL");
|
||||||
tabContainer = panelContainer;
|
tabContainer = widget.Get("TAB_CONTAINER");
|
||||||
|
|
||||||
RegisterSettingsPanel(PanelType.Display, InitDisplayPanel, ResetDisplayPanel, "DISPLAY_PANEL", "DISPLAY_TAB");
|
RegisterSettingsPanel(PanelType.Display, InitDisplayPanel, ResetDisplayPanel, "DISPLAY_PANEL", "DISPLAY_TAB");
|
||||||
RegisterSettingsPanel(PanelType.Audio, InitAudioPanel, ResetAudioPanel, "AUDIO_PANEL", "AUDIO_TAB");
|
RegisterSettingsPanel(PanelType.Audio, InitAudioPanel, ResetAudioPanel, "AUDIO_PANEL", "AUDIO_TAB");
|
||||||
@@ -125,11 +124,11 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
|||||||
BindCheckboxPref(panel, "SHOW_SHELLMAP", gs, "ShowShellmap");
|
BindCheckboxPref(panel, "SHOW_SHELLMAP", gs, "ShowShellmap");
|
||||||
|
|
||||||
var languageDropDownButton = panel.Get<DropDownButtonWidget>("LANGUAGE_DROPDOWNBUTTON");
|
var languageDropDownButton = panel.Get<DropDownButtonWidget>("LANGUAGE_DROPDOWNBUTTON");
|
||||||
languageDropDownButton.OnMouseDown = _ => SettingsMenuLogic.ShowLanguageDropdown(languageDropDownButton);
|
languageDropDownButton.OnMouseDown = _ => ShowLanguageDropdown(languageDropDownButton);
|
||||||
languageDropDownButton.GetText = () => FieldLoader.Translate(ds.Language);
|
languageDropDownButton.GetText = () => FieldLoader.Translate(ds.Language);
|
||||||
|
|
||||||
var windowModeDropdown = panel.Get<DropDownButtonWidget>("MODE_DROPDOWN");
|
var windowModeDropdown = panel.Get<DropDownButtonWidget>("MODE_DROPDOWN");
|
||||||
windowModeDropdown.OnMouseDown = _ => SettingsMenuLogic.ShowWindowModeDropdown(windowModeDropdown, ds);
|
windowModeDropdown.OnMouseDown = _ => ShowWindowModeDropdown(windowModeDropdown, ds);
|
||||||
windowModeDropdown.GetText = () => ds.Mode == WindowMode.Windowed ?
|
windowModeDropdown.GetText = () => ds.Mode == WindowMode.Windowed ?
|
||||||
"Windowed" : ds.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
|
"Windowed" : ds.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
|
||||||
|
|
||||||
@@ -406,5 +405,44 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
|||||||
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
|
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ShowWindowModeDropdown(DropDownButtonWidget dropdown, GraphicSettings s)
|
||||||
|
{
|
||||||
|
var options = new Dictionary<string, WindowMode>()
|
||||||
|
{
|
||||||
|
{ "Pseudo-Fullscreen", WindowMode.PseudoFullscreen },
|
||||||
|
{ "Fullscreen", WindowMode.Fullscreen },
|
||||||
|
{ "Windowed", WindowMode.Windowed },
|
||||||
|
};
|
||||||
|
|
||||||
|
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
|
||||||
|
{
|
||||||
|
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||||
|
() => s.Mode == options[o],
|
||||||
|
() => s.Mode = options[o]);
|
||||||
|
|
||||||
|
item.Get<LabelWidget>("LABEL").GetText = () => o;
|
||||||
|
return item;
|
||||||
|
};
|
||||||
|
|
||||||
|
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ShowLanguageDropdown(DropDownButtonWidget dropdown)
|
||||||
|
{
|
||||||
|
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
|
||||||
|
{
|
||||||
|
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||||
|
() => Game.Settings.Graphics.Language == o,
|
||||||
|
() => Game.Settings.Graphics.Language = o);
|
||||||
|
|
||||||
|
item.Get<LabelWidget>("LABEL").GetText = () => FieldLoader.Translate(o);
|
||||||
|
return item;
|
||||||
|
};
|
||||||
|
|
||||||
|
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, Game.modData.Languages, setupItem);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,360 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2013 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 System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using OpenRA.FileFormats;
|
|
||||||
using OpenRA.FileFormats.Graphics;
|
|
||||||
using OpenRA.GameRules;
|
|
||||||
using OpenRA.Graphics;
|
|
||||||
using OpenRA.Widgets;
|
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA.Widgets.Logic
|
|
||||||
{
|
|
||||||
public class SettingsMenuLogic
|
|
||||||
{
|
|
||||||
Widget bg;
|
|
||||||
SoundDevice soundDevice;
|
|
||||||
|
|
||||||
[ObjectCreator.UseCtor]
|
|
||||||
public SettingsMenuLogic(Action onExit, WorldRenderer worldRenderer)
|
|
||||||
{
|
|
||||||
bg = Ui.Root.Get<BackgroundWidget>("SETTINGS_MENU");
|
|
||||||
var tabs = bg.Get<ContainerWidget>("TAB_CONTAINER");
|
|
||||||
|
|
||||||
//Tabs
|
|
||||||
tabs.Get<ButtonWidget>("GENERAL").OnClick = () => FlipToTab("GENERAL_PANE");
|
|
||||||
tabs.Get<ButtonWidget>("AUDIO").OnClick = () => FlipToTab("AUDIO_PANE");
|
|
||||||
tabs.Get<ButtonWidget>("DISPLAY").OnClick = () => FlipToTab("DISPLAY_PANE");
|
|
||||||
tabs.Get<ButtonWidget>("KEYS").OnClick = () => FlipToTab("KEYS_PANE");
|
|
||||||
tabs.Get<ButtonWidget>("DEBUG").OnClick = () => FlipToTab("DEBUG_PANE");
|
|
||||||
FlipToTab("GENERAL_PANE");
|
|
||||||
|
|
||||||
//General
|
|
||||||
var general = bg.Get("GENERAL_PANE");
|
|
||||||
|
|
||||||
var name = general.Get<TextFieldWidget>("NAME");
|
|
||||||
name.Text = Game.Settings.Player.Name;
|
|
||||||
name.OnLoseFocus = () =>
|
|
||||||
{
|
|
||||||
name.Text = name.Text.Trim();
|
|
||||||
if (name.Text.Length == 0)
|
|
||||||
name.Text = Game.Settings.Player.Name;
|
|
||||||
else
|
|
||||||
Game.Settings.Player.Name = name.Text;
|
|
||||||
};
|
|
||||||
name.OnEnterKey = () => { name.YieldKeyboardFocus(); return true; };
|
|
||||||
|
|
||||||
var edgescrollCheckbox = general.Get<CheckboxWidget>("EDGE_SCROLL");
|
|
||||||
edgescrollCheckbox.IsChecked = () => Game.Settings.Game.ViewportEdgeScroll;
|
|
||||||
edgescrollCheckbox.OnClick = () => Game.Settings.Game.ViewportEdgeScroll ^= true;
|
|
||||||
|
|
||||||
var edgeScrollSlider = general.Get<SliderWidget>("EDGE_SCROLL_AMOUNT");
|
|
||||||
edgeScrollSlider.Value = Game.Settings.Game.ViewportEdgeScrollStep;
|
|
||||||
edgeScrollSlider.OnChange += x => Game.Settings.Game.ViewportEdgeScrollStep = x;
|
|
||||||
|
|
||||||
var inversescroll = general.Get<CheckboxWidget>("INVERSE_SCROLL");
|
|
||||||
inversescroll.IsChecked = () => Game.Settings.Game.MouseScroll == MouseScrollType.Inverted;
|
|
||||||
inversescroll.OnClick = () => Game.Settings.Game.MouseScroll = (Game.Settings.Game.MouseScroll == MouseScrollType.Inverted) ? MouseScrollType.Standard : MouseScrollType.Inverted;
|
|
||||||
|
|
||||||
var showShellmapCheckbox = general.Get<CheckboxWidget>("SHOW_SHELLMAP");
|
|
||||||
showShellmapCheckbox.IsChecked = () => Game.Settings.Game.ShowShellmap;
|
|
||||||
showShellmapCheckbox.OnClick = () => Game.Settings.Game.ShowShellmap ^= true;
|
|
||||||
|
|
||||||
var useClassicMouseStyleCheckbox = general.Get<CheckboxWidget>("USE_CLASSIC_MOUSE_STYLE_CHECKBOX");
|
|
||||||
useClassicMouseStyleCheckbox.IsChecked = () => Game.Settings.Game.UseClassicMouseStyle;
|
|
||||||
useClassicMouseStyleCheckbox.OnClick = () => Game.Settings.Game.UseClassicMouseStyle ^= true;
|
|
||||||
|
|
||||||
var allowNatDiscoveryCheckbox = general.Get<CheckboxWidget>("ALLOW_NAT_DISCOVERY_CHECKBOX");
|
|
||||||
allowNatDiscoveryCheckbox.IsChecked = () => Game.Settings.Server.DiscoverNatDevices;
|
|
||||||
allowNatDiscoveryCheckbox.OnClick = () => Game.Settings.Server.DiscoverNatDevices ^= true;
|
|
||||||
|
|
||||||
// Audio
|
|
||||||
var audio = bg.Get("AUDIO_PANE");
|
|
||||||
var soundSettings = Game.Settings.Sound;
|
|
||||||
|
|
||||||
var soundslider = audio.Get<SliderWidget>("SOUND_VOLUME");
|
|
||||||
soundslider.OnChange += x => Sound.SoundVolume = x;
|
|
||||||
soundslider.Value = Sound.SoundVolume;
|
|
||||||
|
|
||||||
var musicslider = audio.Get<SliderWidget>("MUSIC_VOLUME");
|
|
||||||
musicslider.OnChange += x => Sound.MusicVolume = x;
|
|
||||||
musicslider.Value = Sound.MusicVolume;
|
|
||||||
|
|
||||||
var videoslider = audio.Get<SliderWidget>("VIDEO_VOLUME");
|
|
||||||
videoslider.OnChange += x => Sound.VideoVolume = x;
|
|
||||||
videoslider.Value = Sound.VideoVolume;
|
|
||||||
|
|
||||||
var cashTicksCheckbox = audio.Get<CheckboxWidget>("CASHTICK_CHECKBOX");
|
|
||||||
cashTicksCheckbox.IsChecked = () => Game.Settings.Sound.CashTicks;
|
|
||||||
cashTicksCheckbox.OnClick = () => Game.Settings.Sound.CashTicks ^= true;
|
|
||||||
|
|
||||||
var mapMusicCheckbox = audio.Get<CheckboxWidget>("MAP_MUSIC_CHECKBOX");
|
|
||||||
mapMusicCheckbox.IsChecked = () => Game.Settings.Sound.MapMusic;
|
|
||||||
mapMusicCheckbox.OnClick = () => Game.Settings.Sound.MapMusic ^= true;
|
|
||||||
|
|
||||||
var devices = Sound.AvailableDevices();
|
|
||||||
soundDevice = devices.FirstOrDefault(d => d.Engine == soundSettings.Engine && d.Device == soundSettings.Device) ?? devices.First();
|
|
||||||
|
|
||||||
var audioDeviceDropdown = audio.Get<DropDownButtonWidget>("AUDIO_DEVICE");
|
|
||||||
audioDeviceDropdown.OnMouseDown = _ => ShowAudioDeviceDropdown(audioDeviceDropdown, soundSettings, devices);
|
|
||||||
audioDeviceDropdown.GetText = () => soundDevice.Label;
|
|
||||||
|
|
||||||
// Display
|
|
||||||
var display = bg.Get("DISPLAY_PANE");
|
|
||||||
var gs = Game.Settings.Graphics;
|
|
||||||
|
|
||||||
var windowModeDropdown = display.Get<DropDownButtonWidget>("MODE_DROPDOWN");
|
|
||||||
windowModeDropdown.OnMouseDown = _ => ShowWindowModeDropdown(windowModeDropdown, gs);
|
|
||||||
windowModeDropdown.GetText = () => gs.Mode == WindowMode.Windowed ?
|
|
||||||
"Windowed" : gs.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
|
|
||||||
|
|
||||||
display.Get("WINDOW_RESOLUTION").IsVisible = () => gs.Mode == WindowMode.Windowed;
|
|
||||||
var windowWidth = display.Get<TextFieldWidget>("WINDOW_WIDTH");
|
|
||||||
windowWidth.Text = gs.WindowedSize.X.ToString();
|
|
||||||
|
|
||||||
var windowHeight = display.Get<TextFieldWidget>("WINDOW_HEIGHT");
|
|
||||||
windowHeight.Text = gs.WindowedSize.Y.ToString();
|
|
||||||
|
|
||||||
var pixelDoubleCheckbox = display.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
|
|
||||||
pixelDoubleCheckbox.IsChecked = () => gs.PixelDouble;
|
|
||||||
pixelDoubleCheckbox.OnClick = () =>
|
|
||||||
{
|
|
||||||
gs.PixelDouble ^= true;
|
|
||||||
worldRenderer.Viewport.Zoom = gs.PixelDouble ? 2 : 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
var capFrameRateCheckbox = display.Get<CheckboxWidget>("CAPFRAMERATE_CHECKBOX");
|
|
||||||
capFrameRateCheckbox.IsChecked = () => gs.CapFramerate;
|
|
||||||
capFrameRateCheckbox.OnClick = () => gs.CapFramerate ^= true;
|
|
||||||
|
|
||||||
var maxFrameRate = display.Get<TextFieldWidget>("MAX_FRAMERATE");
|
|
||||||
maxFrameRate.Text = gs.MaxFramerate.ToString();
|
|
||||||
|
|
||||||
var languageDropDownButton = display.Get<DropDownButtonWidget>("LANGUAGE_DROPDOWNBUTTON");
|
|
||||||
languageDropDownButton.OnMouseDown = _ => ShowLanguageDropdown(languageDropDownButton);
|
|
||||||
languageDropDownButton.GetText = () => FieldLoader.Translate(Game.Settings.Graphics.Language);
|
|
||||||
|
|
||||||
// Keys
|
|
||||||
var keys = bg.Get("KEYS_PANE");
|
|
||||||
var keyConfig = Game.Settings.Keys;
|
|
||||||
|
|
||||||
var specialHotkeyList = keys.Get<ScrollPanelWidget>("SPECIALHOTKEY_LIST");
|
|
||||||
var specialHotkeyTemplate = specialHotkeyList.Get<ScrollItemWidget>("SPECIALHOTKEY_TEMPLATE");
|
|
||||||
|
|
||||||
var pauseKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(pauseKey, "Pause the game:", () => keyConfig.PauseKey, k => keyConfig.PauseKey = k);
|
|
||||||
specialHotkeyList.AddChild(pauseKey);
|
|
||||||
|
|
||||||
var viewportToBase = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(viewportToBase, "Move Viewport to Base:", () => keyConfig.CycleBaseKey, k => keyConfig.CycleBaseKey = k);
|
|
||||||
specialHotkeyList.AddChild(viewportToBase);
|
|
||||||
|
|
||||||
var lastEventKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(lastEventKey, "Move Viewport to Last Event:", () => keyConfig.ToLastEventKey, k => keyConfig.ToLastEventKey = k);
|
|
||||||
specialHotkeyList.AddChild(lastEventKey);
|
|
||||||
|
|
||||||
var viewportToSelectionKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(viewportToSelectionKey, "Move Viewport to Selection:", () => keyConfig.ToSelectionKey, k => keyConfig.ToSelectionKey = k);
|
|
||||||
specialHotkeyList.AddChild(viewportToSelectionKey);
|
|
||||||
|
|
||||||
var sellKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(sellKey, "Switch to Sell-Cursor:", () => keyConfig.SellKey, k => keyConfig.SellKey = k);
|
|
||||||
specialHotkeyList.AddChild(sellKey);
|
|
||||||
|
|
||||||
var powerDownKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(powerDownKey, "Switch to Power-Down-Cursor:", () => keyConfig.PowerDownKey, k => keyConfig.PowerDownKey = k);
|
|
||||||
specialHotkeyList.AddChild(powerDownKey);
|
|
||||||
|
|
||||||
var repairKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(repairKey, "Switch to Repair-Cursor:", () => keyConfig.RepairKey, k => keyConfig.RepairKey = k);
|
|
||||||
specialHotkeyList.AddChild(repairKey);
|
|
||||||
|
|
||||||
var tabCycleKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(tabCycleKey, "Cycle Tabs (+Shift to Reverse):", () => keyConfig.CycleTabsKey, k => keyConfig.CycleTabsKey = k);
|
|
||||||
specialHotkeyList.AddChild(tabCycleKey);
|
|
||||||
|
|
||||||
var unitCommandHotkeyList = keys.Get<ScrollPanelWidget>("UNITCOMMANDHOTKEY_LIST");
|
|
||||||
var unitCommandHotkeyTemplate = unitCommandHotkeyList.Get<ScrollItemWidget>("UNITCOMMANDHOTKEY_TEMPLATE");
|
|
||||||
|
|
||||||
var attackKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(attackKey, "Attack Move:", () => keyConfig.AttackMoveKey, k => keyConfig.AttackMoveKey = k);
|
|
||||||
unitCommandHotkeyList.AddChild(attackKey);
|
|
||||||
|
|
||||||
var stopKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(stopKey, "Stop:", () => keyConfig.StopKey, k => keyConfig.StopKey = k);
|
|
||||||
unitCommandHotkeyList.AddChild(stopKey);
|
|
||||||
|
|
||||||
var scatterKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(scatterKey, "Scatter:", () => keyConfig.ScatterKey, k => keyConfig.ScatterKey = k);
|
|
||||||
unitCommandHotkeyList.AddChild(scatterKey);
|
|
||||||
|
|
||||||
var stanceCycleKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(stanceCycleKey, "Cycle Stance:", () => keyConfig.StanceCycleKey, k => keyConfig.StanceCycleKey = k);
|
|
||||||
unitCommandHotkeyList.AddChild(stanceCycleKey);
|
|
||||||
|
|
||||||
var deployKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {});
|
|
||||||
SetupKeyBinding(deployKey, "Deploy:", () => keyConfig.DeployKey, k => keyConfig.DeployKey = k);
|
|
||||||
unitCommandHotkeyList.AddChild(deployKey);
|
|
||||||
|
|
||||||
var guardKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => { });
|
|
||||||
SetupKeyBinding(guardKey, "Guard: ", () => keyConfig.GuardKey, k => keyConfig.GuardKey = k);
|
|
||||||
unitCommandHotkeyList.AddChild(guardKey);
|
|
||||||
|
|
||||||
// Debug
|
|
||||||
var debug = bg.Get("DEBUG_PANE");
|
|
||||||
|
|
||||||
var perfgraphCheckbox = debug.Get<CheckboxWidget>("PERFGRAPH_CHECKBOX");
|
|
||||||
perfgraphCheckbox.IsChecked = () => Game.Settings.Debug.PerfGraph;
|
|
||||||
perfgraphCheckbox.OnClick = () => Game.Settings.Debug.PerfGraph ^= true;
|
|
||||||
|
|
||||||
var perftextCheckbox = debug.Get<CheckboxWidget>("PERFTEXT_CHECKBOX");
|
|
||||||
perftextCheckbox.IsChecked = () => Game.Settings.Debug.PerfText;
|
|
||||||
perftextCheckbox.OnClick = () => Game.Settings.Debug.PerfText ^= true;
|
|
||||||
|
|
||||||
var sampleSlider = debug.Get<SliderWidget>("PERFTEXT_SAMPLE_AMOUNT");
|
|
||||||
sampleSlider.Value = sampleSlider.MaximumValue-Game.Settings.Debug.Samples;
|
|
||||||
sampleSlider.OnChange += x => Game.Settings.Debug.Samples = (int)sampleSlider.MaximumValue-(int)Math.Round(x);
|
|
||||||
|
|
||||||
var checkunsyncedCheckbox = debug.Get<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
|
|
||||||
checkunsyncedCheckbox.IsChecked = () => Game.Settings.Debug.SanityCheckUnsyncedCode;
|
|
||||||
checkunsyncedCheckbox.OnClick = () => Game.Settings.Debug.SanityCheckUnsyncedCode ^= true;
|
|
||||||
|
|
||||||
var botdebugCheckbox = debug.Get<CheckboxWidget>("BOTDEBUG_CHECKBOX");
|
|
||||||
botdebugCheckbox.IsChecked = () => Game.Settings.Debug.BotDebug;
|
|
||||||
botdebugCheckbox.OnClick = () => Game.Settings.Debug.BotDebug ^= true;
|
|
||||||
|
|
||||||
var verboseNatDiscoveryCheckbox = debug.Get<CheckboxWidget>("VERBOSE_NAT_DISCOVERY_CHECKBOX");
|
|
||||||
verboseNatDiscoveryCheckbox.IsChecked = () => Game.Settings.Server.VerboseNatDiscovery;
|
|
||||||
verboseNatDiscoveryCheckbox.OnClick = () => Game.Settings.Server.VerboseNatDiscovery ^= true;
|
|
||||||
|
|
||||||
var developerMenuCheckbox = debug.Get<CheckboxWidget>("DEVELOPER_MENU_CHECKBOX");
|
|
||||||
developerMenuCheckbox.IsChecked = () => Game.Settings.Debug.DeveloperMenu;
|
|
||||||
developerMenuCheckbox.OnClick = () => Game.Settings.Debug.DeveloperMenu ^= true;
|
|
||||||
|
|
||||||
var showFatalErrorDialog = debug.Get<CheckboxWidget>("SHOW_FATAL_ERROR_DIALOG_CHECKBOX");
|
|
||||||
showFatalErrorDialog.IsChecked = () => Game.Settings.Debug.ShowFatalErrorDialog;
|
|
||||||
showFatalErrorDialog.OnClick = () => Game.Settings.Debug.ShowFatalErrorDialog ^= true;
|
|
||||||
|
|
||||||
bg.Get<ButtonWidget>("BUTTON_CLOSE").OnClick = () =>
|
|
||||||
{
|
|
||||||
int x, y;
|
|
||||||
int.TryParse(windowWidth.Text, out x);
|
|
||||||
int.TryParse(windowHeight.Text, out y);
|
|
||||||
gs.WindowedSize = new int2(x,y);
|
|
||||||
int.TryParse(maxFrameRate.Text, out gs.MaxFramerate);
|
|
||||||
soundSettings.Device = soundDevice.Device;
|
|
||||||
soundSettings.Engine = soundDevice.Engine;
|
|
||||||
Game.Settings.Save();
|
|
||||||
Ui.CloseWindow();
|
|
||||||
onExit();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
string open = null;
|
|
||||||
|
|
||||||
bool FlipToTab(string id)
|
|
||||||
{
|
|
||||||
if (open != null)
|
|
||||||
bg.Get(open).Visible = false;
|
|
||||||
|
|
||||||
open = id;
|
|
||||||
bg.Get(open).Visible = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool ShowLanguageDropdown(DropDownButtonWidget dropdown)
|
|
||||||
{
|
|
||||||
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
|
|
||||||
{
|
|
||||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
|
||||||
() => Game.Settings.Graphics.Language == o,
|
|
||||||
() => Game.Settings.Graphics.Language = o);
|
|
||||||
item.Get<LabelWidget>("LABEL").GetText = () => FieldLoader.Translate(o);
|
|
||||||
return item;
|
|
||||||
};
|
|
||||||
|
|
||||||
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, Game.modData.Languages, setupItem);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool ShowWindowModeDropdown(DropDownButtonWidget dropdown, GraphicSettings s)
|
|
||||||
{
|
|
||||||
var options = new Dictionary<string, WindowMode>()
|
|
||||||
{
|
|
||||||
{ "Pseudo-Fullscreen", WindowMode.PseudoFullscreen },
|
|
||||||
{ "Fullscreen", WindowMode.Fullscreen },
|
|
||||||
{ "Windowed", WindowMode.Windowed },
|
|
||||||
};
|
|
||||||
|
|
||||||
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
|
|
||||||
{
|
|
||||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
|
||||||
() => s.Mode == options[o],
|
|
||||||
() => s.Mode = options[o]);
|
|
||||||
item.Get<LabelWidget>("LABEL").GetText = () => o;
|
|
||||||
return item;
|
|
||||||
};
|
|
||||||
|
|
||||||
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetupKeyBinding(ScrollItemWidget keyWidget, string description, Func<Hotkey> getValue, Action<Hotkey> setValue)
|
|
||||||
{
|
|
||||||
keyWidget.Get<LabelWidget>("FUNCTION").GetText = () => description;
|
|
||||||
|
|
||||||
var keyEntry = keyWidget.Get<HotkeyEntryWidget>("HOTKEY");
|
|
||||||
keyEntry.Key = getValue();
|
|
||||||
keyEntry.OnLoseFocus = () => setValue(keyEntry.Key);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool ShowRendererDropdown(DropDownButtonWidget dropdown, GraphicSettings s)
|
|
||||||
{
|
|
||||||
var options = new Dictionary<string, string>()
|
|
||||||
{
|
|
||||||
{ "OpenGL", "Gl" },
|
|
||||||
{ "Cg Toolkit", "Cg" },
|
|
||||||
};
|
|
||||||
|
|
||||||
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
|
|
||||||
{
|
|
||||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
|
||||||
() => s.Renderer == options[o],
|
|
||||||
() => s.Renderer = options[o]);
|
|
||||||
item.Get<LabelWidget>("LABEL").GetText = () => o;
|
|
||||||
return item;
|
|
||||||
};
|
|
||||||
|
|
||||||
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ShowAudioDeviceDropdown(DropDownButtonWidget dropdown, SoundSettings s, SoundDevice[] devices)
|
|
||||||
{
|
|
||||||
var i = 0;
|
|
||||||
var options = devices.ToDictionary(d => (i++).ToString(), d => d);
|
|
||||||
|
|
||||||
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
|
|
||||||
{
|
|
||||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
|
||||||
() => soundDevice == options[o],
|
|
||||||
() => soundDevice = options[o]);
|
|
||||||
|
|
||||||
item.Get<LabelWidget>("LABEL").GetText = () => options[o].Label;
|
|
||||||
return item;
|
|
||||||
};
|
|
||||||
|
|
||||||
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
Container@SETTINGS_PANEL:
|
Container@SETTINGS_PANEL:
|
||||||
Logic:CncSettingsLogic
|
Logic:SettingsLogic
|
||||||
X:(WINDOW_RIGHT - WIDTH)/2
|
X:(WINDOW_RIGHT - WIDTH)/2
|
||||||
Y:(WINDOW_BOTTOM - HEIGHT)/2
|
Y:(WINDOW_BOTTOM - HEIGHT)/2
|
||||||
Width:590
|
Width:590
|
||||||
@@ -12,25 +12,27 @@ Container@SETTINGS_PANEL:
|
|||||||
Contrast:true
|
Contrast:true
|
||||||
Align:Center
|
Align:Center
|
||||||
Text:Settings
|
Text:Settings
|
||||||
Button@DISPLAY_TAB:
|
Container@TAB_CONTAINER:
|
||||||
Width:140
|
Children:
|
||||||
Height:35
|
Button@DISPLAY_TAB:
|
||||||
Text:Display
|
Width:140
|
||||||
Button@AUDIO_TAB:
|
Height:35
|
||||||
X:150
|
Text:Display
|
||||||
Width:140
|
Button@AUDIO_TAB:
|
||||||
Height:35
|
X:150
|
||||||
Text:Audio
|
Width:140
|
||||||
Button@INPUT_TAB:
|
Height:35
|
||||||
X:300
|
Text:Audio
|
||||||
Width:140
|
Button@INPUT_TAB:
|
||||||
Height:35
|
X:300
|
||||||
Text:Input
|
Width:140
|
||||||
Button@ADVANCED_TAB:
|
Height:35
|
||||||
X:450
|
Text:Input
|
||||||
Width:140
|
Button@ADVANCED_TAB:
|
||||||
Height:35
|
X:450
|
||||||
Text:Advanced
|
Width:140
|
||||||
|
Height:35
|
||||||
|
Text:Advanced
|
||||||
Button@RESET_BUTTON:
|
Button@RESET_BUTTON:
|
||||||
Y:293
|
Y:293
|
||||||
Width:140
|
Width:140
|
||||||
|
|||||||
@@ -1,217 +1,83 @@
|
|||||||
Background@SETTINGS_MENU:
|
Background@SETTINGS_PANEL:
|
||||||
Logic:SettingsMenuLogic
|
Logic:SettingsLogic
|
||||||
X:(WINDOW_RIGHT - WIDTH)/2
|
X:(WINDOW_RIGHT - WIDTH)/2
|
||||||
Y:(WINDOW_BOTTOM- HEIGHT)/2
|
Y:(WINDOW_BOTTOM- HEIGHT)/2
|
||||||
Width: 540
|
Width:600
|
||||||
Height: 400
|
Height:351
|
||||||
Children:
|
Children:
|
||||||
Label@SETTINGS_LABEL_TITLE:
|
Label@SETTINGS_LABEL_TITLE:
|
||||||
X:0
|
|
||||||
Y:20
|
Y:20
|
||||||
Width:540
|
Width:PARENT_RIGHT
|
||||||
Height:25
|
Height:25
|
||||||
Text:Settings
|
Text:Settings
|
||||||
Align:Center
|
Align:Center
|
||||||
Font:Bold
|
Font:Bold
|
||||||
Button@BUTTON_CLOSE:
|
Button@RESET_BUTTON:
|
||||||
|
X:20
|
||||||
|
Y:PARENT_BOTTOM - 45
|
||||||
|
Width:160
|
||||||
|
Height:25
|
||||||
|
Text:Reset
|
||||||
|
Button@BACK_BUTTON:
|
||||||
|
Key:escape
|
||||||
X:PARENT_RIGHT - 180
|
X:PARENT_RIGHT - 180
|
||||||
Y:PARENT_BOTTOM - 45
|
Y:PARENT_BOTTOM - 45
|
||||||
Width:160
|
Width:160
|
||||||
Height:25
|
Height:25
|
||||||
Text:Close
|
Text:Back
|
||||||
Font:Bold
|
Font:Bold
|
||||||
Key:escape
|
|
||||||
Container@TAB_CONTAINER:
|
Container@TAB_CONTAINER:
|
||||||
X:0
|
|
||||||
Y:50
|
Y:50
|
||||||
Width:PARENT_RIGHT
|
Width:PARENT_RIGHT
|
||||||
Height:25
|
Height:25
|
||||||
Children:
|
Children:
|
||||||
Button@GENERAL:
|
Button@DISPLAY_TAB:
|
||||||
X:45
|
X:115
|
||||||
Y:0
|
|
||||||
Width:90
|
|
||||||
Height:25
|
|
||||||
Text:General
|
|
||||||
Font:Bold
|
|
||||||
Button@AUDIO:
|
|
||||||
X:135
|
|
||||||
Y:0
|
|
||||||
Width:90
|
|
||||||
Height:25
|
|
||||||
Text:Audio
|
|
||||||
Font:Bold
|
|
||||||
Button@DISPLAY:
|
|
||||||
X:225
|
|
||||||
Y:0
|
|
||||||
Width:90
|
Width:90
|
||||||
Height:25
|
Height:25
|
||||||
Text:Display
|
Text:Display
|
||||||
Font:Bold
|
Font:Bold
|
||||||
Button@KEYS:
|
Button@AUDIO_TAB:
|
||||||
X:315
|
X:205
|
||||||
Y:0
|
|
||||||
Width:90
|
Width:90
|
||||||
Height:25
|
Height:25
|
||||||
Text:Keys
|
Text:Audio
|
||||||
Font:Bold
|
Font:Bold
|
||||||
Button@DEBUG:
|
Button@INPUT_TAB:
|
||||||
X:405
|
X:295
|
||||||
Y:0
|
|
||||||
Width:90
|
Width:90
|
||||||
Height:25
|
Height:25
|
||||||
Text:Debug
|
Text:Input
|
||||||
Font:Bold
|
Font:Bold
|
||||||
Container@GENERAL_PANE:
|
Button@ADVANCED_TAB:
|
||||||
X:37
|
X:385
|
||||||
Y:100
|
Width:90
|
||||||
Width:PARENT_RIGHT - 37
|
|
||||||
Height:PARENT_BOTTOM - 100
|
|
||||||
Visible: true
|
|
||||||
Children:
|
|
||||||
Label@SETTINGS_PLAYER_NAME:
|
|
||||||
X:0
|
|
||||||
Y:10
|
|
||||||
Text: Player Name:
|
|
||||||
TextField@NAME:
|
|
||||||
Text:Name
|
|
||||||
Width:139
|
|
||||||
Height:25
|
Height:25
|
||||||
X:90
|
Text:Advanced
|
||||||
Y:0
|
Font:Bold
|
||||||
MaxLength:16
|
Container@DISPLAY_PANEL:
|
||||||
Checkbox@EDGE_SCROLL:
|
X:5
|
||||||
X:0
|
Y:50
|
||||||
Y:30
|
Width:PARENT_RIGHT - 10
|
||||||
Width:200
|
Height:PARENT_BOTTOM
|
||||||
Height:20
|
|
||||||
Text: Enable Edge Scrolling
|
|
||||||
Label@EDGE_SCROLL_AMOUNT_LABEL:
|
|
||||||
X:0
|
|
||||||
Y:70
|
|
||||||
Text: Scroll Speed
|
|
||||||
Slider@EDGE_SCROLL_AMOUNT:
|
|
||||||
X:130
|
|
||||||
Y:60
|
|
||||||
Width:250
|
|
||||||
Height:20
|
|
||||||
Ticks:5
|
|
||||||
MinimumValue: 10
|
|
||||||
MaximumValue: 50
|
|
||||||
Checkbox@INVERSE_SCROLL:
|
|
||||||
X:0
|
|
||||||
Y:90
|
|
||||||
Width:200
|
|
||||||
Height:20
|
|
||||||
Text: Invert Mouse Drag Scrolling
|
|
||||||
Checkbox@SHOW_SHELLMAP:
|
|
||||||
X:0
|
|
||||||
Y:150
|
|
||||||
Width:200
|
|
||||||
Height:20
|
|
||||||
Text: Show Shellmap
|
|
||||||
Checkbox@USE_CLASSIC_MOUSE_STYLE_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:180
|
|
||||||
Width:200
|
|
||||||
Height:20
|
|
||||||
Text: Left-Click Orders
|
|
||||||
Checkbox@ALLOW_NAT_DISCOVERY_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:210
|
|
||||||
Width:200
|
|
||||||
Height:20
|
|
||||||
Text: Enable Network Discovery (UPnP)
|
|
||||||
Container@AUDIO_PANE:
|
|
||||||
X:37
|
|
||||||
Y:100
|
|
||||||
Width:PARENT_RIGHT - 37
|
|
||||||
Height:PARENT_BOTTOM - 100
|
|
||||||
Visible: false
|
|
||||||
Children:
|
|
||||||
Label@SOUND_VOLUME_LABEL:
|
|
||||||
X:0
|
|
||||||
Y:10
|
|
||||||
Text: Sound Volume
|
|
||||||
Slider@SOUND_VOLUME:
|
|
||||||
X:100
|
|
||||||
Y:0
|
|
||||||
Width:250
|
|
||||||
Height:20
|
|
||||||
Ticks:5
|
|
||||||
Label@MUSIC_VOLUME_LABEL:
|
|
||||||
X:0
|
|
||||||
Y:40
|
|
||||||
Text: Music Volume
|
|
||||||
Slider@MUSIC_VOLUME:
|
|
||||||
X:100
|
|
||||||
Y:30
|
|
||||||
Width:250
|
|
||||||
Height:20
|
|
||||||
Ticks:5
|
|
||||||
Label@VIDEO_VOLUME_LABEL:
|
|
||||||
X:0
|
|
||||||
Y:70
|
|
||||||
Text: Video Volume
|
|
||||||
Slider@VIDEO_VOLUME:
|
|
||||||
X:100
|
|
||||||
Y:60
|
|
||||||
Width:250
|
|
||||||
Height:20
|
|
||||||
Ticks:5
|
|
||||||
Checkbox@CASHTICK_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:90
|
|
||||||
Width:200
|
|
||||||
Height:20
|
|
||||||
Text:Cash Ticks
|
|
||||||
Checkbox@MAP_MUSIC_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:120
|
|
||||||
Width:200
|
|
||||||
Height:20
|
|
||||||
Text: Autoplay Music After Map Load
|
|
||||||
Label@AUDIO_DEVICE_LABEL:
|
|
||||||
X:0
|
|
||||||
Y:150
|
|
||||||
Width:75
|
|
||||||
Height:25
|
|
||||||
Text:Audio Device:
|
|
||||||
DropDownButton@AUDIO_DEVICE:
|
|
||||||
X:100
|
|
||||||
Y:150
|
|
||||||
Width:250
|
|
||||||
Height:25
|
|
||||||
Font:Regular
|
|
||||||
Label@AUDIO_DESC:
|
|
||||||
Y:175
|
|
||||||
Width:200
|
|
||||||
Height:25
|
|
||||||
Font:Tiny
|
|
||||||
Text:Device changes will be applied after the game is restarted.
|
|
||||||
Container@DISPLAY_PANE:
|
|
||||||
X:37
|
|
||||||
Y:100
|
|
||||||
Width:PARENT_RIGHT - 37
|
|
||||||
Height:PARENT_BOTTOM - 100
|
|
||||||
Visible: false
|
|
||||||
Children:
|
Children:
|
||||||
Label@MODE_LABEL:
|
Label@MODE_LABEL:
|
||||||
X:0
|
X:120
|
||||||
Y:0
|
Y:39
|
||||||
Width:45
|
Width:45
|
||||||
Height:25
|
Height:25
|
||||||
|
Align:Right
|
||||||
Text:Mode:
|
Text:Mode:
|
||||||
DropDownButton@MODE_DROPDOWN:
|
DropDownButton@MODE_DROPDOWN:
|
||||||
X:50
|
X:170
|
||||||
Y:0
|
Y:40
|
||||||
Width:170
|
Width:170
|
||||||
Height:25
|
Height:25
|
||||||
Font:Regular
|
Font:Regular
|
||||||
Text:Windowed
|
Text:Windowed
|
||||||
Container@WINDOW_RESOLUTION:
|
Container@WINDOW_RESOLUTION:
|
||||||
X:225
|
X:340
|
||||||
Y:0
|
Y:40
|
||||||
Children:
|
Children:
|
||||||
Label@At:
|
Label@At:
|
||||||
Text:@
|
Text:@
|
||||||
@@ -239,165 +105,328 @@ Background@SETTINGS_MENU:
|
|||||||
Height:25
|
Height:25
|
||||||
MaxLength:5
|
MaxLength:5
|
||||||
Label@VIDEO_DESC:
|
Label@VIDEO_DESC:
|
||||||
Y:30
|
Y:60
|
||||||
Width:PARENT_RIGHT
|
Width:PARENT_RIGHT
|
||||||
Height:25
|
Height:25
|
||||||
Font:Tiny
|
Font:Tiny
|
||||||
Align:Center
|
Align:Center
|
||||||
Text:Mode/Resolution changes will be applied after the game is restarted.
|
Text:Mode/Resolution changes will be applied after the game is restarted
|
||||||
|
Checkbox@FRAME_LIMIT_CHECKBOX:
|
||||||
|
X:15
|
||||||
|
Y:100
|
||||||
|
Width:200
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Enable Frame Limiter
|
||||||
Checkbox@PIXELDOUBLE_CHECKBOX:
|
Checkbox@PIXELDOUBLE_CHECKBOX:
|
||||||
Y:60
|
X:310
|
||||||
|
Y:105
|
||||||
Width:200
|
Width:200
|
||||||
Height:20
|
Height:20
|
||||||
Font:Regular
|
Font:Regular
|
||||||
Text:Enable Pixel Doubling
|
Text:Enable Pixel Doubling
|
||||||
Checkbox@CAPFRAMERATE_CHECKBOX:
|
Label@FRAME_LIMIT_DESC_A:
|
||||||
Y:90
|
X:45
|
||||||
Width:200
|
Y:132
|
||||||
Height:20
|
Width:50
|
||||||
Font:Regular
|
Height:25
|
||||||
Text:Cap Framerate @
|
Text:Limit to
|
||||||
TextField@MAX_FRAMERATE:
|
Align:Right
|
||||||
X:150
|
TextField@FRAME_LIMIT_TEXTFIELD:
|
||||||
Y:90
|
X:100
|
||||||
|
Y:133
|
||||||
Width:45
|
Width:45
|
||||||
Height:25
|
Height:25
|
||||||
MaxLength:3
|
MaxLength:3
|
||||||
|
Label@FRAME_LIMIT_DESC_B:
|
||||||
|
X:150
|
||||||
|
Y:132
|
||||||
|
Height:25
|
||||||
|
Text: FPS
|
||||||
|
Checkbox@SHOW_SHELLMAP:
|
||||||
|
X:310
|
||||||
|
Y:135
|
||||||
|
Width:200
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Show Shellmap
|
||||||
|
Label@VIDEO_TITLE:
|
||||||
|
Y:175
|
||||||
|
Width:PARENT_RIGHT
|
||||||
|
Font:Bold
|
||||||
|
Text:Localization
|
||||||
|
Align:Center
|
||||||
Label@LANGUAGE_LABEL:
|
Label@LANGUAGE_LABEL:
|
||||||
X:0
|
X:230 - WIDTH - 5
|
||||||
Y:130
|
Y:194
|
||||||
Width:75
|
Width:75
|
||||||
Height:25
|
Height:25
|
||||||
|
Align:Right
|
||||||
Text:Language:
|
Text:Language:
|
||||||
DropDownButton@LANGUAGE_DROPDOWNBUTTON:
|
DropDownButton@LANGUAGE_DROPDOWNBUTTON:
|
||||||
X:80
|
X:230
|
||||||
Y:130
|
Y:195
|
||||||
Width:140
|
Width:200
|
||||||
Height:25
|
Height:25
|
||||||
Label@LANGUAGE_DESC:
|
Label@VIDEO_DESC_A:
|
||||||
Y:160
|
Y:215
|
||||||
Width:PARENT_RIGHT
|
Width:PARENT_RIGHT
|
||||||
Height:25
|
Height:25
|
||||||
Font:Tiny
|
Font:Tiny
|
||||||
Align:Center
|
Align:Center
|
||||||
Text:Language changes will be applied after the game is restarted.
|
Text:Language changes will be applied after the game is restarted
|
||||||
Container@KEYS_PANE:
|
Label@VIDEO_DESC_B:
|
||||||
X:37
|
Y:230
|
||||||
Y:100
|
Width:PARENT_RIGHT
|
||||||
Width:PARENT_RIGHT - 37
|
Height:25
|
||||||
Height:PARENT_BOTTOM - 100
|
Font:Tiny
|
||||||
Visible: false
|
Align:Center
|
||||||
|
Text:Translations apply to text strings only; Speech and build icons will remain in English
|
||||||
|
Container@AUDIO_PANEL:
|
||||||
|
X:5
|
||||||
|
Y:50
|
||||||
|
Width:PARENT_RIGHT - 10
|
||||||
|
Height:PARENT_BOTTOM
|
||||||
Children:
|
Children:
|
||||||
Label@KEYS_SPECIALHOTKEYSHEADLINE:
|
Checkbox@SHELLMAP_MUSIC:
|
||||||
X:0
|
X:15
|
||||||
Y:0
|
Y:40
|
||||||
Text: Special Hotkeys:
|
Width:200
|
||||||
Font:Bold
|
|
||||||
ScrollPanel@SPECIALHOTKEY_LIST:
|
|
||||||
X:0
|
|
||||||
Y:20
|
|
||||||
Width:449
|
|
||||||
Height:85
|
|
||||||
Children:
|
|
||||||
ScrollItem@SPECIALHOTKEY_TEMPLATE:
|
|
||||||
Width:PARENT_RIGHT-27
|
|
||||||
Height:25
|
|
||||||
X:2
|
|
||||||
Y:0
|
|
||||||
Visible:false
|
|
||||||
Children:
|
|
||||||
Label@FUNCTION:
|
|
||||||
X:10
|
|
||||||
Width:200
|
|
||||||
Height:25
|
|
||||||
HotkeyEntry@HOTKEY:
|
|
||||||
X:250
|
|
||||||
Width:139
|
|
||||||
Height:25
|
|
||||||
Label@KEYS_UNITCOMMANDSHEADLINE:
|
|
||||||
X:0
|
|
||||||
Y:130
|
|
||||||
Text: Hotkeys for Unit Commands:
|
|
||||||
Font:Bold
|
|
||||||
ScrollPanel@UNITCOMMANDHOTKEY_LIST:
|
|
||||||
X:0
|
|
||||||
Y:150
|
|
||||||
Width:449
|
|
||||||
Height:85
|
|
||||||
Children:
|
|
||||||
ScrollItem@UNITCOMMANDHOTKEY_TEMPLATE:
|
|
||||||
Width:PARENT_RIGHT-27
|
|
||||||
Height:25
|
|
||||||
X:2
|
|
||||||
Y:0
|
|
||||||
Visible:false
|
|
||||||
Children:
|
|
||||||
Label@FUNCTION:
|
|
||||||
X:10
|
|
||||||
Width:200
|
|
||||||
Height:25
|
|
||||||
HotkeyEntry@HOTKEY:
|
|
||||||
X:250
|
|
||||||
Width:139
|
|
||||||
Height:25
|
|
||||||
Container@DEBUG_PANE:
|
|
||||||
X:37
|
|
||||||
Y:100
|
|
||||||
Width:PARENT_RIGHT - 37
|
|
||||||
Height:PARENT_BOTTOM - 100
|
|
||||||
Visible: false
|
|
||||||
Children:
|
|
||||||
Checkbox@PERFGRAPH_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:0
|
|
||||||
Width:300
|
|
||||||
Height:20
|
Height:20
|
||||||
Text:Show Performance Graph
|
Font:Regular
|
||||||
Checkbox@PERFTEXT_CHECKBOX:
|
Text:Shellmap / Mission Music
|
||||||
X:0
|
Label@SOUND_LABEL:
|
||||||
Y:30
|
X:PARENT_RIGHT - WIDTH - 270
|
||||||
Width:300
|
Y:37
|
||||||
Height:20
|
Width:95
|
||||||
Text:Show Performance Text
|
Height:25
|
||||||
Label@PERFTEXT_SAMPLE_LABEL:
|
Align:Right
|
||||||
X:30
|
Text:Sound Volume:
|
||||||
Y:70
|
Slider@SOUND_VOLUME:
|
||||||
Text:Update Rate
|
X:PARENT_RIGHT - WIDTH - 15
|
||||||
Slider@PERFTEXT_SAMPLE_AMOUNT:
|
Y:43
|
||||||
X:130
|
|
||||||
Y:60
|
|
||||||
Width:250
|
Width:250
|
||||||
Height:20
|
Height:20
|
||||||
Ticks:5
|
Ticks:5
|
||||||
MinimumValue: 1
|
Checkbox@CASH_TICKS:
|
||||||
MaximumValue: 50
|
X:15
|
||||||
Checkbox@CHECKUNSYNCED_CHECKBOX:
|
Y:70
|
||||||
X:0
|
|
||||||
Y:90
|
|
||||||
Width:300
|
|
||||||
Height:20
|
|
||||||
Text:Check Sync around Unsynced Code
|
|
||||||
Checkbox@BOTDEBUG_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:120
|
|
||||||
Width:300
|
|
||||||
Height:20
|
|
||||||
Text:Show Bot Debug Messages
|
|
||||||
Checkbox@VERBOSE_NAT_DISCOVERY_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:150
|
|
||||||
Width:300
|
|
||||||
Height:20
|
|
||||||
Text:Detailed NAT logging
|
|
||||||
Checkbox@DEVELOPER_MENU_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:180
|
|
||||||
Width:300
|
|
||||||
Height:20
|
|
||||||
Text:Enable Asset Browser (requires restart)
|
|
||||||
Checkbox@SHOW_FATAL_ERROR_DIALOG_CHECKBOX:
|
|
||||||
X:0
|
|
||||||
Y:210
|
|
||||||
Width:200
|
Width:200
|
||||||
Height:20
|
Height:20
|
||||||
Text:Show Fatal Error dialog
|
Font:Regular
|
||||||
|
Text:Cash Ticks
|
||||||
|
Label@MUSIC_LABEL:
|
||||||
|
X:PARENT_RIGHT - WIDTH - 270
|
||||||
|
Y:67
|
||||||
|
Width:95
|
||||||
|
Height:25
|
||||||
|
Align:Right
|
||||||
|
Text:Music Volume:
|
||||||
|
Slider@VIDEO_VOLUME:
|
||||||
|
X:PARENT_RIGHT - WIDTH - 15
|
||||||
|
Y:73
|
||||||
|
Width:250
|
||||||
|
Height:20
|
||||||
|
Ticks:5
|
||||||
|
Label@VIDEO_LABEL:
|
||||||
|
X:PARENT_RIGHT - WIDTH - 270
|
||||||
|
Y:97
|
||||||
|
Width:95
|
||||||
|
Height:25
|
||||||
|
Align:Right
|
||||||
|
Text:Video Volume:
|
||||||
|
Slider@MUSIC_VOLUME:
|
||||||
|
X:PARENT_RIGHT - WIDTH - 15
|
||||||
|
Y:103
|
||||||
|
Width:250
|
||||||
|
Height:20
|
||||||
|
Ticks:5
|
||||||
|
Label@AUDIO_DEVICE_LABEL:
|
||||||
|
X:190 - WIDTH - 5
|
||||||
|
Y:194
|
||||||
|
Width:75
|
||||||
|
Height:25
|
||||||
|
Align:Right
|
||||||
|
Text:Audio Device:
|
||||||
|
DropDownButton@AUDIO_DEVICE:
|
||||||
|
X:190
|
||||||
|
Y:195
|
||||||
|
Width:300
|
||||||
|
Height:25
|
||||||
|
Label@AUDIO_DEVICE_DESC:
|
||||||
|
Y:215
|
||||||
|
Width:PARENT_RIGHT
|
||||||
|
Height:25
|
||||||
|
Font:Tiny
|
||||||
|
Align:Center
|
||||||
|
Text:Device changes will be applied after the game is restarted
|
||||||
|
Container@INPUT_PANEL:
|
||||||
|
X:5
|
||||||
|
Y:50
|
||||||
|
Width:PARENT_RIGHT - 10
|
||||||
|
Height:PARENT_BOTTOM
|
||||||
|
Children:
|
||||||
|
Checkbox@CLASSICORDERS_CHECKBOX:
|
||||||
|
X:15
|
||||||
|
Y:40
|
||||||
|
Width:250
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Left-Click Orders
|
||||||
|
Label@MOUSE_SCROLL_LABEL:
|
||||||
|
X:PARENT_RIGHT - WIDTH - 120
|
||||||
|
Y:39
|
||||||
|
Width:160
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Middle-Mouse Scrolling:
|
||||||
|
Align:Right
|
||||||
|
DropDownButton@MOUSE_SCROLL:
|
||||||
|
X:PARENT_RIGHT - WIDTH - 15
|
||||||
|
Y:38
|
||||||
|
Width:100
|
||||||
|
Height:25
|
||||||
|
Font:Regular
|
||||||
|
Text:Enabled
|
||||||
|
Checkbox@EDGESCROLL_CHECKBOX:
|
||||||
|
X:15
|
||||||
|
Y:70
|
||||||
|
Width:130
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Edge Scrolling
|
||||||
|
Label@SCROLL_SPEED_LABEL:
|
||||||
|
X:PARENT_RIGHT - WIDTH - 270
|
||||||
|
Y:67
|
||||||
|
Width:95
|
||||||
|
Height:25
|
||||||
|
Text:Scroll Speed:
|
||||||
|
Align:Right
|
||||||
|
Slider@SCROLLSPEED_SLIDER:
|
||||||
|
X:PARENT_RIGHT - WIDTH - 15
|
||||||
|
Y:73
|
||||||
|
Width:250
|
||||||
|
Height:20
|
||||||
|
Ticks:5
|
||||||
|
MinimumValue: 10
|
||||||
|
MaximumValue: 50
|
||||||
|
Label@HOTKEY_TITLE:
|
||||||
|
Y:115
|
||||||
|
Width:PARENT_RIGHT
|
||||||
|
Font:Bold
|
||||||
|
Text:Hotkeys
|
||||||
|
Align:Center
|
||||||
|
ScrollPanel@HOTKEY_LIST:
|
||||||
|
X:15
|
||||||
|
Y:135
|
||||||
|
Width:560
|
||||||
|
ItemSpacing:4
|
||||||
|
Height:110
|
||||||
|
Children:
|
||||||
|
ScrollItem@HEADER:
|
||||||
|
BaseName:scrollheader
|
||||||
|
Width:528
|
||||||
|
Height:13
|
||||||
|
Visible:false
|
||||||
|
Children:
|
||||||
|
Label@LABEL:
|
||||||
|
Font:TinyBold
|
||||||
|
Width:PARENT_RIGHT
|
||||||
|
Height:10
|
||||||
|
Align:Center
|
||||||
|
Container@GLOBAL_TEMPLATE:
|
||||||
|
Width:262
|
||||||
|
Height:25
|
||||||
|
Visible:false
|
||||||
|
Children:
|
||||||
|
Label@FUNCTION:
|
||||||
|
Y:0-1
|
||||||
|
Width:PARENT_RIGHT - 85
|
||||||
|
Height:25
|
||||||
|
Align:Right
|
||||||
|
HotkeyEntry@HOTKEY:
|
||||||
|
X:PARENT_RIGHT-WIDTH
|
||||||
|
Width:80
|
||||||
|
Height:25
|
||||||
|
Container@UNIT_TEMPLATE:
|
||||||
|
Width:173
|
||||||
|
Height:25
|
||||||
|
Visible:false
|
||||||
|
Children:
|
||||||
|
Label@FUNCTION:
|
||||||
|
Y:0-1
|
||||||
|
Width:PARENT_RIGHT - 84
|
||||||
|
Height:25
|
||||||
|
Align:Right
|
||||||
|
HotkeyEntry@HOTKEY:
|
||||||
|
X:PARENT_RIGHT-WIDTH+1
|
||||||
|
Width:80
|
||||||
|
Height:25
|
||||||
|
Container@ADVANCED_PANEL:
|
||||||
|
X:5
|
||||||
|
Y:50
|
||||||
|
Width:PARENT_RIGHT - 10
|
||||||
|
Height:PARENT_BOTTOM
|
||||||
|
Children:
|
||||||
|
Checkbox@NAT_DISCOVERY:
|
||||||
|
X:15
|
||||||
|
Y:40
|
||||||
|
Width:200
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text: Enable Network Discovery (UPnP)
|
||||||
|
Checkbox@CRASH_DIALOG_CHECKBOX:
|
||||||
|
X:310
|
||||||
|
Y:40
|
||||||
|
Width:300
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Show Fatal Error dialog
|
||||||
|
Checkbox@PERFTEXT_CHECKBOX:
|
||||||
|
X:15
|
||||||
|
Y:70
|
||||||
|
Width:300
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Show Performance Text
|
||||||
|
Checkbox@PERFGRAPH_CHECKBOX:
|
||||||
|
X:310
|
||||||
|
Y:70
|
||||||
|
Width:300
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Show Performance Graph
|
||||||
|
Checkbox@DEVELOPER_MENU_CHECKBOX:
|
||||||
|
X:15
|
||||||
|
Y:100
|
||||||
|
Width:300
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Enable Asset Browser (requires restart)
|
||||||
|
Label@HOTKEY_TITLE:
|
||||||
|
Y:140
|
||||||
|
Width:PARENT_RIGHT
|
||||||
|
Font:Bold
|
||||||
|
Text:Debug
|
||||||
|
Align:Center
|
||||||
|
Checkbox@BOTDEBUG_CHECKBOX:
|
||||||
|
X:15
|
||||||
|
Y:160
|
||||||
|
Width:300
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Show Bot Debug Messages
|
||||||
|
Checkbox@VERBOSE_NAT_CHECKBOX:
|
||||||
|
X:310
|
||||||
|
Y:160
|
||||||
|
Width:300
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Detailed NAT logging
|
||||||
|
Checkbox@CHECKUNSYNCED_CHECKBOX:
|
||||||
|
X:15
|
||||||
|
Y:190
|
||||||
|
Width:300
|
||||||
|
Height:20
|
||||||
|
Font:Regular
|
||||||
|
Text:Check Sync around Unsynced Code
|
||||||
Reference in New Issue
Block a user