Exemplo n.º 1
0
    void CellGUI(Rect cellRect, TreeViewItem <DialogTreeElement> item, MyColumns column, ref RowGUIArgs args)
    {
        // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
        CenterRectUsingSingleLineHeight(ref cellRect);

        switch (column)
        {
        case MyColumns.Name:
        {
            // Do toggle
            Rect toggleRect = cellRect;
            toggleRect.x    += GetContentIndent(item);
            toggleRect.width = kToggleWidth;


            // Default icon and label
            args.rowRect = cellRect;
            base.RowGUI(args);
        }
        break;

        case MyColumns.DialogNodeGraph:
            item.data.DialogNodeGraph = (DialogNodeGraph)EditorGUI.ObjectField(cellRect, GUIContent.none, item.data.DialogNodeGraph, typeof(DialogNodeGraph), false);
            break;

        case MyColumns.Note:
            item.data.Note = GUI.TextField(cellRect, item.data.Note);
            break;
        }
    }
Exemplo n.º 2
0
        void CellGUI(Rect cellRect, TestListTableItem item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Name:
            {
                args.rowRect = cellRect;
                base.RowGUI(args);
            }
            break;

            case MyColumns.SampleCount:
                EditorGUI.LabelField(cellRect, string.Format("{0}", item.test.SampleGroups.Count));
                break;

            case MyColumns.Deviation:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.deviation));
                break;

            case MyColumns.StandardDeviation:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.standardDeviation));
                break;

            case MyColumns.Median:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.median));
                break;
            }
        }
Exemplo n.º 3
0
        void CellGUI(Rect cellRect, TreeViewItem <MemoryElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Type:
                DefaultGUI.Label(cellRect, item.data.type, args.selected, args.focused);
                break;

            case MyColumns.ClassName:
                DefaultGUI.Label(cellRect, item.data.className, args.selected, args.focused);
                break;

            case MyColumns.InstanceID:
                DefaultGUI.LabelRightAligned(cellRect, item.data.id.ToString(), args.selected, args.focused);
                break;

            case MyColumns.Size:
                DefaultGUI.LabelRightAligned(cellRect, item.data.size.ToString("f2"), args.selected, args.focused);
                break;

            case MyColumns.Name:
                DefaultGUI.Label(cellRect, item.data.name, args.selected, args.focused);
                break;
            }
        }
Exemplo n.º 4
0
        private void 打印ToolStripButton_Click(object sender, EventArgs e)
        {//打印车位使用信息
            ApplicationClass MyExcel;
            Workbooks        MyWorkBooks;
            Workbook         MyWorkBook;
            Worksheet        MyWorkSheet;
            char             MyColumns;
            Range            MyRange;

            Object[,] MyData = new Object[500, 35];
            int i, j;

            MyExcel         = new ApplicationClass();
            MyExcel.Visible = true;
            if (MyExcel == null)
            {
                MessageBox.Show("Excel程序无法启动!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            MyWorkBooks = MyExcel.Workbooks;
            MyWorkBook  = MyWorkBooks.Add(Missing.Value);
            MyWorkSheet = (Worksheet)MyWorkBook.Worksheets[1];
            MyColumns   = (char)(this.dBCommunityDataSet.车位使用.Columns.Count + 64);
            MyRange     = MyWorkSheet.get_Range("A5", MyColumns.ToString() + "5");
            int Count = 0;

            foreach (DataColumn MyNewColumn in this.dBCommunityDataSet.车位使用.Columns)
            {
                MyData[0, Count] = MyNewColumn.ColumnName;
                Count            = Count + 1;
            }
            j = 1;
            //输出数据库记录
            foreach (DataGridViewRow MyRow in this.车位使用DataGridView.Rows)
            {
                for (i = 0; i < this.dBCommunityDataSet.车位使用.Columns.Count; i++)
                {
                    if (i == 6 | i == 7)
                    {
                        MyData[j, i] = DateTime.Parse(MyRow.Cells[i].Value.ToString()).ToShortDateString();
                    }
                    else
                    {
                        MyData[j, i] = MyRow.Cells[i].Value.ToString();
                    }
                }
                j++;
            }
            MyRange        = MyRange.get_Resize(this.dBCommunityDataSet.车位使用.Rows.Count + 1, this.dBCommunityDataSet.车位使用.Columns.Count);
            MyRange.Value2 = MyData;
            MyRange.EntireColumn.AutoFit();
            MyWorkSheet.Cells[2, 2] = this.MyCommunity + "车位信息表";
            Range MyRange22 = MyWorkSheet.get_Range("B2", "B2");

            MyRange22.Font.Bold     = true;
            MyRange22.Font.Size     = "20";
            MyWorkSheet.Cells[4, 1] = "打印日期:" + DateTime.Now.ToShortDateString();
        }
    void CellGUI(Rect cellRect, TreeViewItem <ReplaceUISpriteTreeElement> item, MyColumns column, ref RowGUIArgs args)
    {
        // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
        CenterRectUsingSingleLineHeight(ref cellRect);
        GUIStyle style = new GUIStyle();

        style.alignment        = TextAnchor.MiddleCenter;
        style.normal.textColor = Color.white;
        switch (column)
        {
        case MyColumns.GameObjectName:
            EditorGUI.LabelField(cellRect, item.data.GameObjectName, style);
            break;

        case MyColumns.UIAtlas:
            EditorGUI.LabelField(cellRect, item.data.AtlasStr, style);
            break;

        case MyColumns.UISpriteName:
            EditorGUI.LabelField(cellRect, item.data.SpriteName, style);
            break;

        case MyColumns.SpriteTexture:
            NGUIEditorTools.DrawSprite(item.data.SpriteTexture, cellRect, item.data.SpriteData, Color.white, false);
            break;

        case MyColumns.ChildPath:
            EditorGUI.LabelField(cellRect, item.data.Path, style);
            break;

        case MyColumns.Replace:
            Rect toggleRect = new Rect(cellRect.x, cellRect.y, 18, cellRect.height);
            Rect labelRect  = new Rect(toggleRect.xMax, cellRect.y, cellRect.width / 2, cellRect.height);

            item.data.Replace = EditorGUI.Toggle(toggleRect, item.data.Replace);

            style.alignment = TextAnchor.MiddleLeft;
            if (item.data.Replace)
            {
                EditorGUI.LabelField(labelRect, "替换", style);
            }
            else
            {
                EditorGUI.LabelField(labelRect, "不替换", style);
            }
            break;

        case MyColumns.TargetSprite:
            if (item.data.TargetSpriteData != null && item.data.TargetSpriteTexture != null)
            {
                NGUIEditorTools.DrawSprite(item.data.TargetSpriteTexture, cellRect, item.data.TargetSpriteData, Color.white, false);
            }
            break;
        }
    }
Exemplo n.º 6
0
        void CellGUI(Rect cellRect, TreeViewItem <ParticleSystemElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Check:
            {
                var toggleRect = cellRect;
                toggleRect.x    += (cellRect.width - kToggleWidth) * 0.5f;
                toggleRect.width = kToggleWidth;
                var oldVal = item.data.enabled;
                item.data.enabled = EditorGUI.Toggle(toggleRect, item.data.enabled);
                if (item.data.enabled != oldVal && GetSelection().Count > 1)
                {
                    foreach (var idx in GetSelection())
                    {
                        treeModel.GetData()[idx].enabled = item.data.enabled;
                    }
                }
            }
            break;

            case MyColumns.Id:
            {
                cellRect.xMin += 3f;
                EditorGUI.LabelField(cellRect, item.data.index.ToString());
            }
            break;

            case MyColumns.Name:
            {
                // Default icon and label
                cellRect.xMin += 3f;
                var iconRect = cellRect;
                iconRect.width = kRowHeights;
                GUI.DrawTexture(iconRect, item.data.icon, ScaleMode.ScaleToFit);
                cellRect.xMin += kRowHeights;
                EditorGUI.LabelField(cellRect, item.data.displayName);
            }
            break;

            case MyColumns.Duration:
            {
                cellRect.xMin += 3f;
                DefaultGUI.Label(cellRect, item.data.duration.ToString("f2"), args.selected, args.focused);
            }
            break;
            }
        }
Exemplo n.º 7
0
    //绘制列表中的每项内容
    void CellGUI(Rect cellRect, AssetViewItem item, MyColumns column, ref RowGUIArgs args)
    {
        CenterRectUsingSingleLineHeight(ref cellRect);
        switch (column)
        {
        case MyColumns.Name:
        {
            var iconRect = cellRect;
            iconRect.x    += GetContentIndent(item);
            iconRect.width = kIconWidth;
            if (iconRect.x < cellRect.xMax)
            {
                var icon = GetIcon(item.data.path);
                if (icon != null)
                {
                    GUI.DrawTexture(iconRect, icon, ScaleMode.ScaleToFit);
                }
            }
            args.rowRect = cellRect;
            base.RowGUI(args);
        }
        break;

        case MyColumns.Path:
        {
            GUI.Label(cellRect, item.data.path);
        }
        break;

        case MyColumns.State:
        {
            GUI.Label(cellRect, ReferenceFinderData.GetInfoByState(item.data.state), stateGUIStyle);
        }
        break;

        case MyColumns.Type:
        {
            GUI.Label(cellRect, item.data.type);
        }
        break;

        default:
            break;
        }
    }
    void CellGUI(Rect cellRect, TreeViewItem <UICreateElement> item, MyColumns column, ref RowGUIArgs args)
    {
        // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
        CenterRectUsingSingleLineHeight(ref cellRect);

        switch (column)
        {
        case MyColumns.Name: {
            Event evt = Event.current;
            // Do toggle
            Rect toggleRect = cellRect;
            toggleRect.x    += GetContentIndent(item);
            toggleRect.width = kToggleWidth;

            //if (toggleRect.xMax < cellRect.xMax)
            //    item.data.m_Write = EditorGUI.Toggle(toggleRect, item.data.m_Write); // hide when outside cell rect

            // Ensure row is selected before using the toggle (usability)
            if (evt.type == EventType.MouseDown && toggleRect.Contains(evt.mousePosition))
            {
                SelectionClick(args.item, false);
            }

            EditorGUI.BeginChangeCheck();
            bool isWrite = EditorGUI.Toggle(toggleRect, item.data.m_Write);
            if (EditorGUI.EndChangeCheck())
            {
                item.data.m_Write = isWrite;
                //将子物体的勾选项与父物体同步
                SetChildWrited(item.data);
            }

            // Default icon and label
            args.rowRect = cellRect;
            base.RowGUI(args);
        }
        break;

        case MyColumns.ReName: {
            cellRect.xMin     += 5f;
            item.data.m_Rename = GUI.TextField(cellRect, item.data.m_Rename);
        }
        break;
        }
    }
Exemplo n.º 9
0
        void CellGUI(Rect cellRect, TreeViewItem <MyTreeElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Name:
            {
                // Do toggle
                Rect toggleRect = cellRect;
                toggleRect.x    += GetContentIndent(item);
                toggleRect.width = kToggleWidth;
                if (toggleRect.xMax < cellRect.xMax)
                {
//							item.data.enabled = EditorGUI.Toggle(toggleRect, item.data.enabled); // hide when outside cell rect

                    // Default icon and label
                    args.rowRect = cellRect;
                }
                base.RowGUI(args);
            }
            break;

            case MyColumns.Value1:
            case MyColumns.Value2:
            {
                if (showControls)
                {
                    cellRect.xMin += 5f;                                     // When showing controls make some extra spacing

                    if (column == MyColumns.Value2)
                    {
                        item.data.eObject = (UnityEngine.Object)EditorGUI.ObjectField(cellRect, GUIContent.none, item.data.eObject, typeof(UnityEngine.Object), true);
                    }
                    if (column == MyColumns.Value1)
                    {
                        GUI.Label(cellRect, item.data.path);
                    }
                }
            }
            break;
            }
        }
