Compare commits
2 Commits
49aa3f071f
...
8a3ed42bb7
| Author | SHA1 | Date | |
|---|---|---|---|
| 8a3ed42bb7 | |||
| 52bbf5a9e1 |
2
TODO.md
2
TODO.md
@@ -99,7 +99,7 @@
|
|||||||
- ~~Style sheet~~
|
- ~~Style sheet~~
|
||||||
- ~~Add style settings for UI panels (for buttons, labels, etc.).~~
|
- ~~Add style settings for UI panels (for buttons, labels, etc.).~~
|
||||||
- ~~Parse StyleSheet from TOML file.~~
|
- ~~Parse StyleSheet from TOML file.~~
|
||||||
- Style variables
|
|
||||||
- Animated styles
|
- Animated styles
|
||||||
|
- (stretch goal) Style variables
|
||||||
- Find a way to reference external assets in the style (fonts, textures).
|
- Find a way to reference external assets in the style (fonts, textures).
|
||||||
- Create a default style for widgets.
|
- Create a default style for widgets.
|
||||||
|
|||||||
@@ -20,6 +20,24 @@ public class Style
|
|||||||
public Color? BorderColor { get; set; }
|
public Color? BorderColor { get; set; }
|
||||||
public float CornerRadius { get; set; }
|
public float CornerRadius { get; set; }
|
||||||
public Color? TextColor { get; set; }
|
public Color? TextColor { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Merges this <see cref="Style"/> with a different one.<br />
|
||||||
|
/// Properties that are not set for this <see cref="Style"/> will be inherited from <paramref name="overrideStyle"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="overrideStyle"></param>
|
||||||
|
/// <returns>A merged <see cref="Style"/>.</returns>
|
||||||
|
public Style Merge(Style overrideStyle)
|
||||||
|
{
|
||||||
|
return new Style
|
||||||
|
{
|
||||||
|
BackgroundColor = overrideStyle.BackgroundColor != default ? overrideStyle.BackgroundColor : BackgroundColor,
|
||||||
|
TextColor = overrideStyle.TextColor != default ? overrideStyle.TextColor : TextColor,
|
||||||
|
Padding = overrideStyle.Padding != default ? overrideStyle.Padding : Padding,
|
||||||
|
BorderSize = overrideStyle.BorderSize != default ? overrideStyle.BorderSize : BorderSize,
|
||||||
|
BorderColor = overrideStyle.BorderColor != default ? overrideStyle.BorderColor : BorderColor,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class StyleSheetLoader : ResourceLoader<StyleSheet>
|
public class StyleSheetLoader : ResourceLoader<StyleSheet>
|
||||||
@@ -88,25 +106,13 @@ public class StyleSheetLoader : ResourceLoader<StyleSheet>
|
|||||||
var subKey = string.Join('.', parts.Take(i));
|
var subKey = string.Join('.', parts.Take(i));
|
||||||
if (allStyles.TryGetValue(subKey, out var parentStyle))
|
if (allStyles.TryGetValue(subKey, out var parentStyle))
|
||||||
{
|
{
|
||||||
merged = MergeStyles(merged, parentStyle);
|
merged = merged.Merge(parentStyle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return merged;
|
return merged;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Style MergeStyles(Style baseStyle, Style overrideStyle)
|
|
||||||
{
|
|
||||||
return new Style
|
|
||||||
{
|
|
||||||
BackgroundColor = overrideStyle.BackgroundColor != default ? overrideStyle.BackgroundColor : baseStyle.BackgroundColor,
|
|
||||||
TextColor = overrideStyle.TextColor != default ? overrideStyle.TextColor : baseStyle.TextColor,
|
|
||||||
Padding = overrideStyle.Padding != default ? overrideStyle.Padding : baseStyle.Padding,
|
|
||||||
BorderSize = overrideStyle.BorderSize != default ? overrideStyle.BorderSize : baseStyle.BorderSize,
|
|
||||||
BorderColor = overrideStyle.BorderColor != default ? overrideStyle.BorderColor : baseStyle.BorderColor,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private readonly TomlDataReader _reader = new();
|
private readonly TomlDataReader _reader = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user