Implement new viewport size/zoom UI.
This commit is contained in:
@@ -25,13 +25,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
MapCopyFilters copyFilters = MapCopyFilters.All;
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
public MapEditorLogic(Widget widget, ModData modData, World world, WorldRenderer worldRenderer, Dictionary<string, MiniYaml> logicArgs)
|
||||
public MapEditorLogic(Widget widget, World world, WorldRenderer worldRenderer)
|
||||
{
|
||||
MiniYaml yaml;
|
||||
var changeZoomKey = new HotkeyReference();
|
||||
if (logicArgs.TryGetValue("ChangeZoomKey", out yaml))
|
||||
changeZoomKey = modData.Hotkeys[yaml.Value];
|
||||
|
||||
var editorViewport = widget.Get<EditorViewportControllerWidget>("MAP_EDITOR");
|
||||
|
||||
var gridButton = widget.GetOrNull<ButtonWidget>("GRID_BUTTON");
|
||||
@@ -43,48 +38,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
gridButton.IsHighlighted = () => terrainGeometryTrait.Enabled;
|
||||
}
|
||||
|
||||
var zoomDropdown = widget.GetOrNull<DropDownButtonWidget>("ZOOM_BUTTON");
|
||||
if (zoomDropdown != null)
|
||||
{
|
||||
var selectedZoom = (Game.Settings.Graphics.PixelDouble ? 2f : 1f).ToString();
|
||||
|
||||
zoomDropdown.SelectedItem = selectedZoom;
|
||||
Func<float, ScrollItemWidget, ScrollItemWidget> setupItem = (zoom, itemTemplate) =>
|
||||
{
|
||||
var item = ScrollItemWidget.Setup(
|
||||
itemTemplate,
|
||||
() =>
|
||||
{
|
||||
return float.Parse(zoomDropdown.SelectedItem) == zoom;
|
||||
},
|
||||
() =>
|
||||
{
|
||||
zoomDropdown.SelectedItem = selectedZoom = zoom.ToString();
|
||||
worldRenderer.Viewport.Zoom = float.Parse(selectedZoom);
|
||||
});
|
||||
|
||||
var label = zoom.ToString();
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => label;
|
||||
|
||||
return item;
|
||||
};
|
||||
|
||||
var options = worldRenderer.Viewport.AvailableZoomSteps;
|
||||
zoomDropdown.OnMouseDown = _ => zoomDropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 150, options, setupItem);
|
||||
zoomDropdown.GetText = () => zoomDropdown.SelectedItem;
|
||||
zoomDropdown.OnKeyPress = e =>
|
||||
{
|
||||
if (!changeZoomKey.IsActivatedBy(e))
|
||||
return;
|
||||
|
||||
var selected = (options.IndexOf(float.Parse(selectedZoom)) + 1) % options.Length;
|
||||
var zoom = options[selected];
|
||||
worldRenderer.Viewport.Zoom = zoom;
|
||||
selectedZoom = zoom.ToString();
|
||||
zoomDropdown.SelectedItem = zoom.ToString();
|
||||
};
|
||||
}
|
||||
|
||||
var copypasteButton = widget.GetOrNull<ButtonWidget>("COPYPASTE_BUTTON");
|
||||
if (copypasteButton != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user