Exemplo n.º 10
0
    void CellGUI(Rect cellRect, TreeViewItem <SpriteReferenceTreeElement> item, MyColumns column, ref RowGUIArgs args)
    {
        // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
        CenterRectUsingSingleLineHeight(ref cellRect);
        GUIStyle style = new GUIStyle();

        style.alignment        = TextAnchor.MiddleCenter;
        style.normal.textColor = Color.black;
        switch (column)
        {
        case MyColumns.GameObjectName:
            EditorGUI.LabelField(cellRect, item.data.GameObjectName, style);
            break;

//            case MyColumns.SpriteTexture:
//                NGUIEditorTools.DrawSprite(item.data.SpriteTexture, cellRect, item.data.SpriteData, Color.white,false);
//                EditorGUI.DrawTextureTransparent(textureRect, AssetPreview.GetAssetPreview(sprites[i]));
//                break;
        case MyColumns.ChildPath:
            EditorGUI.LabelField(cellRect, item.data.Path, style);
            break;

        case MyColumns.BreakSpriteReference:
            item.data.breakSpriteReference =
                EditorGUI.ToggleLeft(cellRect, "是否断开引用", item.data.breakSpriteReference);
            break;

        case MyColumns.Preview:
            Rect rect = new Rect(cellRect.x + cellRect.width / 2 - 50, cellRect.y, 100, cellRect.height);
            if (GUI.Button(rect, "查看"))
            {
                GameObject ui = PrefabUtility.InstantiatePrefab(item.data.Go) as GameObject;
                ui.transform.SetParent(GameObject.Find("Canvas").transform);
                ui.transform.localScale    = Vector3.one;
                ui.transform.rotation      = Quaternion.identity;
                Selection.activeGameObject = ui.transform.Find(item.data.Path).gameObject;
                EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
            }
            break;
        }
    }
Exemplo n.º 11
0
            static void CellGUI(Rect getCellRect, ShortcutEntry item, MyColumns getColumn, ref RowGUIArgs args)
            {
                switch (getColumn)
                {
                case MyColumns.Name:
                {
                    GUI.Label(getCellRect, item.displayName);
                    break;
                }

                case MyColumns.Type:
                {
                    GUI.Label(getCellRect, item.type.ToString());
                    break;
                }

                case MyColumns.Binding:
                {
                    GUI.Label(getCellRect, KeyCombination.SequenceToString(item.combinations));
                    break;
                }
                }
            }
