80 lines
2.4 KiB
C#
80 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Diagnostics;
|
|
using System.Runtime.CompilerServices;
|
|
using System.IO;
|
|
|
|
using Barotrauma;
|
|
using Microsoft.Xna.Framework;
|
|
using Microsoft.Xna.Framework.Input;
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
|
|
using System.Xml;
|
|
using System.Xml.Linq;
|
|
|
|
namespace QICrabUI
|
|
{
|
|
public partial class CUIComponent
|
|
{
|
|
#region Layout --------------------------------------------------------
|
|
|
|
protected CUILayout layout;
|
|
//[CUISerializable]
|
|
public virtual CUILayout Layout
|
|
{
|
|
get => layout;
|
|
set { layout = value; layout.Host = this; }
|
|
}
|
|
|
|
public event Action OnLayoutUpdated;
|
|
public void InvokeOnLayoutUpdated() => OnLayoutUpdated?.Invoke();
|
|
|
|
/// <summary>
|
|
/// Triggers recalculation of layouts from parent and below
|
|
/// </summary>
|
|
internal void OnPropChanged([CallerMemberName] string memberName = "")
|
|
{
|
|
Layout.Changed = true;
|
|
CUIDebug.Capture(null, this, "OnPropChanged", memberName, "Layout.Changed", "true");
|
|
MainComponent?.LayoutChanged();
|
|
}
|
|
internal void OnSelfAndParentChanged([CallerMemberName] string memberName = "")
|
|
{
|
|
Layout.SelfAndParentChanged = true;
|
|
CUIDebug.Capture(null, this, "OnSelfAndParentChanged", memberName, "Layout.SelfAndParentChanged", "true");
|
|
MainComponent?.LayoutChanged();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Triggers recalc of own pseudo components and nothing else
|
|
/// </summary>
|
|
internal void OnDecorPropChanged([CallerMemberName] string memberName = "")
|
|
{
|
|
Layout.DecorChanged = true;
|
|
CUIDebug.Capture(null, this, "OnDecorPropChanged", memberName, "Layout.DecorChanged", "true");
|
|
MainComponent?.LayoutChanged();
|
|
}
|
|
/// <summary>
|
|
/// Notifies parent (only) than it may need to ResizeToContent
|
|
/// </summary>
|
|
internal void OnAbsolutePropChanged([CallerMemberName] string memberName = "")
|
|
{
|
|
Layout.AbsoluteChanged = true;
|
|
CUIDebug.Capture(null, this, "OnAbsolutePropChanged", memberName, "Layout.AbsoluteChanged", "true");
|
|
MainComponent?.LayoutChanged();
|
|
}
|
|
/// <summary>
|
|
/// Triggers recalculation of layouts from this and below
|
|
/// </summary>
|
|
internal void OnChildrenPropChanged([CallerMemberName] string memberName = "")
|
|
{
|
|
Layout.ChildChanged = true;
|
|
MainComponent?.LayoutChanged();
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
} |