public override void OnOpen() { const string basePath = "Packages/com.unity.entities/Editor/Resources/LiveLink"; var template = m_LinkConnections.Count == 0 ? UIElementHelpers.LoadTemplate(basePath, "LiveLinkConnectionsDropdown.Empty", "LiveLinkConnectionsDropdown") : UIElementHelpers.LoadTemplate(basePath, "LiveLinkConnectionsDropdown"); if (m_LinkConnections.Count > 0) { var placeholder = template.Q <VisualElement>("devices"); var tpl = UIElementHelpers.LoadClonableTemplate(basePath, "LiveLinkConnectionsDropdown.ItemTemplate"); foreach (var connection in m_LinkConnections) { var item = tpl.GetNewInstance(); item.Q <Image>().AddToClassList(GetStatusClass(connection.Status)); var label = item.Q <Label>(); label.text = connection.Name.Length <= SizeHelper.MaxCharCount ? connection.Name : connection.Name.Substring(0, SizeHelper.MaxCharCount) + "..."; if (connection.Name.Length > SizeHelper.MaxCharCount) { label.tooltip = connection.Name; } placeholder.Add(item); } } var footer = UIElementHelpers.LoadTemplate(basePath, "LiveLinkConnectionsDropdown.Footer", "LiveLinkConnectionsDropdown"); var buildButton = footer.Q <Button>("live-link-connections-dropdown__footer__build"); var resetButton = footer.Q <Button>("live-link-connections-dropdown__footer__reset"); var clearButton = footer.Q <Button>("live-link-connections-dropdown__footer__clear"); if (LiveLinkBuildSettings.CurrentLiveLinkBuildSettings != null) { buildButton.clickable.clicked += LiveLinkCommands.BuildAndRunLiveLinkPlayer; } else { buildButton.SetEnabled(false); buildButton.tooltip = "Please first select a build setting."; } if (m_LinkConnections.Count > 0) { resetButton.clickable.clicked += LiveLinkCommands.ResetPlayer; clearButton.clickable.clicked += LiveLinkCommands.ClearLiveLinkCache; } else { resetButton.SetEnabled(false); clearButton.SetEnabled(false); } template.Add(footer); editorWindow.rootVisualElement.Add(template); }
void GenerateUiFromState() { const string basePath = "Packages/com.unity.entities/Editor/LiveLink"; var template = m_LinkConnections.Count == 0 ? UIElementHelpers.LoadTemplate(basePath, "LiveLinkConnectionsDropdown.Empty", "LiveLinkConnectionsDropdown") : UIElementHelpers.LoadTemplate(basePath, "LiveLinkConnectionsDropdown"); if (m_LinkConnections.Count > 0) { var placeholder = template.Q <VisualElement>("devices"); var tpl = UIElementHelpers.LoadClonableTemplate(basePath, "LiveLinkConnectionsDropdown.ItemTemplate"); foreach (var connection in m_LinkConnections) { var item = tpl.GetNewInstance(); var icon = item.Q <Image>(); icon.AddToClassList(GetStatusClass(connection.Status)); icon.RegisterCallback <PointerDownEvent>(i => ToggleConnectionStatus(i, connection)); var label = item.Q <Label>(); label.text = connection.Name.Length <= SizeHelper.MaxCharCount ? connection.Name : connection.Name.Substring(0, SizeHelper.MaxCharCount) + "..."; label.tooltip = $"{connection.Name} - build setting: {connection.BuildSettingsName}"; placeholder.Add(item); } } var footer = UIElementHelpers.LoadTemplate(basePath, "LiveLinkConnectionsDropdown.Footer", "LiveLinkConnectionsDropdown"); footer.Q <Button>("live-link-connections-dropdown__footer__build").SetEnabled(false); var resetButton = footer.Q <Button>("live-link-connections-dropdown__footer__reset"); var clearButton = footer.Q <Button>("live-link-connections-dropdown__footer__clear"); if (m_LinkConnections.Count > 0) { resetButton.clickable.clicked += LiveLinkCommands.ResetPlayer; clearButton.clickable.clicked += LiveLinkCommands.ClearLiveLinkCache; } else { resetButton.SetEnabled(false); clearButton.SetEnabled(false); } template.Add(footer); editorWindow.rootVisualElement.Clear(); editorWindow.rootVisualElement.Add(template); }
public override void OnOpen() { const string basePath = "Packages/com.unity.entities/Editor/Resources/LiveLink"; if (LiveLinkBuildSettingsCache.Count == 0) { editorWindow.rootVisualElement.Add(UIElementHelpers.LoadTemplate(basePath, "LiveLinkBuildSettingsDropdown.Empty", "LiveLinkBuildSettingsDropdown")); return; } var visualElement = UIElementHelpers.LoadTemplate(basePath, "LiveLinkBuildSettingsDropdown"); var tpl = UIElementHelpers.LoadClonableTemplate(basePath, "LiveLinkBuildSettingsDropdown.ItemTemplate"); var radioButtonGroup = visualElement.Q <RadioButtonGroup>(); radioButtonGroup.RegisterValueChangedCallback(evt => LiveLinkBuildSettings.CurrentLiveLinkBuildSettings = (BuildSettings)evt.newValue.userData); foreach (var buildSettingsCache in LiveLinkBuildSettingsCache.BuildSettings) { var item = tpl.GetNewInstance(); var toggle = item.Q <Toggle>(); var label = item.Q <Label>(); var image = item.Q <Image>(); label.RegisterCallback <PointerDownEvent>(e => OnClick(e, toggle)); image.RegisterCallback <PointerDownEvent>(e => OnClick(e, toggle)); toggle.userData = buildSettingsCache.Asset; toggle.SetValueWithoutNotify(LiveLinkBuildSettings.CurrentLiveLinkBuildSettings == buildSettingsCache.Asset); var fileName = Path.GetFileNameWithoutExtension(buildSettingsCache.Path); label.text = fileName.Length > SizeHelper.MaxCharCount ? fileName.Substring(0, SizeHelper.MaxCharCount) + "..." : fileName; label.tooltip = buildSettingsCache.Path; var target = buildSettingsCache.Asset.GetComponent <ClassicBuildProfile>().Target; image.AddToClassList(UIElementHelpers.Style.GetUssClass(target)); radioButtonGroup.Add(item); } editorWindow.rootVisualElement.Add(visualElement); }
public StartLiveLinkView() { m_BuildConfigurationTemplate = UIElementHelpers.LoadClonableTemplate(kBasePath, "StartLiveLinkWindow.ListViewItemTemplate"); }