Exemplo n.º 12
0
        void CellGUI(Rect cellRect, ThreadTreeViewItem item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.ThreadName:
            {
                args.rowRect = cellRect;
                // base.RowGUI(args);    // Required to show tree indenting

                // Draw manually to keep indenting while add a tooltip
                Rect rect = cellRect;
                if (Event.current.rawType == EventType.Repaint)
                {
                    string text;
                    string tooltip;
                    GetThreadTreeViewItemInfo(item, out text, out tooltip);
                    var content = new GUIContent(text, tooltip);

                    if (activeLineStyle == null)
                    {
                        // activeLineStyle = DefaultStyles.boldLabel;
                        activeLineStyle = new GUIStyle(DefaultStyles.label);
                        activeLineStyle.normal.textColor = DefaultStyles.boldLabel.onActive.textColor;
                    }

                    // rect = DrawIndent(rect, item, ref args);

                    //bool mouseOver = rect.Contains(Event.current.mousePosition);
                    //DefaultStyles.label.Draw(rect, content, mouseOver, false, args.selected, args.focused);

                    // Must use this call to draw tooltip
                    EditorGUI.LabelField(rect, content, args.selected ? activeLineStyle : DefaultStyles.label);
                }
            }
            break;

            case MyColumns.GroupName:
            {
                Rect rect = cellRect;
                if (Event.current.rawType == EventType.Repaint)
                {
                    rect = DrawIndent(rect, item, ref args);

                    string groupName = GetItemGroupName(item);
                    var    content   = new GUIContent(groupName, groupName);
                    EditorGUI.LabelField(rect, content);
                }
            }
            break;

            case MyColumns.State:
                bool oldState = GetThreadSelectedState(item.threadIdentifier) == ThreadSelected.Selected;
                bool newState = EditorGUI.Toggle(cellRect, oldState);
                if (newState != oldState)
                {
                    if (item.threadIdentifier.threadNameWithIndex == m_AllThreadIdentifier.threadNameWithIndex)
                    {
                        // Record active groups
                        m_ThreadSelection.groups.Clear();
                        if (newState)
                        {
                            if (!m_ThreadSelection.groups.Contains(item.threadIdentifier.threadNameWithIndex))
                            {
                                m_ThreadSelection.groups.Add(item.threadIdentifier.threadNameWithIndex);
                            }
                        }

                        // Update selection
                        m_ThreadSelection.selection.Clear();
                        if (newState)
                        {
                            foreach (string threadNameWithIndex in m_ThreadNames)
                            {
                                if (threadNameWithIndex != m_AllThreadIdentifier.threadNameWithIndex)
                                {
                                    var threadIdentifier = new ThreadIdentifier(threadNameWithIndex);
                                    if (threadIdentifier.index != ThreadIdentifier.kAll)
                                    {
                                        m_ThreadSelection.selection.Add(threadNameWithIndex);
                                    }
                                }
                            }
                        }
                    }
                    else if (item.threadIdentifier.index == ThreadIdentifier.kAll)
                    {
                        // Record active groups
                        if (newState)
                        {
                            if (!m_ThreadSelection.groups.Contains(item.threadIdentifier.threadNameWithIndex))
                            {
                                m_ThreadSelection.groups.Add(item.threadIdentifier.threadNameWithIndex);
                            }
                        }
                        else
                        {
                            m_ThreadSelection.groups.Remove(item.threadIdentifier.threadNameWithIndex);
                            // When turning off a sub group, turn of the 'all' group too
                            m_ThreadSelection.groups.Remove(m_AllThreadIdentifier.threadNameWithIndex);
                        }

                        // Update selection
                        if (newState)
                        {
                            foreach (string threadNameWithIndex in m_ThreadNames)
                            {
                                var threadIdentifier = new ThreadIdentifier(threadNameWithIndex);
                                if (threadIdentifier.name == item.threadIdentifier.name &&
                                    threadIdentifier.index != ThreadIdentifier.kAll)
                                {
                                    if (!m_ThreadSelection.selection.Contains(threadNameWithIndex))
                                    {
                                        m_ThreadSelection.selection.Add(threadNameWithIndex);
                                    }
                                }
                            }
                        }
                        else
                        {
                            var removeSelection = new List <string>();
                            foreach (string threadNameWithIndex in m_ThreadSelection.selection)
                            {
                                var threadIdentifier = new ThreadIdentifier(threadNameWithIndex);
                                if (threadIdentifier.name == item.threadIdentifier.name &&
                                    threadIdentifier.index != ThreadIdentifier.kAll)
                                {
                                    removeSelection.Add(threadNameWithIndex);
                                }
                            }
                            foreach (string threadNameWithIndex in removeSelection)
                            {
                                m_ThreadSelection.selection.Remove(threadNameWithIndex);
                            }
                        }
                    }
                    else
                    {
                        if (newState)
                        {
                            m_ThreadSelection.selection.Add(item.threadIdentifier.threadNameWithIndex);
                        }
                        else
                        {
                            m_ThreadSelection.selection.Remove(item.threadIdentifier.threadNameWithIndex);

                            // Turn off any group its in too
                            var groupIdentifier = new ThreadIdentifier(item.threadIdentifier);
                            groupIdentifier.SetAll();
                            m_ThreadSelection.groups.Remove(groupIdentifier.threadNameWithIndex);

                            // Turn of the 'all' group too
                            m_ThreadSelection.groups.Remove(m_AllThreadIdentifier.threadNameWithIndex);
                        }
                    }

                    StateChanged = true;

                    // Re-sort
                    SortIfNeeded(GetRows());
                }
                break;
            }
        }
        void CellGUI(Rect cellRect, TreeViewItem <AH_TreeviewElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);
            AH_TreeviewElement element = (AH_TreeviewElement)item.data;

            switch (column)
            {
            case MyColumns.Icon:
            {
                if (item.data.AssetType != null)
                {
                    GUI.DrawTexture(cellRect, AH_TreeviewElement.GetIcon(item.data.AssetType), ScaleMode.ScaleToFit);
                }
            }
            break;

            case MyColumns.Name:
            {
                Rect nameRect = cellRect;
                nameRect.x += GetContentIndent(item);
                DefaultGUI.Label(nameRect, item.data.m_Name, args.selected, args.focused);
            }
            break;

            case MyColumns.AssetSize:
            case MyColumns.FileSize:
            {
                string value = "";
                if (column == MyColumns.AssetSize && element.AssetSize > 0)
                {
                    value = element.AssetSizeStringRepresentation;
                }
                if (column == MyColumns.FileSize && element.FileSize > 0)
                {
                    value = element.FileSizeStringRepresentation;
                }


                if (element.IsFolder && column == MyColumns.FileSize /*&& !IsExpanded(element.id)*/)
                {
                    value = "{" + AH_Utils.BytesToString(element.GetFileSizeRecursively(((AH_MultiColumnHeader)multiColumnHeader).ShowMode)) + "}";
                    DefaultGUI.Label(cellRect, value, args.selected, args.focused);
                }
                else
                {
                    DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);
                }
            }
            break;

            case MyColumns.UsedInBuild:
            {
                if (item.data.UsedInBuild)
                {
                    DefaultGUI.LabelRightAligned(cellRect, "\u2713", args.selected, args.focused);
                }
            }
            break;

            case MyColumns.LevelUsage:
            {
                if (item.data.UsedInBuild && item.data.ScenesReferencingAsset != null)
                {
                    if (item.data.ScenesReferencingAsset.Count > 0)
                    {
                        string cellString = String.Format("Usage: {0}", item.data.ScenesReferencingAsset.Count.ToString());
                        if (args.selected && args.focused)
                        {
                            if (GUI.Button(cellRect, cellString))
                            {
                                UnityEngine.Object[] sceneAssets = new UnityEngine.Object[item.data.ScenesReferencingAsset.Count];
                                string message = "";

                                for (int i = 0; i < item.data.ScenesReferencingAsset.Count; i++)
                                {
                                    message       += (item.data.ScenesReferencingAsset[i] + Environment.NewLine);
                                    sceneAssets[i] = AssetDatabase.LoadMainAssetAtPath(item.data.ScenesReferencingAsset[i]);
                                }
                                Selection.objects = sceneAssets;
                                EditorUtility.DisplayDialog("Scenes referencing " + item.data.m_Name, message, "OK");
                            }
                        }
                        else
                        {
                            DefaultGUI.LabelRightAligned(cellRect, cellString, args.selected, args.focused);
                        }
                    }

                    /*else
                     *  DefaultGUI.LabelRightAligned(cellRect, "Global", args.selected, args.focused);*/
                }
            }
            break;
            }
        }
