310 lines
7.0 KiB
C#
310 lines
7.0 KiB
C#
|
|
using Godot;
|
|
using Rokojori;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Rokojori
|
|
{
|
|
[Tool]
|
|
[GlobalClass,Icon("res://addons/rokojori_action_library/Icons/UIText.svg")]
|
|
public partial class UIText:Label,UIStylePropertyContainer, iLocalizable
|
|
{
|
|
|
|
LocalizedString _locale;
|
|
|
|
[Export]
|
|
public LocalizedString locale
|
|
{
|
|
get => _locale;
|
|
|
|
set { _locale = value; UpdateLocalization(); }
|
|
}
|
|
|
|
[Export]
|
|
public bool refreshText
|
|
{
|
|
get => false;
|
|
set { if ( value ) UpdateLocalization(); UpdateFont(); }
|
|
}
|
|
|
|
[Export]
|
|
public bool disableLocalization = false;
|
|
|
|
public void UpdateLocalization()
|
|
{
|
|
if ( disableLocalization )
|
|
{
|
|
return;
|
|
}
|
|
|
|
Text = LocalizedString.Get( _locale );
|
|
|
|
}
|
|
|
|
|
|
[Export]
|
|
public bool alwaysMinimumSize = true;
|
|
|
|
UIStyle _parentStyle;
|
|
[Export]
|
|
public UIStyle parentStyle
|
|
{
|
|
get => _parentStyle;
|
|
set { _parentStyle = value; UpdateFont(); }
|
|
}
|
|
|
|
Font _font;
|
|
[ExportGroup( "Font" )]
|
|
[Export]
|
|
public Font font
|
|
{
|
|
get => _font;
|
|
set { _font = value; UpdateFont(); }
|
|
}
|
|
|
|
[Export]
|
|
public UINumber fontSize;
|
|
[Export]
|
|
public UIColor fontColor;
|
|
|
|
[Export]
|
|
public UINumber outlineSize;
|
|
[Export]
|
|
public UIColor outlineColor;
|
|
|
|
[Export]
|
|
public UINumber shadowSize;
|
|
[Export]
|
|
public UIColor shadowColor;
|
|
|
|
[Export]
|
|
public UINumber shadowOffsetX;
|
|
[Export]
|
|
public UINumber shadowOffsetY;
|
|
|
|
[ExportGroup("Size & Margins")]
|
|
[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;
|
|
|
|
|
|
[ExportGroup( "Position" )]
|
|
[Export]
|
|
public UIPosition position;
|
|
[Export]
|
|
public UILineWrap lineWrap;
|
|
[Export]
|
|
public UINumber left;
|
|
[Export]
|
|
public UINumber top;
|
|
[Export]
|
|
public UINumber right;
|
|
[Export]
|
|
public UINumber bottom;
|
|
|
|
|
|
[ExportGroup("Rotation & Scale")]
|
|
[Export]
|
|
public UINumber pivotX;
|
|
[Export]
|
|
public UINumber pivotY;
|
|
|
|
[Export]
|
|
public UINumber rotation;
|
|
|
|
[Export]
|
|
public UINumber scale;
|
|
|
|
[Export]
|
|
public UINumber scaleX;
|
|
[Export]
|
|
public UINumber scaleY;
|
|
|
|
public Font GetFont()
|
|
{
|
|
return font;
|
|
}
|
|
|
|
void UpdateFont()
|
|
{
|
|
var resolvedFont = UIStyle.Font( this );
|
|
|
|
if ( resolvedFont != null )
|
|
{
|
|
RemoveThemeFontOverride( "font" );
|
|
AddThemeFontOverride( "font", resolvedFont );
|
|
}
|
|
|
|
}
|
|
|
|
public List<ActiveStyleTransition<UIColor,ColorPropertyName>> GetActiveShaderUIColorTransitions()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public List<ActiveStyleTransition<UINumber,FloatPropertyName>> GetActiveShaderUINumberTransitions()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
[ExportGroup("Transitions")]
|
|
[Export]
|
|
public TransitionSettingsAll transitionSettings;
|
|
public TransitionSettingsAll GetTransitionSettingsAll()
|
|
{
|
|
return transitionSettings;
|
|
}
|
|
|
|
[Export]
|
|
public UINumberTransition[] numberTransitions = new UINumberTransition[ 0 ];
|
|
public UINumberTransition[] GetNumberTransitions()
|
|
{
|
|
return numberTransitions;
|
|
}
|
|
|
|
public List<ActiveStyleTransition<UINumber,UIStyleNumberProperty>> activeNumberTransitions = new List<ActiveStyleTransition<UINumber,UIStyleNumberProperty>>();
|
|
public List<ActiveStyleTransition<UINumber,UIStyleNumberProperty>> GetActiveUINumberTransitions()
|
|
{
|
|
return activeNumberTransitions;
|
|
}
|
|
|
|
[Export]
|
|
public UIColorTransition[] colorTransitions = new UIColorTransition[ 0 ];
|
|
public UIColorTransition[] GetColorTransitions()
|
|
{
|
|
return colorTransitions;
|
|
}
|
|
|
|
public List<ActiveStyleTransition<UIColor,UIStyleColorProperty>> activeColorTransitions = new List<ActiveStyleTransition<UIColor,UIStyleColorProperty>>();
|
|
public List<ActiveStyleTransition<UIColor,UIStyleColorProperty>> GetActiveUIColorTransitions()
|
|
{
|
|
return activeColorTransitions;
|
|
}
|
|
|
|
LabelSettings _labelSettings;
|
|
|
|
|
|
|
|
public LabelSettings uiTextLabelSettings
|
|
{
|
|
get
|
|
{
|
|
if ( _labelSettings == null )
|
|
{
|
|
_labelSettings = new LabelSettings();
|
|
}
|
|
|
|
LabelSettings = _labelSettings;
|
|
return _labelSettings;
|
|
}
|
|
|
|
set
|
|
{
|
|
_labelSettings = value.Duplicate() as LabelSettings;
|
|
LabelSettings = _labelSettings;
|
|
}
|
|
}
|
|
|
|
public UIStyle GetUIStyleParent()
|
|
{
|
|
return parentStyle;
|
|
}
|
|
|
|
public UIPosition GetUIPosition()
|
|
{
|
|
return position;
|
|
}
|
|
|
|
public UILineWrap GetUILineWrap()
|
|
{
|
|
return lineWrap;
|
|
}
|
|
|
|
public UILayout GetUILayout()
|
|
{
|
|
return UILayout.___;
|
|
}
|
|
|
|
public ShaderUIColor[] GetShaderUIColors()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public ShaderUINumber[] GetShaderUINumbers()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
|
|
|
|
public UINumber GetUIStyleNumberProperty( UIStyleNumberProperty property )
|
|
{
|
|
switch ( property )
|
|
{
|
|
case UIStyleNumberProperty.Width: return width;
|
|
case UIStyleNumberProperty.Height: return height;
|
|
|
|
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;
|
|
|
|
|
|
case UIStyleNumberProperty.Left: return left;
|
|
case UIStyleNumberProperty.Right: return right;
|
|
case UIStyleNumberProperty.Top: return top;
|
|
case UIStyleNumberProperty.Bottom: return bottom;
|
|
|
|
case UIStyleNumberProperty.PivotX: return pivotX;
|
|
case UIStyleNumberProperty.PivotY: return pivotY;
|
|
case UIStyleNumberProperty.Rotation: return rotation;
|
|
|
|
case UIStyleNumberProperty.Scale: return scale;
|
|
case UIStyleNumberProperty.ScaleX: return scaleX;
|
|
case UIStyleNumberProperty.ScaleY: return scaleY;
|
|
|
|
case UIStyleNumberProperty.FontSize: return fontSize;
|
|
case UIStyleNumberProperty.FontOutlineSize: return outlineSize;
|
|
case UIStyleNumberProperty.FontShadowSize: return shadowSize;
|
|
case UIStyleNumberProperty.FontShadowOffsetX: return shadowOffsetX;
|
|
case UIStyleNumberProperty.FontShadowOffsetY: return shadowOffsetY;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public Vector2 GetUISize()
|
|
{
|
|
return GetSize();
|
|
}
|
|
|
|
public UIColor GetUIStyleColorProperty( UIStyleColorProperty property )
|
|
{
|
|
switch ( property )
|
|
{
|
|
case UIStyleColorProperty.FontColor: return fontColor;
|
|
case UIStyleColorProperty.FontOutlineColor: return outlineColor;
|
|
case UIStyleColorProperty.FontShadowColor: return shadowColor;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
} |