Editor/Sprite/SpritesheetImporter/Preview.cs
using Editor;
using Sandbox;

namespace SpriteTools.SpritesheetImporter;

public class Preview : Widget
{
	RenderingWidget Rendering;
	// Widget Overlay;
	// WidgetWindow overlayWindowZoom;

	public Preview ( SpritesheetImporter parent ) : base( parent )
	{
		Name = "Preview";
		WindowTitle = "Preview";
		SetWindowIcon( "emoji_emotions" );

		Layout = Layout.Column();

		Rendering = new RenderingWidget( parent, this );
		Layout.Add( Rendering );

		// Overlay = new Widget(this)
		// {
		//     Layout = Layout.Row(),
		//     TranslucentBackground = true,
		//     NoSystemBackground = true,
		//     WindowFlags = WindowFlags.FramelessWindowHint | WindowFlags.Tool
		// };
		// overlayWindowZoom = new WidgetWindow(this);
		// overlayWindowZoom.Parent = Overlay;
		// overlayWindowZoom.Layout = Layout.Row();
		// overlayWindowZoom.Layout.Spacing = 4;
		// overlayWindowZoom.Layout.Margin = 4;
		// var btnZoomOut = overlayWindowZoom.Layout.Add(new IconButton("zoom_out"));
		// btnZoomOut.OnClick = () =>
		// {
		//     Rendering.Zoom(-250);
		// };
		// btnZoomOut.ToolTip = "Zoom Out";
		// btnZoomOut.StatusTip = "Zoom Out View";
		// var btnZoomIn = overlayWindowZoom.Layout.Add(new IconButton("zoom_in"));
		// btnZoomIn.OnClick = () =>
		// {
		//     Rendering.Zoom(250);
		// };
		// btnZoomIn.ToolTip = "Zoom In";
		// btnZoomIn.StatusTip = "Zoom In View";
		// overlayWindowZoom.Layout.AddSeparator();
		// var btnFit = overlayWindowZoom.Layout.Add(new IconButton("zoom_out_map"));
		// btnFit.OnClick = () =>
		// {
		//     Rendering.Fit();
		// };
		// btnFit.ToolTip = "Fit to Screen";
		// btnFit.StatusTip = "Fit View to Screen";
		// overlayWindowZoom.WindowTitle = "Zoom Controls";

		// Overlay.Layout.Add(overlayWindowZoom);
		// Overlay.Show();

		var texture = Texture.LoadFromFileSystem( parent.Path, Sandbox.FileSystem.Mounted );
		if ( texture is not null )
		{
			Rendering.SetTexture( texture );
		}
	}

	protected override void DoLayout ()
	{
		base.DoLayout();

		// if (Overlay.IsValid() && Rendering.IsValid())
		// {
		//     Overlay.Position = Rendering.ScreenPosition;
		//     Overlay.Size = Rendering.Size + 1;

		//     overlayWindowZoom.AdjustSize();
		//     overlayWindowZoom.AlignToParent(TextFlag.RightTop, 4);
		// }
	}

	protected override void OnVisibilityChanged ( bool visible )
	{
		base.OnVisibilityChanged( visible );

		// if (Overlay is not null)
		// {
		//     Overlay.Visible = visible;
		// }
	}
}