Exemplo n.º 14
0
        void CellGUI(Rect cellRect, TreeViewItem <QuestElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            //case MyColumns.Icon1:
            //	{
            //		//GUI.DrawTexture(cellRect, s_TestIcons[GetIcon1Index(item)], ScaleMode.ScaleToFit);
            //	}
            //	break;
            //case MyColumns.Icon2:
            //	{
            //		//GUI.DrawTexture(cellRect, s_TestIcons[GetIcon2Index(item)], ScaleMode.ScaleToFit);
            //	}
            //	break;
            case MyColumns.PrimaryKey:
                DefaultGUI.Label(cellRect, item.data.Pk.ToString(), args.selected, args.focused);
                break;

            case MyColumns.OpenAsset:
            {
                Rect buttonRect = cellRect;
                buttonRect.x    += GetContentIndent(item);
                buttonRect.width = 25;

                if (GUI.Button(buttonRect, s_TestIcons[0]))
                {
                    Selection.activeObject = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(item.data.Path);
                }
            }
            break;

            case MyColumns.Name:
            {
                // Do toggle
                //Rect toggleRect = cellRect;
                //toggleRect.x += GetContentIndent(item);
                //toggleRect.width = kToggleWidth;
                //if (toggleRect.xMax < cellRect.xMax)
                //item.data.enabled = EditorGUI.Toggle(toggleRect, item.data.enabled); // hide when outside cell rect

                // Default icon and label
                //args.rowRect = cellRect;
                //base.RowGUI(args);
                EditorGUI.LabelField(cellRect, item.data.name);
            }
            break;

            case MyColumns.Description:
                DefaultGUI.Label(cellRect, item.data.Description, args.selected, args.focused);
                break;

            case MyColumns.Objectives:
                DefaultGUI.Label(cellRect, item.data.Objectives, args.selected, args.focused);
                break;

            case MyColumns.Active:
            {
                Rect toggleRect = cellRect;
                toggleRect.x    += GetContentIndent(item);
                toggleRect.width = kToggleWidth;
                EditorGUI.Toggle(toggleRect, item.data.Active);
            }
            break;

            case MyColumns.Complete:
            {
                Rect toggleRect = cellRect;
                toggleRect.x    += GetContentIndent(item);
                toggleRect.width = kToggleWidth;
                EditorGUI.Toggle(toggleRect, item.data.Completed);
            }
            break;

            case MyColumns.Delete:
            {
                Rect buttonRect = cellRect;
                buttonRect.x    += GetContentIndent(item);
                buttonRect.width = 55;

                if (GUI.Button(buttonRect, "Delete"))
                {
                    int choice = EditorUtility.DisplayDialogComplex("Delete Quest?",
                                                                    $"Delete both the database entry and local asset OR just the database entry for '{item.data.name}'?", "DB Entry and Asset",
                                                                    "Cancel", "DB Entry Only");

                    if (choice == 1)
                    {
                    }
                    else
                    {
                        var dbPath     = $@"Assets/StreamingAssets/{"quests.db"}";
                        var connection = new SQLiteConnection(dbPath, SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.Create);
                        connection.Delete <QuestEntry>(item.data.Pk);
                        connection.Close();

                        if (choice == 0)                                            // delete both
                        {
                            AssetDatabase.DeleteAsset(item.data.Path);
                        }

                        Repaint();

                        Debug.Log("Deleted");
                    }
                }
            }
            break;

            //case MyColumns.Value1:
            //case MyColumns.Value2:
            //case MyColumns.Value3:
            //	{
            //		if (showControls)
            //		{
            //			cellRect.xMin += 5f; // When showing controls make some extra spacing

            //			if (column == MyColumns.Value1)
            //				item.data.floatValue1 = EditorGUI.Slider(cellRect, GUIContent.none, item.data.floatValue1, 0f, 1f);
            //			if (column == MyColumns.Value2)
            //				item.data.material = (Material)EditorGUI.ObjectField(cellRect, GUIContent.none, item.data.material, typeof(Material), false);
            //			if (column == MyColumns.Value3)
            //				item.data.text = GUI.TextField(cellRect, item.data.text);
            //		}
            //		else
            //		{
            //			string value = "Missing";
            //			if (column == MyColumns.Value1)
            //				value = item.data.floatValue1.ToString("f5");
            //			if (column == MyColumns.Value2)
            //				value = item.data.floatValue2.ToString("f5");
            //			if (column == MyColumns.Value3)
            //				value = item.data.floatValue3.ToString("f5");

            //			DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);
            //		}
            //	}
            //	break;
            default:
                throw new ArgumentOutOfRangeException(nameof(column), column, null);
            }
        }
Exemplo n.º 15
0
        void CellGUI(Rect cellRect, ComparisonTreeViewItem item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            GUIContent content = item.cachedRowString[(int)column];

            switch (column)
            {
            case MyColumns.Name:
            {
                args.rowRect = cellRect;
                //base.RowGUI(args);
                ShowText(cellRect, content);
            }
            break;

            case MyColumns.LeftMedian:
            case MyColumns.Diff:
            case MyColumns.RightMedian:
            case MyColumns.AbsDiff:
            case MyColumns.LeftCount:
            case MyColumns.RightCount:
            case MyColumns.CountDiff:
            case MyColumns.AbsCountDiff:
            case MyColumns.LeftCountMean:
            case MyColumns.RightCountMean:
            case MyColumns.CountMeanDiff:
            case MyColumns.AbsCountMeanDiff:
            case MyColumns.LeftTotal:
            case MyColumns.RightTotal:
            case MyColumns.TotalDiff:
            case MyColumns.AbsTotalDiff:
                ShowText(cellRect, content);
                break;

            case MyColumns.LeftBar:
                ShowBar(cellRect, -Diff(item), m_DiffRange, content, m_ProfileAnalyzerWindow.m_ColorLeft, true);
                break;

            case MyColumns.RightBar:
                ShowBar(cellRect, Diff(item), m_DiffRange, content, m_ProfileAnalyzerWindow.m_ColorRight, false);
                break;

            case MyColumns.LeftCountBar:
                ShowBar(cellRect, -CountDiff(item), m_CountDiffRange, content, m_ProfileAnalyzerWindow.m_ColorLeft, true);
                break;

            case MyColumns.RightCountBar:
                ShowBar(cellRect, CountDiff(item), m_CountDiffRange, content, m_ProfileAnalyzerWindow.m_ColorRight, false);
                break;

            case MyColumns.LeftCountMeanBar:
                ShowBar(cellRect, -CountMeanDiff(item), m_CountMeanDiffRange, content, m_ProfileAnalyzerWindow.m_ColorLeft, true);
                break;

            case MyColumns.RightCountMeanBar:
                ShowBar(cellRect, CountMeanDiff(item), m_CountMeanDiffRange, content, m_ProfileAnalyzerWindow.m_ColorRight, false);
                break;

            case MyColumns.LeftTotalBar:
                ShowBar(cellRect, (float)-TotalDiff(item), (float)m_TotalDiffRange, content, m_ProfileAnalyzerWindow.m_ColorLeft, false);
                break;

            case MyColumns.RightTotalBar:
                ShowBar(cellRect, (float)TotalDiff(item), (float)m_TotalDiffRange, content, m_ProfileAnalyzerWindow.m_ColorRight, false);
                break;
            }

            ShowContextMenu(cellRect, item.data.name, content);
        }
Exemplo n.º 16
0
        void CellGUI(Rect cellRect, TreeViewItem <BobbinPath> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            // case MyColumns.Icon1:
            //  {
            //      GUI.DrawTexture(cellRect, s_TestIcons[GetIcon1Index(item)], ScaleMode.ScaleToFit);
            //  }
            //  break;
            case MyColumns.Toggle:
            {
                item.data.enabled = EditorGUI.Toggle(cellRect, new GUIContent("", "enable refresh?"), item.data.enabled);         // hide when outside cell rect
            }
            break;

            case MyColumns.Name:
            {
                cellRect.width     -= 20;
                item.data.name      = GUI.TextField(cellRect, item.data.name);
                cellRect.x         += cellRect.width;
                cellRect.width      = 20;
                GUI.backgroundColor = Color.Lerp(Color.red, Color.white, 0.75f);
                if (GUI.Button(cellRect, new GUIContent("x", "delete this item")))
                {
                    if (EditorUtility.DisplayDialog("Bobbin: confirm deletion", "Really delete " + item.data.name + "?", "Yes, delete", "No, cancel"))
                    {
                        var list = new List <BobbinPath>();
                        list.Add(item.data);
                        treeModel.RemoveElements(list);
                    }
                }
                GUI.backgroundColor = Color.white;
            }
            break;

            case MyColumns.Value1:
            case MyColumns.Value2:
            case MyColumns.Value3:
            {
                cellRect.xMin += 5f;         // When showing controls make some extra spacing

                if (column == MyColumns.Value1)
                {
                    bool hasURL = item.data.url != null && item.data.url.Length > 4;
                    if (hasURL)
                    {
                        cellRect.width -= 20;
                    }
                    item.data.url = GUI.TextField(cellRect, item.data.url);
                    if (hasURL)
                    {
                        cellRect.x    += cellRect.width;
                        cellRect.width = 20;
                        if (GUI.Button(cellRect, new GUIContent(">", "click to view in web browser: " + BobbinCore.UnfixURL(item.data.url))))
                        {
                            Application.OpenURL(BobbinCore.UnfixURL(item.data.url));
                        }
                    }
                }
                if (column == MyColumns.Value2)
                {
                    item.data.fileType = (Bobbin.FileType)EditorGUI.EnumPopup(cellRect, (Enum)item.data.fileType);
                }
                if (column == MyColumns.Value3)
                {
                    if (item.data.assetReference != null)
                    {
                        cellRect.x              += 24;
                        cellRect.width          -= 24;
                        GUI.enabled              = false;
                        item.data.assetReference = EditorGUI.ObjectField(cellRect, item.data.assetReference, typeof(UnityEngine.Object), false);
                        GUI.enabled              = true;
                        cellRect.x              -= 20;
                        cellRect.width           = 20;
                        if (GUI.Button(cellRect, new GUIContent("x", "reset asset file path\n" + item.data.filePath)))
                        {
                            item.data.assetReference = null;
                            item.data.filePath       = "";
                            item.data.lastFileHash   = "";
                        }
                    }
                    else
                    {
                        if (GUI.Button(cellRect, new GUIContent("Save As...", "click to select asset file path")))
                        {
                            var newPath = EditorUtility.SaveFilePanelInProject("Bobbin: save " + item.data.name + " URL as file...", item.data.name + "." + item.data.fileType.ToString(), item.data.fileType.ToString(), "Save URL as file...");
                            if (newPath != null && newPath.Length > 0)
                            {
                                item.data.filePath     = newPath;
                                item.data.lastFileHash = "";
                                if (item.data.url.Length > 4)
                                {         // only fetch from WWW if user inputed a URL
                                    BobbinCore.DoRefresh();
                                }
                            }
                        } // end if button
                    }     // end else
                }         // end if column3
            }

            break;
            }
        }
