コード例 #1
0
ファイル: UssValueEditor.cs プロジェクト: pjc0247/uilab
    private void DrawColors()
    {
        colorScroll = EditorGUILayout.BeginScrollView(colorScroll);
        foreach (var v in UssValues.values.Where(x => x.Value is UssColorValue))
        {
            if (string.IsNullOrEmpty(query) == false &&
                v.Key.Contains(query) == false)
            {
                continue;
            }

            var colorValue = (UssColorValue)v.Value;
            var str        = ColorUtility.ToHtmlStringRGBA(colorValue.value);

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(v.Key, valueNameStyle);
            colorValue.value = EditorGUILayout.ColorField(colorValue.value);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("References"))
            {
                Selection.objects = UssStyleModifier.GetReferences(GameObject.Find("Canvas"), v.Key);
            }
            EditorGUILayout.SelectableLabel("#" + str);
            EditorGUILayout.EndHorizontal();

            queryResults++;
        }
        EditorGUILayout.EndScrollView();
    }
コード例 #2
0
ファイル: Highlighter.cs プロジェクト: pjc0247/uilab
    public void OnSelectorChanged(string text)
    {
        var conditions = UssParser.ParseConditions(text);
        var go         = UssStyleModifier.FindObjects(
            UssRoot.FindRootInScene().gameObject, conditions);

        foreach (var c in prevObjects)
        {
            if (go.Contains(c.gameObject))
            {
                continue;
            }
            c.CrossFadeColor(Color.white, 0, true, true);
        }
        prevObjects.Clear();

        foreach (var g in go)
        {
            foreach (var c in g.GetComponentsInChildren <Graphic>())
            {
                c.CrossFadeColor(new Color32(255, 64, 64, 255), 0.5f, true, true);
                prevObjects.Add(c);
            }
        }

        selectedObjects.text = go.Length + " object(s)";
    }
コード例 #3
0
ファイル: UssValueEditor.cs プロジェクト: pjc0247/uilab
    private void DrawNumbers()
    {
        colorScroll = EditorGUILayout.BeginScrollView(colorScroll);
        foreach (var v in UssValues.values.Where(x => (x.Value is UssFloatValue || x.Value is UssIntValue)))
        {
            if (string.IsNullOrEmpty(query) == false &&
                v.Key.Contains(query) == false)
            {
                continue;
            }

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(v.Key, valueNameStyle);
            if (v.Value is UssFloatValue)
            {
                var floatValue = (UssFloatValue)v.Value;
                floatValue.value = EditorGUILayout.FloatField(floatValue.value);
            }
            else
            {
                var intValue = (UssIntValue)v.Value;
                intValue.value = EditorGUILayout.IntField(intValue.value);
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("References"))
            {
                Selection.objects = UssStyleModifier.GetReferences(GameObject.Find("Canvas"), v.Key);
            }
            EditorGUILayout.EndHorizontal();

            queryResults++;
        }
        EditorGUILayout.EndScrollView();
    }
コード例 #4
0
ファイル: UssInstantEval.cs プロジェクト: pjc0247/uilab
    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("INSTANT EVAL");
        if (GUILayout.Button("run!"))
        {
            /*
             * var result = UssParser.Parse(script);
             * UssStyleModifier.Apply(
             *  UssRoot.FindRootInScene().gameObject,
             *  result.styles);
             */
            UssStyleModifier.LoadUss(script);
        }
        EditorGUILayout.EndHorizontal();

        script = GUI.TextArea(new Rect(0, 30, position.width, 300), script);

        var editor = (TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl);

        if (string.IsNullOrEmpty(editor.SelectedText) == false)
        {
            if (prevSelectionText == editor.SelectedText)
            {
                return;
            }

            var result = UssParser.ParseConditions(editor.SelectedText);
            Selection.objects = UssStyleModifier.FindObjects(
                UssRoot.FindRootInScene().gameObject,
                result);

            prevSelectionText = editor.SelectedText;
        }
    }
