You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.9 KiB
C#
106 lines
3.9 KiB
C#
|
|
using UnityEngine;
|
|
using UnityEngine.UIElements;
|
|
|
|
namespace AV.UITK
|
|
{
|
|
internal static class IStyleExtensions
|
|
{
|
|
const float n = float.NaN;
|
|
|
|
static bool Nan(float value) => float.IsNaN(value);
|
|
|
|
|
|
internal static void SetSize(this IStyle style, float width = n, float height = n)
|
|
{
|
|
if (!Nan(width)) style.width = width;
|
|
if (!Nan(height)) style.height = height;
|
|
}
|
|
|
|
|
|
internal static void SetBorderColor(this IStyle style, Color color)
|
|
{
|
|
style.borderTopColor = color;
|
|
style.borderLeftColor = color;
|
|
style.borderRightColor = color;
|
|
style.borderBottomColor = color;
|
|
}
|
|
|
|
internal static void SetBorderWidth(this IStyle style, float width)
|
|
{
|
|
SetBorderWidth(style, width, width, width, width);
|
|
}
|
|
|
|
internal static void SetBorderWidth(this IStyle style, float top = n, float left = n, float right = n, float bottom = n)
|
|
{
|
|
if (!Nan(top)) style.borderTopWidth = top;
|
|
if (!Nan(left)) style.borderLeftWidth = left;
|
|
if (!Nan(right)) style.borderRightWidth = right;
|
|
if (!Nan(bottom)) style.borderBottomWidth = bottom;
|
|
}
|
|
|
|
internal static void SetBorderRadius(this IStyle style, float radius)
|
|
{
|
|
SetBorderRadius(style, radius, radius, radius, radius);
|
|
}
|
|
|
|
internal static void SetBorderRadius(this IStyle style, float top = n, float left = n, float right = n, float bottom = n)
|
|
{
|
|
if (!Nan(top)) style.borderTopLeftRadius = top;
|
|
if (!Nan(left)) style.borderTopRightRadius = left;
|
|
if (!Nan(right)) style.borderBottomLeftRadius = right;
|
|
if (!Nan(bottom)) style.borderBottomRightRadius = bottom;
|
|
}
|
|
|
|
|
|
internal static void SetMargin(this IStyle style, float length)
|
|
{
|
|
SetMargin(style, length, length, length, length);
|
|
}
|
|
|
|
internal static void SetMargin(this IStyle style, float top = n, float left = n, float right = n, float bottom = n)
|
|
{
|
|
if (!Nan(top)) style.marginTop = top;
|
|
if (!Nan(left)) style.marginLeft = left;
|
|
if (!Nan(right)) style.marginRight = right;
|
|
if (!Nan(bottom)) style.marginBottom = bottom;
|
|
}
|
|
|
|
|
|
internal static void SetPadding(this IStyle style, float length)
|
|
{
|
|
SetPadding(style, length, length, length, length);
|
|
}
|
|
|
|
internal static void SetPadding(this IStyle style, float top = n, float left = n, float right = n, float bottom = n)
|
|
{
|
|
if (!Nan(top)) style.paddingTop = top;
|
|
if (!Nan(left)) style.paddingLeft = left;
|
|
if (!Nan(right)) style.paddingRight = right;
|
|
if (!Nan(bottom)) style.paddingBottom = bottom;
|
|
}
|
|
|
|
|
|
internal static void SetSlice(this IStyle style, int? top = null, int? left = null, int? right = null, int? bottom = null)
|
|
{
|
|
if (top.HasValue) style.unitySliceTop = top.Value;
|
|
if (left.HasValue) style.unitySliceLeft = left.Value;
|
|
if (right.HasValue) style.unitySliceRight = right.Value;
|
|
if (bottom.HasValue) style.unitySliceBottom = bottom.Value;
|
|
}
|
|
|
|
|
|
internal static void SetPosition(this IStyle style, Position type, float top = n, float left = n, float right = n, float bottom = n)
|
|
{
|
|
style.position = type;
|
|
SetPosition(style, top, left, right, bottom);
|
|
}
|
|
internal static void SetPosition(this IStyle style, float top = n, float left = n, float right = n, float bottom = n)
|
|
{
|
|
if (!Nan(top)) style.top = top;
|
|
if (!Nan(left)) style.left = left;
|
|
if (!Nan(right)) style.right = right;
|
|
if (!Nan(bottom)) style.bottom = bottom;
|
|
}
|
|
}
|
|
} |