Exemplo n.º 17
0
        void CellGUI(Rect cellRect, ProfileTreeViewItem item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Name:
            {
                args.rowRect = cellRect;
                base.RowGUI(args);
            }
            break;

            case MyColumns.Average:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msFrameAverage));
                break;

            case MyColumns.Depth:
                if (m_profileAnalyserWindow.GetDepthFilter() >= 0 || item.data.minDepth == item.data.maxDepth)
                {
                    EditorGUI.LabelField(cellRect, string.Format("{0}", item.data.minDepth));
                }
                else
                {
                    EditorGUI.LabelField(cellRect, string.Format("{0}-{1}", item.data.minDepth, item.data.maxDepth));
                }
                break;

            case MyColumns.Median:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msMedian));
                break;

            case MyColumns.MedianBar:
            {
                float ms = item.data.msMedian;
                if (ms > 0.0f)
                {
                    if (m_profileAnalyserWindow.DrawStart(cellRect))
                    {
                        float w = cellRect.width * ms / m_maxMedian;
                        m_profileAnalyserWindow.DrawBar(0, 1, w, cellRect.height - 1, m_profileAnalyserWindow.m_colorBar);
                        m_profileAnalyserWindow.DrawEnd();
                    }
                }
                GUI.Label(cellRect, new GUIContent("", string.Format("{0:f2}", item.data.msMedian)));
            }
            break;

            case MyColumns.Min:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msMin));
                break;

            case MyColumns.Max:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msMax));
                break;

            case MyColumns.Range:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msMax - item.data.msMin));
                break;

            case MyColumns.Count:
                EditorGUI.LabelField(cellRect, string.Format("{0}", item.data.count));
                break;

            case MyColumns.CountAverage:
                EditorGUI.LabelField(cellRect, string.Format("{0}", item.data.count / m_model.GetFrameSummary().count));
                break;

            case MyColumns.FirstFrame:
                if (!m_profileAnalyserWindow.IsProfilerWindowOpen())
                {
                    GUI.enabled = false;
                }
                if (GUI.Button(cellRect, new GUIContent(item.data.firstFrameIndex.ToString())))
                {
                    m_profileAnalyserWindow.SelectMarker(item.id);
                    m_profileAnalyserWindow.JumpToFrame(item.data.firstFrameIndex);
                }

                GUI.enabled = true;
                break;

            case MyColumns.AtMedian:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msAtMedian));
                break;
            }
        }
Exemplo n.º 18
0
    void CellGUI(Rect cellRect, TreeViewItem <RollEntry> item, MyColumns column, ref RowGUIArgs args)
    {
        // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
        CenterRectUsingSingleLineHeight(ref cellRect);

        switch (column)
        {
        case MyColumns.Icon:
        {
            GUI.DrawTexture(cellRect, s_TestIcons[0], ScaleMode.ScaleToFit);
        }
        break;

        case MyColumns.Name:
        {
            // Do toggle
            Rect toggleRect = cellRect;
            toggleRect.x    += GetContentIndent(item);
            toggleRect.width = kToggleWidth;
//                if (toggleRect.xMax < cellRect.xMax)
//                    item.data.enabled = EditorGUI.Toggle(toggleRect, item.data.enabled); // hide when outside cell rect

            // Default icon and label
            args.rowRect = cellRect;
            base.RowGUI(args);
        }
        break;

        case MyColumns.Object:
        case MyColumns.Weight:
        case MyColumns.DropChance:

        {
            if (showControls)
            {
                using (var check = new EditorGUI.ChangeCheckScope())
                {
                    cellRect.xMin += 5f;     // When showing controls make some extra spacing
                    if (column == MyColumns.Object)
                    {
                        item.data.myObject = EditorGUI.ObjectField(cellRect, item.data.myObject,
                                                                   typeof(UnityEngine.Object), true);
                    }
                    if (column == MyColumns.Weight)
                    {
                        item.data.weight =
                            EditorGUI.IntField(cellRect, item.data.weight);
                    }
                    //TODO DropChance Direct edit : half reduces entire tree proportionally, half increases m_Weight proportionately
                    if (column == MyColumns.DropChance)
                    {
                        EditorGUI.LabelField(cellRect,
                                             item.data.localDropChance.ToString());
                    }

                    if (check.changed)
                    {
                        TableModel.UpdateModel();
                    }
                }
//                    if (column == MyColumns.GuaranteeBonus)
//                        item.data.m_GuaranteeBonus = EditorGUI.IntField(cellRect, item.data.m_GuaranteeBonus);
            }
            else
            {
                string value = "Missing";
                if (column == MyColumns.Object)
                {
                    if (item.data != null && item.data.myObject != null)
                    {
                        value = item.data.myObject.ToString();
                    }
                }

                if (column == MyColumns.Weight)
                {
                    value = item.data.weight.ToString("f5");
                }
                if (column == MyColumns.DropChance)
                {
                    value = item.data.localDropChance.ToString("f5");
                }
//                    if (column == MyColumns.GuaranteeBonus)
//                        value = item.data.m_GuaranteeBonus.ToString("f5");

                DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);
            }
        }
        break;
        }
    }
Exemplo n.º 19
0
        void CellGUI(Rect cellRect, TreeViewItem <AssetAuditTreeElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Name:
            {
                // Do toggle
                Rect iconRect = cellRect;
                iconRect.x    += GetContentIndent(item);
                iconRect.width = kIconWidth;

                Texture2D iconTex = null;

                /*             if (item.data.isAsset)
                 *           {
                 *               if (!string.IsNullOrEmpty(item.data.projectPath))
                 *               {
                 *                   iconTex = AssetPreview.GetMiniThumbnail(
                 *                       AssetDatabase.LoadAssetAtPath<Texture2D>(
                 *                           item.data.projectPath.Substring(Application.dataPath.Length - 6)));
                 *               }
                 *           }*/
                switch (item.data.assetType)
                {
                case AssetAuditor.AssetType.Texture:
                    iconTex = AssetPreview.GetMiniThumbnail(
                        AssetDatabase.LoadAssetAtPath <Texture2D>(
                            item.data.projectPath));
                    break;

                case AssetAuditor.AssetType.Model:
                    iconTex = EditorGUIUtility.FindTexture("PrefabModel Icon");
                    break;

                case AssetAuditor.AssetType.Audio:
                    iconTex = EditorGUIUtility.FindTexture("AudioClip Icon");
                    break;

                case AssetAuditor.AssetType.Folder:
                    iconTex = EditorGUIUtility.FindTexture("Folder Icon");
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                if (iconRect.xMax < cellRect.xMax)
                {
                    GUI.DrawTexture(iconRect, iconTex);
                }
                // Default icon and label
                args.rowRect = cellRect;
                base.RowGUI(args);
            }
            break;

            case MyColumns.Conforms:
                var conforms = item.data.conforms;
                if (item.data.isAsset)
                {
                    if (conforms)
                    {
                        GUI.Label(cellRect, " Settings OK ");
                    }
                    else
                    {
                        if (GUI.Button(cellRect, "Fix"))
                        {
                            _ruleFixEvent.Invoke(item.data);
                        }
                    }
                }
                break;
            }
        }
