Add quick interactions locally
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user