rj-action-library/Runtime/UI/Nodes/UIRegion.cs

128 lines
2.6 KiB
C#
Raw Normal View History

2024-08-09 13:52:49 +00:00
using Godot;
namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class UIRegion : Control, UIStylePropertyContainer
{
[Export]
2024-08-11 17:38:06 +00:00
public UIStyle parentStyle;
2024-08-09 13:52:49 +00:00
2024-08-11 17:38:06 +00:00
[ExportCategory( "Layout" )]
2024-08-09 13:52:49 +00:00
[Export]
public UILayout layout;
[Export]
public UINumber horizontalAlignment;
[Export]
public UINumber verticalAlignment;
[Export]
public UINumber elementSpacing;
[Export]
public UINumber lineSpacing;
2024-08-11 17:38:06 +00:00
[ExportCategory( "Size & Margins" )]
2024-08-09 13:52:49 +00:00
[Export]
public UINumber width;
[Export]
public UINumber height;
[Export]
public UINumber margin;
[Export]
public UINumber marginLeft;
[Export]
public UINumber marginTop;
[Export]
public UINumber marginRight;
[Export]
public UINumber marginBottom;
2024-08-11 17:38:06 +00:00
[ExportCategory( "Font" )]
[Export]
public Font font;
[Export]
public UINumber fontSize;
[Export]
public UIColor fontColor;
[Export]
public UINumber outlineSize;
[Export]
public UIColor outlineColor;
[Export]
public UINumber shadowSize;
[Export]
public UIColor shadowColor;
[ExportCategory( "Position" )]
2024-08-09 13:52:49 +00:00
[Export]
public UIPosition position;
[Export]
public UINumber left;
[Export]
public UINumber top;
[Export]
public UINumber right;
[Export]
public UINumber bottom;
2024-08-11 17:38:06 +00:00
public UIStyle GetUIStyleParent()
{
return parentStyle;
}
public UIPosition GetUIPosition()
{
return position;
}
2024-08-09 13:52:49 +00:00
public UINumber GetUIStyleNumberProperty( UIStyleNumberProperty property )
{
switch ( property )
{
case UIStyleNumberProperty.Left: return left;
case UIStyleNumberProperty.Right: return right;
case UIStyleNumberProperty.Top: return top;
case UIStyleNumberProperty.Bottom: return bottom;
case UIStyleNumberProperty.Width: return width;
case UIStyleNumberProperty.Height: return height;
2024-08-11 17:38:06 +00:00
case UIStyleNumberProperty.ElementSpacing: return elementSpacing;
case UIStyleNumberProperty.LineSpacing: return lineSpacing;
2024-08-09 13:52:49 +00:00
case UIStyleNumberProperty.Margin: return margin;
case UIStyleNumberProperty.MarginLeft: return marginLeft;
case UIStyleNumberProperty.MarginRight: return marginRight;
case UIStyleNumberProperty.MarginTop: return marginTop;
case UIStyleNumberProperty.MarginBottom: return marginBottom;
}
return null;
}
public void Layout()
{
switch ( layout )
{
case UILayout.Flow_Left_Top: UIFlowLayout.Apply( this ); break;
}
}
}
}