Exemplo n.º 20
0
        void CellGUI(Rect cellRect, ProfileTreeViewItem item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            GUIContent content = item.cachedRowString[(int)column];

            switch (column)
            {
            case MyColumns.Name:
            {
                args.rowRect = cellRect;
                //base.RowGUI(args);
                //content = new GUIContent(item.data.name, item.data.name);
                ShowText(cellRect, content);
            }
            break;

            case MyColumns.Mean:
            case MyColumns.Depth:
            case MyColumns.Median:
            case MyColumns.Min:
            case MyColumns.Max:
            case MyColumns.Range:
            case MyColumns.Count:
            case MyColumns.CountMean:
            case MyColumns.AtMedian:
            case MyColumns.Total:
            case MyColumns.Threads:
                ShowText(cellRect, content);
                break;

            case MyColumns.MedianBar:
                ShowBar(cellRect, item.data.msMedian, m_MaxMedian, content);
                break;

            case MyColumns.TotalBar:
                ShowBar(cellRect, (float)item.data.msTotal, (float)m_MaxTotal, content);
                break;

            case MyColumns.CountBar:
                ShowBar(cellRect, item.data.count, m_MaxCount, content);
                break;

            case MyColumns.CountMeanBar:
                ShowBar(cellRect, item.data.countMean, m_MaxCountMean, content);
                break;

            case MyColumns.FirstFrame:
                if (!m_ProfileAnalyzerWindow.IsProfilerWindowOpen())
                {
                    GUI.enabled = false;
                }
                if (GUI.Button(cellRect, content))
                {
                    m_ProfileAnalyzerWindow.SelectMarkerByIndex(item.id);
                    m_ProfileAnalyzerWindow.JumpToFrame(item.data.firstFrameIndex);
                }

                GUI.enabled = true;
                break;
            }

            ShowContextMenu(cellRect, item.data.name, content);
        }
Exemplo n.º 21
0
        void CellGUI(Rect cellRect, TreeViewItem <SaveEditorTreeElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Name:
            {
                // Default icon and label
                args.rowRect = cellRect;

                if (item.data.setName != null && showControls)
                {
                    var offset    = 25 * item.depth;
                    var fieldRect = new Rect(offset, cellRect.y, cellRect.width - offset, cellRect.height);
                    try{
                        DrawGuiForValues(
                            fieldRect,
                            item.data.nameValue.GetType(),
                            ref item.data.nameValue,
                            ref item.data.originalNameValue,
                            ref item.data.m_Name,
                            ref item.data.isValidNameValue,
                            item.data.setName,
                            item.data
                            );
                    }catch (Exception e) {
                        Debug.LogError(e);
                    }
                }
                else
                {
                    base.RowGUI(args);
                }
            }
            break;

            case MyColumns.Value:
            {
                if (!showControls)
                {
                    string value = "";
                    if (item.data.valueType.IsGenericType)
                    {
                        value = GetCSharpRepresentation(item.data.valueType, true);
                    }
                    else
                    {
                        value = item.data.value.ToString();
                    }

                    GUI.Label(cellRect, value);
                }
                else
                {
                    cellRect.xMin += 5f; // When showing controls make some extra spacing
                    if (item.data == null)
                    {
                        Debug.LogWarning("Item with null data: " + item.displayName);
                        return;
                    }


                    DrawGuiForValues(
                        cellRect,
                        item.data.valueType,
                        ref item.data.value,
                        ref item.data.originalValue,
                        ref item.data.editorStrValue,
                        ref item.data.isValidValue,
                        item.data.setValue,
                        item.data
                        );
                }
            }
            break;

            case MyColumns.Controls:
            {
                var buttonStyle = new GUIStyle("miniButton");
                buttonStyle.fixedWidth = 20f;
                const float buttonMargin = 5f;
                int         numButtons   = 0;

                Rect NextButton()
                {
                    var mv  = buttonStyle.fixedWidth + buttonMargin;
                    var ret = new Rect(cellRect.x + (mv * numButtons), cellRect.y, buttonStyle.fixedWidth, cellRect.height);

                    numButtons++;
                    return(ret);
                }

                if (GUI.Button(NextButton(), new GUIContent("x", "Set to default"), buttonStyle))
                {
                    RemoveItemsChildrenFromTree(item);
                    var def = GetDefault(item.data.valueType);
                    item.data.setValue(item.data.value, def, item.data);
                    item.data.value          = def;
                    item.data.editorStrValue = item.data.value == null ? "null" : item.data.value.ToString();
                }

                //remove from array/list
                // var parentType = item.data.parent != null ? ((SaveEditorTreeElement)item.data.parent).valueType : null;
                if (item.data.removeValueFromParent != null)
                {
                    if (GUI.Button(NextButton(), new GUIContent("-", "Remove from collection"), buttonStyle))
                    {
                        item.data.removeValueFromParent(item.data);
                        RemoveItemsChildrenFromTree(item);
                        RemoveItemFromTree(item);
                        if (item.data.needsSiblingRename)
                        {
                            RenameChildren(item.parent as TreeViewItem <SaveEditorTreeElement>);
                        }
                        Reload();
                    }
                }
                //Add new element to collection
                if (item.data.addToCollection != null)
                {
                    if (GUI.Button(NextButton(), new GUIContent("+", "Add item to collection"), buttonStyle))
                    {
                        AddItemToCollection(item);
                    }
                }
            }
            break;
            }
        }
