public VariableCompleter(VariableEditingHandler handler) : base(handler.variableField != null ? handler.variableField.textField : null) { m_Handler = handler; getFilterFromTextCallback = (text) => text != null?text.TrimStart('-') : null; dataSourceCallback = () => { return(StyleVariableUtilities.GetAllAvailableVariables(handler.inspector.currentVisualElement, GetCompatibleStyleValueTypes(handler), handler.inspector.document.fileSettings.editorExtensionMode)); }; makeItem = () => { var item = new VisualElement(); item.AddToClassList(s_ItemUssClassName); var nameLabel = new Label(); var editorOnlyLabel = new Label(BuilderConstants.EditorOnlyTag); nameLabel.AddToClassList(s_ItemNameLabelUssClassName); nameLabel.name = s_ItemNameLabelName; #if !UNITY_2019_4 // Cannot use USS because no way to do version checks in USS. // This is not available in 2019.4. nameLabel.style.textOverflow = TextOverflow.Ellipsis; #endif editorOnlyLabel.AddToClassList(s_ItemEditorOnlyLabelUssClassName); editorOnlyLabel.AddToClassList("unity-builder-tag-pill"); editorOnlyLabel.name = s_ItemEditorOnlyLabelName; item.Add(nameLabel); item.Add(editorOnlyLabel); return(item); }; bindItem = (e, i) => { var res = results[i]; e.Q <Label>(s_ItemNameLabelName).text = res.name; e.Q <Label>(s_ItemEditorOnlyLabelName).EnableInClassList(BuilderConstants.HiddenStyleClassName, !res.isEditorVar); }; m_DetailsView = new VariableInfoView(); m_DetailsView.AddToClassList(BuilderConstants.HiddenStyleClassName); detailsContent = m_DetailsView; onSelectionChange += data => { m_DetailsView.SetInfo(data); if (data != null) { m_DetailsView.RemoveFromClassList(BuilderConstants.HiddenStyleClassName); } else { m_DetailsView.AddToClassList(BuilderConstants.HiddenStyleClassName); } }; matcherCallback = Matcher; getTextFromDataCallback = GetVarName; }
static void ShowPopup(VariableEditingHandler handler) { if (handler.m_Builder == null || handler.m_Inspector == null || handler.editingEnabled) { return; } string varName = GetBoundVariableName(handler); VariableInfo varInfo = null; if (!string.IsNullOrEmpty(varName)) { varInfo = StyleVariableUtilities.FindVariable(handler.m_Inspector.currentVisualElement, varName, handler.inspector.document.fileSettings.editorExtensionMode); if (varInfo == null) { varInfo = new VariableInfo { name = varName } } ; } if (handler.variableInfoTooltip == null) { handler.variableInfoTooltip = handler.m_Builder.rootVisualElement.GetProperty(BuilderConstants.ElementLinkedVariableTooltipVEPropertyName) as VariableInfoTooltip; if (handler.variableInfoTooltip == null) { handler.variableInfoTooltip = new VariableInfoTooltip(); handler.m_Builder.rootVisualElement.SetProperty( BuilderConstants.ElementLinkedVariableTooltipVEPropertyName, handler.variableInfoTooltip); handler.m_Builder.rootVisualElement.Add(handler.variableInfoTooltip); handler.variableInfoTooltip.onHide += () => OnPopupClosed(handler.variableInfoTooltip); } } handler.targetField.AddToClassList(BuilderConstants.InspectorLocalStyleVariableEditingClassName); if (handler.editingEnabled) { handler.targetField.RemoveFromClassList(BuilderConstants.ReadOnlyStyleClassName); } else { handler.targetField.AddToClassList(BuilderConstants.ReadOnlyStyleClassName); } handler.variableInfoTooltip.Show(handler, varInfo); handler.m_ScheduledShowPopup = null; }
static void ShowPopup(VariableEditingHandler handler) { if (handler.m_Builder == null || handler.m_Inspector == null) { return; } string varName = GetBoundVariableName(handler); StyleSheet varStyleSheetOrigin = null; StyleComplexSelector varSourceSelectorOrigin = null; if (!string.IsNullOrEmpty(varName)) { StyleVariableUtilities.FindVariableOrigin(handler.m_Inspector.currentVisualElement, varName, out varStyleSheetOrigin, out varSourceSelectorOrigin); } if (handler.variableInfoTooltip == null) { handler.variableInfoTooltip = handler.m_Builder.rootVisualElement.GetProperty(BuilderConstants.ElementLinkedVariableTooltipVEPropertyName) as VariableInfoTooltip; if (handler.variableInfoTooltip == null) { handler.variableInfoTooltip = new VariableInfoTooltip(); handler.m_Builder.rootVisualElement.SetProperty( BuilderConstants.ElementLinkedVariableTooltipVEPropertyName, handler.variableInfoTooltip); handler.m_Builder.rootVisualElement.Add(handler.variableInfoTooltip); handler.variableInfoTooltip.onHide += () => OnPopupClosed(handler.variableInfoTooltip); } } handler.targetField.AddToClassList(BuilderConstants.InspectorLocalStyleVariableEditingClassName); if (handler.editingEnabled) { handler.targetField.RemoveFromClassList(BuilderConstants.ReadOnlyStyleClassName); } else { handler.targetField.AddToClassList(BuilderConstants.ReadOnlyStyleClassName); } handler.variableInfoTooltip.Show(handler, varName, varStyleSheetOrigin, varSourceSelectorOrigin); handler.m_ScheduledShowPopup = null; }