コード例 #1
0
    void EditFilters(PropertyDefinition p)
    {
        if (Project.UseFilters)
        {
            GUIStyle s = new GUIStyle(EditorStyles.miniButton);
            s.alignment = TextAnchor.MiddleLeft;

            Rect menuRect;

            menuRect    = GUILayoutUtility.GetLastRect();
            menuRect.x += 85;

            if (GUILayout.Button("", s, GUILayout.MinWidth(200)))
            {
                GenericMenu menu = new GenericMenu();

                foreach (FilterDefinition f in Project.EnabledFilters)
                {
                    menu.AddItem(new GUIContent(f.Name), f.IsOn(p.Filters), FilterSetter(p, f));
                }

                menu.DropDown(menuRect);
                EditorGUIUtility.ExitGUI();
            }

            // rect of the button
            var r         = GUILayoutUtility.GetLastRect();
            var labelRect = r;

            labelRect.xMin += 3;
            labelRect.yMin -= 1;
            labelRect.xMax -= 17;

            //GUILayout.BeginArea(r);

            foreach (FilterDefinition f in Project.EnabledFilters)
            {
                if (f.IsOn(p.Filters))
                {
                    var label = DEditorGUI.MiniLabelWithColor(ToUnityColor(f.Color));
                    var sizex = Mathf.Min(label.CalcSize(new GUIContent(f.Name)).x, labelRect.width);

                    GUI.Label(labelRect, f.Name, label);

                    labelRect.xMin += sizex;
                    labelRect.xMin  = Mathf.Min(labelRect.xMin, labelRect.xMax);
                }
            }

            //GUILayout.EndArea();

            GUI.DrawTexture(new Rect(r.xMax - 18, r.yMin, 16, 16), DEditorGUI.LoadIcon("ascen-ico-arrow-down"));
        }
    }
コード例 #2
0
    void OverlayIcon(string icon, int xOffset)
    {
        Rect r = GUILayoutUtility.GetLastRect();

        r.xMin = (r.xMax - 19) + xOffset;
        r.xMax = (r.xMax - 3) + xOffset;
        r.yMin = r.yMin;
        r.yMax = r.yMax + 1;

        GUI.color = DEditorGUI.HighlightColor;
        GUI.DrawTexture(r, DEditorGUI.LoadIcon(icon));
        GUI.color = Color.white;
    }