72 lines
1.9 KiB
C#
72 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
using Barotrauma;
|
|
using Microsoft.Xna.Framework;
|
|
using Microsoft.Xna.Framework.Input;
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
|
|
namespace QICrabUI
|
|
{
|
|
/// <summary>
|
|
/// Draggable and resizable container for other components
|
|
/// </summary>
|
|
public class CUIFrame : CUIComponent
|
|
{
|
|
public override void Draw(SpriteBatch spriteBatch)
|
|
{
|
|
if (BackgroundVisible) CUI.DrawRectangle(spriteBatch, Real, BackgroundColor, BackgroundSprite);
|
|
}
|
|
|
|
public override void DrawFront(SpriteBatch spriteBatch)
|
|
{
|
|
//if (BorderVisible) CUI.DrawBorders(spriteBatch, Real, BorderColor, BorderSprite, BorderThickness);
|
|
// GUI.DrawRectangle(spriteBatch, BorderBox.Position, BorderBox.Size, BorderColor, thickness: BorderThickness);
|
|
CUI.DrawBorders(spriteBatch, this);
|
|
|
|
if (OutlineVisible) GUI.DrawRectangle(spriteBatch, OutlineBox.Position, OutlineBox.Size, OutlineColor, thickness: OutlineThickness);
|
|
|
|
LeftResizeHandle.Draw(spriteBatch);
|
|
RightResizeHandle.Draw(spriteBatch);
|
|
|
|
//base.DrawFront(spriteBatch);
|
|
}
|
|
|
|
public event Action OnOpen;
|
|
public event Action OnClose;
|
|
|
|
/// <summary>
|
|
/// This will reveal the frame and append it to CUI.Main
|
|
/// </summary>
|
|
public void Open()
|
|
{
|
|
if (CUI.Main == null && Parent != CUI.Main) return;
|
|
CUI.Main.Append(this);
|
|
Revealed = true;
|
|
OnOpen?.Invoke();
|
|
}
|
|
|
|
/// <summary>
|
|
/// This will hide the frame and remove it from children of CUI.Main
|
|
/// </summary>
|
|
public void Close()
|
|
{
|
|
RemoveSelf();
|
|
Revealed = false;
|
|
OnClose?.Invoke();
|
|
}
|
|
|
|
public CUIFrame() : base()
|
|
{
|
|
CullChildren = true;
|
|
Resizible = true;
|
|
Draggable = true;
|
|
}
|
|
|
|
public CUIFrame(float? x = null, float? y = null, float? w = null, float? h = null) : this()
|
|
{
|
|
Relative = new CUINullRect(x, y, w, h);
|
|
}
|
|
}
|
|
} |