GUIStyle logic changes: instead of having a predetermined GUIComponentStyle for each type of GUIComponent, any GUIComponent can use any style. The GUIComponent constructors take the name of the style as a parameter, and if no style is specified, the default style for the GUIComponent in question will be used.

This commit is contained in:
Regalis
2017-04-07 22:29:07 +03:00
parent 1fe6427c05
commit 3844dd9dac
54 changed files with 484 additions and 475 deletions
+10 -8
View File
@@ -10,7 +10,6 @@ namespace Barotrauma
public GUIStyle(string file)
{
componentStyles = new Dictionary<string, GUIComponentStyle>();
XDocument doc;
@@ -32,15 +31,18 @@ namespace Barotrauma
}
}
public void Apply(GUIComponent targetComponent, GUIComponent parent = null)
public void Apply(GUIComponent targetComponent, string styleName = "", GUIComponent parent = null)
{
GUIComponentStyle componentStyle = null;
string name = (parent == null) ? targetComponent.GetType().Name.ToLowerInvariant() : parent.GetType().Name.ToLowerInvariant();
componentStyles.TryGetValue(name, out componentStyle);
if (componentStyle==null)
if (string.IsNullOrEmpty(styleName))
{
DebugConsole.ThrowError("Couldn't find a GUI style for "+targetComponent.GetType().Name);
styleName = parent == null ? targetComponent.GetType().Name.ToLowerInvariant() : parent.GetType().Name.ToLowerInvariant();
}
GUIComponentStyle componentStyle = null;
if (!componentStyles.TryGetValue(styleName, out componentStyle))
{
DebugConsole.ThrowError("Couldn't find a GUI style \""+ styleName+"\"");
return;
}