예제 #1
0
        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;
        }
 public void SetInfo(VariableInfo info)
 {
     m_View.SetInfo(info);
 }