Exemplo n.º 22
0
        private void CellGUI(Rect cellRect, SelectionWindowTreeViewItem item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.ItemName:
            {
                args.rowRect = cellRect;
                // base.RowGUI(args);    // Required to show tree indenting

                // Draw manually to keep indenting by add a tooltip
                var rect = cellRect;
                if (Event.current.rawType == EventType.Repaint)
                {
                    int selectedChildren;
                    var childCount = GetChildCount(item.TreeItemIdentifier, out selectedChildren);

                    string text;
                    string tooltip;
                    var    fullName  = item.TreeItemIdentifier.name;
                    var    groupName = GetItemGroupName(item);

                    if (childCount <= 1)
                    {
                        text    = item.displayName;
                        tooltip = groupName == "" ? text : string.Format("{0}\n{1}", text, groupName);
                    }
                    else if (selectedChildren != childCount)
                    {
                        text    = string.Format("{0} ({1} of {2})", fullName, selectedChildren, childCount);
                        tooltip = groupName == "" ? text : string.Format("{0}\n{1}", text, groupName);
                    }
                    else
                    {
                        text    = string.Format("{0} (All)", fullName);
                        tooltip = groupName == "" ? text : string.Format("{0}\n{1}", text, groupName);
                    }

                    var content = new GUIContent(text, tooltip);

                    if (m_ActiveLineStyle == null)
                    {
                        m_ActiveLineStyle = new GUIStyle(DefaultStyles.label);
                        m_ActiveLineStyle.normal.textColor = DefaultStyles.boldLabel.onActive.textColor;
                    }

                    // The rect is assumed indented and sized after the content when pinging
                    var indent = GetContentIndent(item) + extraSpaceBeforeIconAndLabel;
                    rect.xMin += indent;

                    var iconRectWidth            = 16;
                    var kSpaceBetweenIconAndText = 2;

                    // Draw icon
                    var iconRect = rect;
                    iconRect.width = iconRectWidth;
                    // iconRect.x += 7f;

                    Texture icon = args.item.icon;
                    if (icon != null)
                    {
                        GUI.DrawTexture(iconRect, icon, ScaleMode.ScaleToFit);
                    }

                    rect.xMin += icon == null ? 0 : iconRectWidth + kSpaceBetweenIconAndText;

                    //bool mouseOver = rect.Contains(Event.current.mousePosition);
                    //DefaultStyles.label.Draw(rect, content, mouseOver, false, args.selected, args.focused);

                    // Must use this call to draw tooltip
                    EditorGUI.LabelField(rect, content, args.selected ? m_ActiveLineStyle : DefaultStyles.label);
                }
            }
            break;

            case MyColumns.GroupName:
            {
                var groupName = GetItemGroupName(item);
                var content   = new GUIContent(groupName, groupName);
                EditorGUI.LabelField(cellRect, content);
            }
            break;

            case MyColumns.State:
                var oldState = TreeItemSelected(item.TreeItemIdentifier);
                var newState = EditorGUI.Toggle(cellRect, oldState);
                if (newState != oldState)
                {
                    if (item.TreeItemIdentifier.nameWithIndex == m_AllIdentifier.nameWithIndex)
                    {
                        // Record active groups
                        m_Selection.groups.Clear();
                        if (newState)
                        {
                            if (!m_Selection.groups.Contains(item.TreeItemIdentifier.nameWithIndex))
                            {
                                m_Selection.groups.Add(item.TreeItemIdentifier.nameWithIndex);
                            }
                        }

                        // Update selection
                        m_Selection.selection.Clear();
                        if (newState)
                        {
                            foreach (var nameWithIndex in m_Names)
                            {
                                if (nameWithIndex != m_AllIdentifier.nameWithIndex)
                                {
                                    var identifier = new TreeItemIdentifier(nameWithIndex);
                                    if (identifier.index != TreeItemIdentifier.kAll)
                                    {
                                        m_Selection.selection.Add(nameWithIndex);
                                    }
                                }
                            }
                        }
                    }
                    else if (item.TreeItemIdentifier.index == TreeItemIdentifier.kAll)
                    {
                        // Record active groups
                        if (newState)
                        {
                            if (!m_Selection.groups.Contains(item.TreeItemIdentifier.nameWithIndex))
                            {
                                m_Selection.groups.Add(item.TreeItemIdentifier.nameWithIndex);
                            }
                        }
                        else
                        {
                            m_Selection.groups.Remove(item.TreeItemIdentifier.nameWithIndex);
                            // When turning off a sub group, turn of the 'all' group too
                            m_Selection.groups.Remove(m_AllIdentifier.nameWithIndex);
                        }

                        // Update selection
                        if (newState)
                        {
                            foreach (var nameWithIndex in m_Names)
                            {
                                var identifier = new TreeItemIdentifier(nameWithIndex);
                                if (identifier.name == item.TreeItemIdentifier.name &&
                                    identifier.index != TreeItemIdentifier.kAll)
                                {
                                    if (!m_Selection.selection.Contains(nameWithIndex))
                                    {
                                        m_Selection.selection.Add(nameWithIndex);
                                    }
                                }
                            }
                        }
                        else
                        {
                            var removeSelection = new List <string>();
                            foreach (var nameWithIndex in m_Selection.selection)
                            {
                                var identifier = new TreeItemIdentifier(nameWithIndex);
                                if (identifier.name == item.TreeItemIdentifier.name &&
                                    identifier.index != TreeItemIdentifier.kAll)
                                {
                                    removeSelection.Add(nameWithIndex);
                                }
                            }

                            foreach (var nameWithIndex in removeSelection)
                            {
                                m_Selection.selection.Remove(nameWithIndex);
                            }
                        }
                    }
                    else
                    {
                        if (newState)
                        {
                            m_Selection.selection.Add(item.TreeItemIdentifier.nameWithIndex);
                        }
                        else
                        {
                            m_Selection.selection.Remove(item.TreeItemIdentifier.nameWithIndex);

                            // Turn off any group its in too
                            var groupIdentifier = new TreeItemIdentifier(item.TreeItemIdentifier);
                            groupIdentifier.SetAll();
                            m_Selection.groups.Remove(groupIdentifier.nameWithIndex);

                            // Turn of the 'all' group too
                            m_Selection.groups.Remove(m_AllIdentifier.nameWithIndex);
                        }
                    }
                }

                break;
            }
        }
Exemplo n.º 23
0
        void CellGUI(Rect cellRect, ComparisonTreeViewItem item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            // Find largest of min/max and use that range and both the -ve and +ve extends for the bar graphs.
            float min   = Math.Abs(m_minDiff);
            float max   = Math.Abs(m_maxDiff);
            float range = Math.Max(min, max);

            switch (column)
            {
            case MyColumns.Name:
            {
                args.rowRect = cellRect;
                base.RowGUI(args);
            }
            break;

            case MyColumns.LeftMedian:
                if (item.data.leftIndex < 0)
                {
                    EditorGUI.LabelField(cellRect, "-");
                }
                else
                {
                    EditorGUI.LabelField(cellRect, string.Format("{0:f2}", LeftMedian(item)));
                }
                break;

            case MyColumns.Left:
            {
                float diff = Diff(item);
                if (diff < 0.0f)
                {
                    if (m_profileAnalyserWindow.DrawStart(cellRect))
                    {
                        float w = cellRect.width * -diff / range;
                        m_profileAnalyserWindow.DrawBar(cellRect.width - w, 1, w, cellRect.height - 1, m_profileAnalyserWindow.m_colorLeft);
                        m_profileAnalyserWindow.DrawEnd();
                    }
                }
                GUI.Label(cellRect, new GUIContent("", string.Format("{0:f2}", Diff(item))));
            }
            break;

            case MyColumns.Diff:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", Diff(item)));
                break;

            case MyColumns.Right:
            {
                float diff = Diff(item);
                if (diff > 0.0f)
                {
                    if (m_profileAnalyserWindow.DrawStart(cellRect))
                    {
                        float w = cellRect.width * diff / range;
                        m_profileAnalyserWindow.DrawBar(0, 1, w, cellRect.height - 1, m_profileAnalyserWindow.m_colorRight);
                        m_profileAnalyserWindow.DrawEnd();
                    }
                }
                GUI.Label(cellRect, new GUIContent("", string.Format("{0:f2}", Diff(item))));
            }
            break;

            case MyColumns.RightMedian:
                if (item.data.rightIndex < 0)
                {
                    EditorGUI.LabelField(cellRect, "-");
                }
                else
                {
                    EditorGUI.LabelField(cellRect, string.Format("{0:f2}", RightMedian(item)));
                }
                break;

            case MyColumns.AbsDiff:
                EditorGUI.LabelField(cellRect, string.Format("{0:f2}", AbsDiff(item)));
                break;

            case MyColumns.LeftCount:
                if (item.data.leftIndex < 0)
                {
                    EditorGUI.LabelField(cellRect, "-");
                }
                else
                {
                    EditorGUI.LabelField(cellRect, string.Format("{0}", LeftCount(item)));
                }
                break;

            case MyColumns.RightCount:
                if (item.data.rightIndex < 0)
                {
                    EditorGUI.LabelField(cellRect, "-");
                }
                else
                {
                    EditorGUI.LabelField(cellRect, string.Format("{0}", RightCount(item)));
                }
                break;

            case MyColumns.CountDiff:
                if (item.data.leftIndex < 0 && item.data.rightIndex < 0)
                {
                    EditorGUI.LabelField(cellRect, "-");
                }
                else
                {
                    EditorGUI.LabelField(cellRect, string.Format("{0}", CountDiff(item)));
                }
                break;
            }
        }
Exemplo n.º 24
0
    void CellGUI(Rect cellRect, UnityEditor.TreeViewExamples.TreeViewItem <VideoDataTreeElement> item, MyColumns column, ref RowGUIArgs args)
    {
        // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
        CenterRectUsingSingleLineHeight(ref cellRect);

        switch (column)
        {
        case MyColumns.Narration:
        {
            args.rowRect = cellRect;
            base.RowGUI(args);
        }
        break;

        case MyColumns.Verb:
        {
            string value = item.data.display_verb;
            if (item.depth == 0 && showControls)
            {
                value = "";
            }
            DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);

            break;
        }

        case MyColumns.Noun:
        {
            string value = item.data.display_noun;
            if (item.depth == 0 && showControls)
            {
                value = "";
            }
            DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);
            break;
        }

        case MyColumns.Occurences:
        {
            int    occurences = item.data.display_occurences_count;
            string value;
            if (occurences == -1)
            {
                TrainActionLabel v = item.data.occurences[0];
                value = string.Format("{0:0.##} seconds", ((float)(v.stop_frame - v.start_frame) / 30f));
            }
            else
            {
                value = occurences.ToString();
            }

            DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);
        }
        break;

        case MyColumns.PlayVideo:
        {
            if (item.depth == 2)
            {
                if (GUI.Button(cellRect, "Play"))
                {
                    VideoPlayerWindow.GetWindow <VideoPlayerWindow>().PlayClip(item.data.occurences[0]);
                }
            }
        }
        break;
        }
    }
