- Bring text to text buttons (not fully working)

- Refactoring of unity element creation
- copy Vocaluxe.UI.dll to unity assets automatically
This commit is contained in:
lukeIam committed 2018-09-07 17:12:16 +02:00
1 parent 4373f82935
commit c6d221d6c0
8 files changed
+21 -149

No files matched your search

+4 -1
View File
@@ -105,7 +105,7 @@ public class ScreenHandler : MonoBehaviour
button.GetComponent<Image>().color = Color.green;
var buttonText = button.GetComponentInChildren<Text>().gameObject;
SetProperties((CUiElementText)buttonInfo.AsQueryable().FirstOrDefault(x => x is CUiElementText), buttonText);
SetProperties((CUiElementText)buttonInfo.FirstOrDefault(x => x is CUiElementText), buttonText);
}
private GameObject CreateElement(CUiElementText textInfo)
@@ -117,6 +117,9 @@ public class ScreenHandler : MonoBehaviour
private void SetProperties(CUiElementText textInfo, GameObject text)
{
var textComponent = text.GetComponent<Text>();
// Add text to the text component
textComponent.text = textInfo.Controller.Text;
PositionElement(textInfo, text);
}
Binary file not shown.
Binary file not shown.
@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: ee53898f2ecb9f947bf75286bc93aee0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,96 +0,0 @@
fileFormatVersion: 2
guid: c159d6aca28a19847ace6c3ea7bfad8c
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
'': Any
second:
enabled: 0
settings:
Exclude Editor: 0
Exclude Linux: 0
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude OSXUniversal: 0
Exclude Win: 0
Exclude Win64: 0
Exclude WindowsStoreApps: 0
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 1
settings:
CPU: x86
- first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
- first:
Standalone: LinuxUniversal
second:
enabled: 1
settings: {}
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Win
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 1
settings:
CPU: AnyCPU
DontProcess: false
PlaceholderPath:
SDK: AnySDK
ScriptingBackend: AnyScriptingBackend
userData:
assetBundleName:
assetBundleVariant:
@@ -10,7 +10,10 @@ namespace Vocaluxe.UI.BasicElements.Text
public static CUiElementText CreateInstance(Dictionary<string, string> properties, IEnumerable<(CUiElement uiElement, string bindingId)> children)
{
return CUiElement.CreateInstance<CUiElementText>(properties, children);
var instance = CUiElement.CreateInstance<CUiElementText>(properties, children);
properties.TryGetValue("value", out string value);
instance.Controller.Text = value;
return instance;
}
}
}
+9 -44
View File
@@ -8,47 +8,6 @@ namespace Vocaluxe.UI.Parser
{
public static class CUiScreenParser
{
public static CUiScreen ParseOld(string path)
{
if(!File.Exists(path))
throw new FileNotFoundException(path);
using (XmlReader reader = XmlReader.Create(path, new XmlReaderSettings { IgnoreWhitespace = true }))
{
return _ParseElementOld(reader)[0].Item1 as CUiScreen ?? throw new ArgumentException("First node must be a screen element");
}
}
private static List<(CUiElement uiElement, string bindingId)> _ParseElementOld(XmlReader reader)
{
List<(CUiElement, string)> elementList = new List<(CUiElement uiElement, string bindingId)>();
while (reader.Read())
{
if (reader.NodeType != XmlNodeType.Element)
continue;
string elementName = reader.Name;
var subtreeReader = reader.ReadSubtree();
subtreeReader.Read();
List<(CUiElement uiElement, string bindingId)> childElements = _ParseElementOld(subtreeReader);
Dictionary<string, string> attributes = new Dictionary<string, string>();
for (var attrIndex = 0; attrIndex < reader.AttributeCount; attrIndex++)
{
reader.MoveToAttribute(attrIndex);
attributes.Add(reader.Name, reader.Value);
}
attributes.TryGetValue("bindingId", out string bindingId);
elementList.Add((CUiElementFactory.CreateElement(elementName, attributes, childElements), bindingId));
}
reader.Close();
return elementList;
}
public static CUiScreen Parse(string path)
{
if (!File.Exists(path))
@@ -68,12 +27,18 @@ namespace Vocaluxe.UI.Parser
return resultElement;
List<(CUiElement uiElement, string bindingId)> childElements = new List<(CUiElement uiElement, string bindingId)>();
foreach (XmlElement childNode in node.ChildNodes)
Dictionary<string, string> attributes = new Dictionary<string, string>();
foreach (XmlNode childNode in node.ChildNodes)
{
childElements.Add(_ParseElement(childNode));
if(!(childNode is XmlElement))
{
attributes.Add("value", childNode.Value);
continue;
}
childElements.Add(_ParseElement((XmlElement)childNode));
}
Dictionary<string, string> attributes = new Dictionary<string, string>();
foreach (XmlAttribute attribute in node.Attributes)
{
attributes.Add(attribute.Name, attribute.Value);
+4
View File
@@ -119,4 +119,8 @@
</PropertyGroup>
<Error Condition="!Exists('..\packages\Facebook.Yoga.1.5.0-pre1\build\net45\Facebook.Yoga.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Facebook.Yoga.1.5.0-pre1\build\net45\Facebook.Yoga.targets'))" />
</Target>
<PropertyGroup>
<PostBuildEvent>copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)Vocaluxe.UI.Unity\Assets\$(ProjectName).dll"
copy /Y "$(TargetDir)$(ProjectName).pdb" "$(SolutionDir)Vocaluxe.UI.Unity\Assets\$(ProjectName).pdb"</PostBuildEvent>
</PropertyGroup>
</Project>