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; } }
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; } }
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; } }
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; } }
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; } }
//绘制列表中的每项内容 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; } }
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; } }
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; } }
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; } } }
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; } }
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); } }
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); }
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; } }
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; } }
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; } }
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; } }
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); }
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; } }
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; } }
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; } }
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; } }
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; */ } }
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; } }