Exemplo n.º 25
0
        void CellGUI(Rect cellRect, TreeViewItem <MyTreeElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)


            switch (column)
            {
            case MyColumns.Icon1:
            {
                //GUI.DrawTexture(cellRect, s_TestIcons[GetIcon1Index(item)], ScaleMode.ScaleToFit);
                //GUI.DrawTexture(cellRect, item.GetIcon1(), ScaleMode.ScaleToFit);
            }
            break;

            case MyColumns.Icon2:
            {
                if (item.hasChildren)
                {
                    GUI.DrawTexture(cellRect, s_TestIcons[GetIcon2Index(item)], ScaleMode.ScaleToFit);
                }
                else
                {
                    var t = item.GetIcon1();
                    if (t != null)
                    {
                        Color was = GUI.color;
                        GUI.color = Color.white;
                        GUI.DrawTexture(cellRect, t, ScaleMode.ScaleToFit);
                        GUI.color = was;
                    }
                }
            }
            break;

            case MyColumns.Name:
            {
                CenterRectUsingSingleLineHeight(ref cellRect);
                // Do toggle

                /*
                 *                      Rect toggleRect = cellRect;
                 *                      toggleRect.x += GetContentIndent(item);
                 *                      toggleRect.width = kToggleWidth;
                 *                      if (toggleRect.xMax < cellRect.xMax)
                 *                          item.data.enabled = EditorGUI.Toggle(toggleRect, item.data.enabled); // hide when outside cell rect
                 */
                // Default icon and label
                var itemUse = (TreeViewItem <MyTreeElement>)args.item;

                args.rowRect = cellRect;
                base.RowGUI(args);
            }
            break;

/*
 *                              case MyColumns.Value1:
 *                              case MyColumns.Value2:
 *                              case MyColumns.Value3:
 *                                      {
 *                                              if (showControls)
 *                                              {
 *                                                      cellRect.xMin += 5f; // When showing controls make some extra spacing
 *
 *                                                      //if (column == MyColumns.Value1)
 *                                                      //	item.data.floatValue1 = EditorGUI.Slider(cellRect, GUIContent.none, item.data.floatValue1, 0f, 1f);
 *                                                      if (column == MyColumns.Value2)
 *                                                              item.data.material = (Material)EditorGUI.ObjectField(cellRect, GUIContent.none, item.data.material, typeof(Material), false);
 *                                                      if (column == MyColumns.Value3)
 *                                                              item.data.text = GUI.TextField(cellRect, item.data.text);
 *                                              }
 *                                              else
 *                                              {
 *                                                      string value = "Missing";
 *
 *                                                      if (column == MyColumns.Value1)
 *                                                              value = item.data.floatValue1.ToString("f5");
 *                                                      if (column == MyColumns.Value2)
 *                                                              value = item.data.floatValue2.ToString("f5");
 *                                                      if (column == MyColumns.Value3)
 *                                                              value = item.data.floatValue3.ToString("f5");
 *
 *                                                      DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);
 *                                              }
 *                                      }
 *                                      break;
 */
            }
        }
Exemplo n.º 26
0
        void CellGUI(Rect cellRect, TreeViewItem <MerinoTreeElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
//				case MyColumns.Icon1:
//					{
//						GUI.DrawTexture(cellRect, s_TestIcons[GetIcon1Index(item)], ScaleMode.ScaleToFit);
//					}
//					break;
//				case MyColumns.Icon2:
//					{
//						GUI.DrawTexture(cellRect, s_TestIcons[GetIcon2Index(item)], ScaleMode.ScaleToFit);
//					}
//					break;

            case MyColumns.Name:
            {
                // Do toggle
//						Rect toggleRect = cellRect;
//						toggleRect.x += GetContentIndent(item);
//						toggleRect.width = kToggleWidth;
//						if (toggleRect.xMax < cellRect.xMax)
//							item.data.enabled = EditorGUI.Toggle(toggleRect, item.data.enabled); // hide when outside cell rect

                // Default icon and label
                args.rowRect = cellRect;
                base.RowGUI(args);
            }
            break;

//				case MyColumns.Value1:
//				case MyColumns.Value2:
//				case MyColumns.Value3:
//					{
//						if (showControls)
//						{
//							cellRect.xMin += 5f; // When showing controls make some extra spacing
//
//							if (column == MyColumns.Value1)
//								item.data.floatValue1 = EditorGUI.Slider(cellRect, GUIContent.none, item.data.floatValue1, 0f, 1f);
//							if (column == MyColumns.Value2)
//								item.data.material = (Material)EditorGUI.ObjectField(cellRect, GUIContent.none, item.data.material, typeof(Material), false);
//							if (column == MyColumns.Value3)
//								item.data.text = GUI.TextField(cellRect, item.data.text);
//						}
//						else
//						{
//							string value = "Missing";
//							if (column == MyColumns.Value1)
//								value = item.data.floatValue1.ToString("f5");
//							if (column == MyColumns.Value2)
//								value = item.data.floatValue2.ToString("f5");
//							if (column == MyColumns.Value3)
//								value = item.data.floatValue3.ToString("f5");
//
//							DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);
//						}
//					}
//					break;
            }
        }
        void CellGUI(Rect cellRect, TreeViewItem <VariablesElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Id:
            {
                if (editing)
                {
                    EditorGUI.BeginChangeCheck();
                    _variableID = EditorGUI.DelayedTextField(cellRect, item.data.variable.name).Trim().Replace(" ", "").Replace("_", "");
                    if (EditorGUI.EndChangeCheck())
                    {
                        AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(item.data.variable), _variableID);
                    }
                }
                else
                {
                    DefaultGUI.Label(cellRect, item.data.variable.name, args.selected, args.focused);
                }
            }
            break;

            case MyColumns.Group:
            {
                if (editing)
                {
                    EditorGUI.BeginChangeCheck();
                    _variableGroup = EditorGUI.DelayedTextField(cellRect, item.data.variable.group).Trim().Replace(" ", "").Replace("_", "");
                    if (EditorGUI.EndChangeCheck())
                    {
                        item.data.variable.group = _variableGroup;
                    }
                }
                else
                {
                    DefaultGUI.Label(cellRect, item.data.variable.group, args.selected, args.focused);
                }
            }
            break;

            case MyColumns.Type:
                if (editing)
                {
                    EditorGUI.BeginChangeCheck();
                    _variableType = (Variable.VariableType)EditorGUI.EnumPopup(cellRect, item.data.variable.Type);
                    if (EditorGUI.EndChangeCheck())
                    {
                        item.data.variable.Type = _variableType;
                        EditorUtility.SetDirty(item.data.variable);
                    }
                }
                else
                {
                    DefaultGUI.Label(cellRect, item.data.variable.Type.ToString(), args.selected, args.focused);
                }
                break;

            case MyColumns.Default:
            {
                if (editing)
                {
                    EditorGUI.BeginChangeCheck();
                    _serializedVariable = VariableEditor.DrawSerializedVariable(cellRect, item.data.variable.Type, item.data.variable.DefaultValue);
                    if (EditorGUI.EndChangeCheck())
                    {
                        EditorUtility.SetDirty(item.data.variable);
                    }
                }
                else
                {
                    DefaultGUI.Label(cellRect, item.data.variable.DefaultValue.ToString(), args.selected, args.focused);
                }
            }
            break;

            case MyColumns.InGame:
            {
                if (editing)
                {
                    EditorGUI.BeginChangeCheck();
                    _serializedVariable = VariableEditor.DrawSerializedVariable(cellRect, item.data.variable.Type, item.data.variable.InGameValue);
                    if (EditorGUI.EndChangeCheck())
                    {
                        EditorUtility.SetDirty(item.data.variable);
                    }
                }
                else
                {
                    DefaultGUI.Label(cellRect, item.data.variable.InGameValue.ToString(), args.selected, args.focused);
                }
            }
            break;


            case MyColumns.Description:
            {
                if (editing)
                {
                    EditorGUI.BeginChangeCheck();
                    _description = EditorGUI.DelayedTextField(cellRect, item.data.variable.description);
                    if (EditorGUI.EndChangeCheck())
                    {
                        item.data.variable.description = _description;
                    }
                }
                else
                {
                    DefaultGUI.Label(cellRect, item.data.variable.description, args.selected, args.focused);
                }
            }
            break;
            }
        }