コード例 #5
0
ファイル: UssWindow.cs プロジェクト: jwvg0425/uss
    void OnGUI()
    {
        EditorGUI.DrawPreviewTexture(new Rect(position.width / 2 - 50, 20, 100, 100), cssTex);
        GUILayout.Space(140);

        if (GUILayout.Button("apply"))
        {
            UssAutoRefresh.currentUcss = "Assets/Resources/default.ucss";
            UssStyleModifier.LoadUss(File.ReadAllText("Assets/Resources/default.ucss"));
        }
    }
コード例 #6
0
ファイル: UssAutoRefresh.cs プロジェクト: pjc0247/uilab
    public static void EnsureLastUcssLoaded()
    {
        if (UssStyleModifier.loaded)
        {
            return;
        }

        if (string.IsNullOrEmpty(currentUcss) == false)
        {
            UssStyleModifier.LoadUss(File.ReadAllText(currentUcss));
        }
    }
コード例 #7
0
ファイル: UssAutoRefresh.cs プロジェクト: pjc0247/uilab
    static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
    {
        foreach (var asset in importedAssets)
        {
            if (asset.EndsWith(".ucss") == false)
            {
                continue;
            }

            if (asset == currentUcss)
            {
                UssStyleModifier.LoadUss(File.ReadAllText(asset));
            }
        }
    }
コード例 #8
0
ファイル: Highlighter.cs プロジェクト: pjc0247/uilab
    public void OnStyleSheetChanged(string text)
    {
        try
        {
            var styles = UssParser.Parse(text);
            UssStyleModifier.Apply(
                UssRoot.FindRootInScene().gameObject, styles.styles);

            errorMessage.CrossFadeColor(Color.white, 0.5f, true, true);
            errorMessage.text = "SUCCESS";
        }
        catch (Exception e)
        {
            errorMessage.CrossFadeColor(Color.red, 0.5f, true, true);
            errorMessage.text = e.Message;
        }
    }
コード例 #9
0
    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal(GUI.skin.FindStyle("Toolbar"));
        query = GUILayout.TextField(query, GUI.skin.FindStyle("ToolbarSeachTextField"));
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.Space();

        EditorGUILayout.LabelField(selections + " object(s) found.");

        if (GUI.changed && string.IsNullOrEmpty(query) == false)
        {
            var conditions = UssParser.ParseConditions(query);
            if (conditions.Length == 0)
            {
                return;
            }

            Selection.objects = UssStyleModifier.FindObjects(
                UssRoot.FindRootInScene().gameObject, conditions);

            selections = Selection.objects.Length;
        }
    }
コード例 #10
0
ファイル: UtmlRoot.cs プロジェクト: pjc0247/uilab
    public void Rebuild(string doc)
    {
        for (int i = 0; i < transform.childCount; i++)
        {
            DestroyImmediate(transform.GetChild(0).gameObject);
        }

        var html = new HtmlDocument();

        html.LoadHtml(doc);

        inlineStyle = "";
        foreach (var child in html.DocumentNode.ChildNodes)
        {
            ComposeNode(child, transform);
        }

        if (string.IsNullOrEmpty(inlineStyle) == false)
        {
            UssStyleModifier.ApplyUss(inlineStyle);
        }
        UssStyleModifier.LoadUss(UssRoot.FindRootInScene().ucssPath);
    }
コード例 #11
0
ファイル: UssValueEditor.cs プロジェクト: pjc0247/uilab
    public void OnGUI()
    {
        UssAutoRefresh.EnsureLastUcssLoaded();

        tab = GUILayout.Toolbar(tab, new string[] { "Color", "Number", "String" });
        EditorGUILayout.BeginHorizontal(GUI.skin.FindStyle("Toolbar"));
        query = GUILayout.TextField(query, GUI.skin.FindStyle("ToolbarSeachTextField"));
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.Space();

        queryResults = 0;
        if (tab == 0)
        {
            DrawColors();
        }
        else if (tab == 1)
        {
            DrawNumbers();
        }
        else if (tab == 2)
        {
            DrawStrings();
        }

        if (queryResults == 0)
        {
            GUILayout.Box(noResultTex, GUILayout.Width(100), GUILayout.Height(100));
            EditorGUILayout.LabelField("No results");
        }

        if (GUI.changed)
        {
            var root = UssRoot.FindRootInScene();
            UssStyleModifier.Apply(root.gameObject);
            EditorUtility.SetDirty(root.gameObject);
        }
    }