private void DrawTrack(Rect rect) { using (new GUI.ClipScope(new Rect(rect.x, rect.y, rect.width, rect.height))) { int startY = Mathf.FloorToInt(DrawerConfig.ScrollPosY / DrawerConfig.TrackLineHeight); int endY = Mathf.CeilToInt((DrawerConfig.ScrollPosY + rect.height) / DrawerConfig.TrackLineHeight); float maxWidth = m_GroupData.Length * DrawerConfig.WidthForSecond; for (int i = startY; i < endY; ++i) { float y = DrawerConfig.TrackLineHeight * i - DrawerConfig.ScrollPosY; if (i >= m_TrackDrawers.Count) { break; } Rect trackRect = new Rect(0, y, rect.width, DrawerConfig.TrackLineHeight); trackRect.width = Mathf.Min(rect.width, maxWidth - DrawerConfig.ScrollPosX); if (SelectTrackIndex == i) { EditorGUIUtil.DrawAreaLine(trackRect, Color.green); } m_TrackDrawers[i].OnGUI(trackRect); } } }
private void SearchArea() { GUI.Label(new Rect(0f, 0f, position.width, m_ToolbarHeight), GUIContent.none, m_Styles.toolbarBack); bool flag = Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Escape; GUI.SetNextControlName("SearchFilter"); string text = EditorGUIUtil.SearchField(new Rect(5f, 5f, position.width - 10f, 15f), m_SearchFilter); if (flag && Event.current.type == EventType.Used) { if (m_SearchFilter == string.Empty) { Cancel(); } m_FocusSearchFilter = true; } if (text != m_SearchFilter || m_FocusSearchFilter) { m_SearchFilter = text; FilterSettingsChanged(); Repaint(); } if (m_FocusSearchFilter) { EditorGUI.FocusTextInControl("SearchFilter"); m_FocusSearchFilter = false; } GUILayout.BeginArea(new Rect(0f, 26f, position.width, m_ToolbarHeight - 26f)); GUILayout.BeginHorizontal(); GUILayout.Toggle(true, m_FolderPath, m_Styles.tab); GUILayout.EndHorizontal(); GUILayout.EndArea(); }
public void OnGUI(Rect rect) { if (m_EndStageData == null) { EditorGUI.HelpBox(rect, "Data is Null", MessageType.Error); return; } float deltaHeight = 0.0f; Rect isScaleTimeRect = new Rect(rect.x, rect.y + deltaHeight, rect.width, EditorGUIUtility.singleLineHeight); m_EndStageData.IsScaleByTime = EditorGUI.Toggle(isScaleTimeRect, "Is Scale By Time", m_EndStageData.IsScaleByTime); deltaHeight += isScaleTimeRect.height; Rect groupRect = new Rect(rect.x, rect.y + deltaHeight, rect.width, (rect.height - deltaHeight) * .6f); EditorGUIUtil.DrawAreaLine(groupRect, Color.gray); groupDrawer.OnGUI(groupRect); deltaHeight += groupRect.height; Rect breakGroupRect = new Rect(rect.x, rect.y + deltaHeight, rect.width, rect.height - deltaHeight); EditorGUIUtil.DrawAreaLine(breakGroupRect, Color.gray); breakGroupDrawer.OnGUI(breakGroupRect); }
public bool OnInspectorGUI() { Animation anim = script.GetComponent <Animation>(); bool changed = false; EditorGUI.indentLevel++; foreach (string varName in clipVars) { AnimationClip val = ReflectionUtil.GetFieldValue <AnimationClip>(script, varName); if (anim != null) { if (EditorGUIUtil.PopupNullable <AnimationClip>(varName, ref val, anim.GetAllClips().ToArray())) { ReflectionUtil.SetFieldValue(script, varName, val); changed = true; } } else { if (val != null) { ReflectionUtil.SetFieldValue <AnimationClip>(script, varName, null); changed = true; } } } EditorGUI.indentLevel--; if (changed) { EditorUtil.SetDirty(script); } return(changed); }
private void VisualizeDups() { if (dups.Count == 0) { return; } EditorGUILayout.LabelField("Duplicates", EditorStyles.boldLabel); EditorGUI.indentLevel += 2; foreach (UIWidgetClassifier.WidgetType widgetType in EnumUtil.Values <UIWidgetClassifier.WidgetType>()) { MultiMap <string, DupEntry> map = null; if (dups.TryGetValue(widgetType, out map) && map.Count > 0) { EditorGUILayout.LabelField(widgetType.ToString(), EditorStyles.boldLabel); EditorGUI.indentLevel += 2; foreach (KeyValuePair <string, List <DupEntry> > slot in map) { EditorGUIUtil.ObjectFieldList(slot.Value); EditorGUILayout.Space(); } EditorGUI.indentLevel -= 2; } } EditorGUI.indentLevel -= 2; }
public override void OnInspectorGUI() { GUI.enabled = true; EditorGUILayout.BeginHorizontal(); if (EditorGUIUtil.ObjectField <GameObject>("Root", ref root, true)) { Classify(ref root); } if (GUILayout.Button("Refresh", GUILayout.ExpandWidth(false)) || root == null) { Classify(ref root); } GUI.enabled = root != null; if (GUILayout.Button("Rename", GUILayout.ExpandWidth(false))) { Rename(); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); scroll = EditorGUILayout.BeginScrollView(scroll); VisualizeGroup(); EditorGUIUtil.DrawSeparator(); VisualizeDups(); EditorGUILayout.EndScrollView(); }
private void OnPropertyGUI(Rect rect) { GUILayout.BeginArea(rect); { EditorGUILayout.LabelField("Property", m_PropertyStyle); m_PropertyScrollPos = EditorGUILayout.BeginScrollView(m_PropertyScrollPos, GUILayout.Width(rect.width - 17)); { EditorGUIUtil.BeginLabelWidth(100); { float timeLen = EditorGUILayout.FloatField("Time Length", m_GroupData.Length); if (timeLen != m_GroupData.Length) { m_GroupData.Length = timeLen; DrawerConfig.TimeLength = timeLen; } EditorGUILayout.Space(); if (SelectTrackIndex >= 0 && SelectTrackIndex < m_TrackDrawers.Count) { m_TrackDrawers[SelectTrackIndex].OnPropertyGUI(m_IsShowDesc()); } } EditorGUIUtil.EndLableWidth(); } EditorGUILayout.EndScrollView(); } GUILayout.EndArea(); }
private bool DrawRowHeader() { bool changed = false; EditorGUILayout.BeginVertical(); changed |= EditorGUIUtil.ObjectField <UITableCell>(ref table.defaultPrefab, true, W_Option, H_Option); EditorGUILayout.LabelField("Align", EditorStyles.boldLabel, H_Option); EditorGUILayout.LabelField("Size", EditorStyles.boldLabel, H_Option); EditorGUILayout.LabelField("Index", EditorStyles.boldLabel, H_Option); int row = table.isVertical? table.GetMaxPerLine(): table.rowCount; table.InitArray(); for (int r = 0; r < row; r++) { EditorGUILayout.BeginHorizontal(); changed |= EditorGUIUtil.ObjectField <UITableCell>(ref table.rowPrefab[r], true, GUILayout.Width(WIDTH - 20), H_Option); changed |= EditorGUIUtil.Popup <UITableLayout.VAlign>(ref table.valigns[r], EnumUtil.Values <UITableLayout.VAlign>(), GUILayout.Width(40), H_Option); changed |= EditorGUIUtil.IntField(null, ref table.rowHeight[r], GUILayout.Width(WIDTH - 30), H_Option); EditorGUILayout.LabelField((r + 1).ToString(), EditorStyles.boldLabel, GUILayout.Width(20), H_Option); EditorGUILayout.EndHorizontal(); } if (!IsHorizontal()) { EditorGUILayout.LabelField("", W_Option); EditorGUILayout.LabelField("", W_Option); EditorGUILayout.LabelField("", W_Option); } EditorGUILayout.EndVertical(); if (changed) { table.InitArray(); } return(changed); }
protected override bool OnInspectorGUI(FontChangeData data, int i) { bool changed = false; EditorGUILayout.BeginVertical(); if (EditorGUIUtil.ObjectField <Font>("DynamicFont", ref data.font, false)) { changed = true; if (data.font != null) { data.uiFont = null; } } if (EditorGUIUtil.ObjectField <UIFont>("Reference Font", ref data.uiFont, false)) { changed = true; if (data.uiFont != null) { data.font = null; } } ArrayDrawer <UIFont> arr = null; if (!arrMap.TryGetValue(data, out arr)) { arr = new ArrayDrawer <UIFont>(data, "references"); arr.allowSceneObject = false; arrMap[data] = arr; } arr.OnInspectorGUI(); EditorGUILayout.EndVertical(); return(changed); }
private bool DrawTableStructure() { bool changed = false; if (NGUIEditorTools.DrawHeader("Table Structure")) { NGUIEditorTools.BeginContents(); EditorGUILayout.HelpBox("Modifying structure values may occur unintented result", MessageType.Warning); changed = EditorGUIUtil.PopupEnum <UITableLayout.Arrangement>("Orientation", ref grid.arrangement, GUILayout.ExpandWidth(false)); string rowCol = grid.isHorizontal? "Column Size": "Row Size"; if (EditorGUIUtil.IntField(rowCol, ref grid.maxPerLine, GUILayout.ExpandWidth(false))) { if (grid.maxPerLine <= 0) { grid.maxPerLine = 1; } changed = true; } changed |= EditorGUIUtil.IntField("Row Header", ref grid.rowHeader, GUILayout.ExpandWidth(false)); changed |= EditorGUIUtil.IntField("Column Header", ref grid.columnHeader, GUILayout.ExpandWidth(false)); changed |= EditorGUIUtil.Toggle("Reuse Cell", ref grid.reuseCell, GUILayout.ExpandWidth(false)); NGUIEditorTools.EndContents(); } if (changed) { grid.InitArray(); } return(changed); }
private void DrawConfigList(Rect configListRect) { GUILayout.BeginArea(configListRect); { EditorGUILayout.LabelField("Flyer Data List", boldCenterStyle, GUILayout.Width(configListRect.width)); m_ScrollListPos = EditorGUILayout.BeginScrollView(m_ScrollListPos, false, true, GUILayout.Width(configListRect.width)); { foreach (var kvp in m_DataDic) { if (!string.IsNullOrEmpty(m_SelectedDataFullPath) && kvp.Key == m_SelectedDataFullPath) { EditorGUIUtil.BeginGUIBackgroundColor(Color.cyan); { if (GUILayout.Button(Path.GetFileNameWithoutExtension(kvp.Key))) { SelectedDataFullPath = kvp.Key; } } EditorGUIUtil.EndGUIBackgroundColor(); } else { if (GUILayout.Button(Path.GetFileNameWithoutExtension(kvp.Key))) { SelectedDataFullPath = kvp.Key; } } } } EditorGUILayout.EndScrollView(); } GUILayout.EndArea(); }
private void OnGUI() { Rect toolbarRect = new Rect(0, 0, position.width, TOOLBAR_HEIGHT); DrawToolbar(toolbarRect); Rect configListRect = new Rect(1, TOOLBAR_HEIGHT, CONFIG_LIST_WIDTH, position.height - TOOLBAR_HEIGHT - 1); EditorGUIUtil.DrawAreaLine(configListRect, Color.gray); configListRect.x += 2; configListRect.y += 2; configListRect.width -= 4; configListRect.height -= 4; DrawConfigList(configListRect); Rect tabPageRect = new Rect(CONFIG_LIST_WIDTH, TOOLBAR_HEIGHT, position.width - CONFIG_LIST_WIDTH, TAB_PAGE_HEIGHT); DrawTabPages(tabPageRect); Rect tabContentRect = new Rect(CONFIG_LIST_WIDTH, TOOLBAR_HEIGHT + TAB_PAGE_HEIGHT, position.width - CONFIG_LIST_WIDTH - 1, position.height - TAB_PAGE_HEIGHT - TOOLBAR_HEIGHT - 1); EditorGUIUtil.DrawAreaLine(tabContentRect, Color.yellow); tabContentRect.x += 1; tabContentRect.y += 1; tabContentRect.width -= 2; tabContentRect.height -= 2; DrawTabContent(tabContentRect); }
/// <summary> /// 添加新的模块 /// </summary> private void onAddNewModuleGUI() { EditorGUIUtil.DrawHeader("Add New Module"); //添加模块视图 GUILayout.BeginHorizontal("AS TextArea", GUILayout.Height(30)); selectEnum = (ActModuleEnum)EditorGUILayout.EnumPopup("新模块", selectEnum, GUILayout.MaxWidth(Screen.width * 0.5f)); GUI.backgroundColor = Color.green; if (GUILayout.Button("Add", GUILayout.Width(60))) { if (string.IsNullOrEmpty(actName)) { return; } EditorWidgetState widget = new EditorWidgetState(); widget.Entity = Activator.CreateInstance(moduleMap[selectEnum]); widget.FoldOut = true; EditorGUIUtil.FindAllWidget(new List <EditorWidgetState>(), widget, widget.Entity); widgetList.Add(widget); } GUI.backgroundColor = Color.white; GUILayout.EndHorizontal(); }
/// <summary> /// 初始化ACT项的属性,从文件目录加载配置 /// </summary> /// <param name="groupName">Act 的分组</param> /// <param name="actName">Act 的名称</param> public void InitActItemProperty(string groupName, string actName) { this.actGroup = groupName; this.actName = actName; //加载文件 string relativePath = string.Concat("Act/", groupName, "/", actName, ".act"); object[] property = localDataHelper.Import(relativePath); widgetList.Clear(); if (property == null) { return; //新建的文件没有本地数据 } int index = 0; foreach (object obj in property) { EditorWidgetState widget = new EditorWidgetState(); widget.Entity = obj; widget.FoldOut = index == 0; EditorGUIUtil.FindAllWidget(new List <EditorWidgetState>(), widget, widget.Entity); index++; widgetList.Add(widget); } }
private bool DrawTextMod() { bool changed = false; int row = grid.rowCount; int col = grid.columnCount; mod = EditorGUILayout.Foldout(mod, "Text Mod"); if (mod) { EditorGUI.indentLevel += 2; for (int r = 0; r < row; r++) { EditorGUILayout.BeginHorizontal(); for (int c = 0; c < col; c++) { UITableCell cell = grid.GetCell(r, c); UILabel l = cell != null?cell.GetComponentInChildren <UILabel>() : null; string s = l != null? l.text: ""; if (EditorGUIUtil.TextField(null, ref s, GUILayout.Width(70)) && l != null) { l.SetText(s); changed = true; } } EditorGUILayout.EndHorizontal(); } EditorGUI.indentLevel -= 2; } return(changed); }
private void OnGUIFSMState() { if (m_curFsmStateSet == null) { return; } EditorGUILayout.BeginVertical("box", GUILayout.MinWidth(200), GUILayout.MinHeight(200)); { GUILayout.Label("State List", EditorStyles.boldLabel); m_stateScrollPosition = GUILayout.BeginScrollView(m_stateScrollPosition); { var stateElementList = m_curFsmStateSet.stateElementList; for (int i = 0; i < stateElementList.Count; ++i) { string name = stateElementList[i].StateName; bool selected = i == m_selectedStateIndex; EditorGUIUtil.Label(name, selected, 0, 2, EditorGUIUtil.GetSelectedTextColorByEditorSkin(selected)); if (EditorGUIEventUtil.IsLastRectClicked()) { SelectState(i); } } } GUILayout.EndScrollView(); } EditorGUILayout.EndVertical(); }
private void DrawPropertyChildrenRecursive(SerializedProperty property, SerializedProperty propertyReference) { SerializedProperty endProperty = property.GetEndProperty(); SerializedProperty endReferenceProperty = (propertyReference != null) ? propertyReference.GetEndProperty() : null; // go into the children of the property property.NextVisible(enterChildren: true); if (propertyReference != null) { propertyReference.NextVisible(enterChildren: true); } EditorGUI.indentLevel++; do { bool changed = this.ArePropertyValuesChanged(property, propertyReference); EditorGUIUtil.SetBoldDefaultFont(changed); EditorGUILayout.PropertyField(property); if (property.hasVisibleChildren && property.isExpanded) { this.DrawPropertyChildrenRecursive(property.Copy(), (propertyReference != null) ? propertyReference.Copy() : null); } } while (this.EnterNextVisibleForProperties(property, ref propertyReference, endReferenceProperty, enterChildren: false) && !SerializedProperty.EqualContents(property, endProperty)); EditorGUI.indentLevel--; }
public void OnInspectorGUI() { if (EditorGUIUtil.ObjectField <GameObject>("Empty Obj", ref grid.emptyObj, true)) { EditorUtil.SetDirty(grid.emptyObj); } OnGridGUI(); }
private void DrawSceneListHeader(Rect rect) { rect.y += 1; rect = EditorGUIUtil.DrawReorderableListHeaderIndex(rect); float[] widths = GetOtherListColumnWidth(rect); EditorGUI.LabelField(new Rect(rect.x, rect.y, widths[0] - space, lineHeight), "路径"); rect.x += widths[0]; EditorGUI.LabelField(new Rect(rect.x, rect.y, widths[1] - space, lineHeight), "忽略"); }
protected override bool OnInspectorGUI(RenderQueueElement info, int i) { float width = GetWidth(); bool changed = false; changed |= EditorGUIUtil.TextField(null, ref info.name, GUILayout.MinWidth(width * 0.5F)); changed |= EditorGUIUtil.IntField(null, ref info.value, GUILayout.MinWidth(width * 0.3F)); return(changed); }
private void DrawExcludeListHeader(Rect rect) { rect.y += 1; rect = EditorGUIUtil.DrawReorderableListHeaderIndex(rect); float width = Mathf.Min(200, rect.width); float residue = rect.width - width; EditorGUI.LabelField(new Rect(rect.x, rect.y, width + residue - space, lineHeight), "资源路径(非目录)"); }
/// <summary> /// 绘制当前使用的BundleNode的信息 /// </summary> private void DrawBundleNodes() { foreach (var node in m_BundleNodes) { string bundlePath = node.AsDynamic().m_BundlePath; if (!m_BundleNodeFoldoutDic.TryGetValue(bundlePath, out bool isFoldout)) { isFoldout = false; m_BundleNodeFoldoutDic.Add(bundlePath, isFoldout); } bool isDone = node.AsDynamic().IsDone; if (!isDone) { bundlePath += "(Loading)"; } m_BundleNodeFoldoutDic[bundlePath] = EditorGUILayout.Foldout(isFoldout, bundlePath); if (isFoldout) { EditorGUIUtil.BeginGUIBackgroundColor(m_NodeBGColor); { EditorGUILayout.BeginVertical(EditorStyles.helpBox); { EditorGUIUtil.BeginIndent(); { EditorGUILayout.LabelField("Bundle Node:"); EditorGUIUtil.BeginIndent(); { DrawBundleNode(node); } EditorGUIUtil.EndIndent(); if (m_IsShowBundleNodeDirect) { EditorGUILayout.LabelField("Direct Bundle:"); string[] depends = m_AssetBundleManifest.GetDirectDependencies(bundlePath); EditorGUIUtil.BeginIndent(); { foreach (var depend in depends) { BundleNode dependNode = m_BundleNodeDic[depend]; DrawBundleNode(dependNode); EditorGUILayout.Space(); } } EditorGUIUtil.EndIndent(); } } EditorGUIUtil.EndIndent(); } EditorGUILayout.EndVertical(); } EditorGUIUtil.EndGUIBackgroundColor(); } } }
protected override void OnGUI() { if (boldCenterStyle == null) { boldCenterStyle = new GUIStyle(EditorStyles.boldLabel); boldCenterStyle.alignment = TextAnchor.MiddleCenter; boldCenterStyle.fontSize = 16; } base.OnGUI(); EditorGUILayout.BeginVertical(); { EditorGUILayout.LabelField("New Data Creater", boldCenterStyle); EditorGUILayout.Space(); EditorGUIUtil.BeginLabelWidth(60); { id = EditorGUILayout.IntField("Input ID:", id); } EditorGUIUtil.EndLableWidth(); GUILayout.FlexibleSpace(); if (!string.IsNullOrEmpty(errorMsg)) { EditorGUILayout.HelpBox(errorMsg, MessageType.Error); } EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("Create")) { if (checkCallback != null) { if (checkCallback(id)) { createCallback?.Invoke(id); createCallback = null; Close(); } else { errorMsg = "Error ID"; } } else { createCallback?.Invoke(id); Close(); } } if (GUILayout.Button("Cancel")) { Close(); } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); }
public void OnGUI(Rect rect) { if (m_FlyingStageData == null) { EditorGUI.HelpBox(rect, "Data is Null", MessageType.Error); return; } EditorGUIUtil.DrawAreaLine(rect, Color.gray); groupDrawer.OnGUI(rect); }
/// <summary> /// 右边的技能列表 /// </summary> private void onRightActListGUI(EditorScrollWidgetState <object> scrollWidget) { GUILayout.BeginVertical(); EditorGUIUtil.DrawHeader("技能列表"); scrollWidget.Pos = GUILayout.BeginScrollView(scrollWidget.Pos); GUILayout.EndScrollView(); GUILayout.EndVertical(); }
private void DrawFindLexiconGUI() { EditorGUILayout.BeginHorizontal(); EditorGUIUtil.TextField("Lexicon Keys", ref lexiconKeys); if (GUILayout.Button("Find") && lexiconKeys.IsNotEmpty()) { Debug.Log(UIBuildScript.FindTextKey(lexiconKeys)); } EditorGUILayout.EndHorizontal(); }
private bool DrawColumn() { bool changed = false; int columnSize = table.isHorizontal? table.GetMaxPerLine(): table.columnCount; int contentSize = table.columnCount; for (int c = 0; c < columnSize; c++) { EditorGUILayout.BeginVertical(); changed |= EditorGUIUtil.ObjectField <UITableCell>(ref table.columnPrefab[c], true, GUILayout.ExpandWidth(false), H_Option); changed |= EditorGUIUtil.Popup <UITableLayout.HAlign>(ref table.haligns[c], EnumUtil.Values <UITableLayout.HAlign>(), GUILayout.Width(WIDTH - 20), H_Option); changed |= EditorGUIUtil.IntField(null, ref table.columnWidth[c], GUILayout.Width(WIDTH - 20), H_Option); EditorGUILayout.LabelField(c.ToString(), EditorStyles.boldLabel, W_Option, H_Option); int row = table.rowCount; if (c < contentSize) { for (int r = 0; r < row; r++) { changed |= DrawCell(r, c); } // Draw Column +/- buttons EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("A", "Add Selected"), GUILayout.ExpandWidth(false), H_Option)) { AddSelected(c, UITableLayout.Arrangement.Vertical); changed = true; } if (GUILayout.Button("+", GUILayout.ExpandWidth(false), H_Option)) { #pragma warning disable 0618 table.AddColumn(c + 1, new UITableCell[table.rowCount]); #pragma warning restore 0618 changed = true; } GUI.enabled = c >= table.columnHeader; if (GUILayout.Button("-", GUILayout.ExpandWidth(false), H_Option)) { if (EditorUtility.DisplayDialog("Confirm", "Delete column " + (c + 1), "OK", "Cancel")) { #pragma warning disable 0618 table.RemoveColumn(c); #pragma warning restore 0618 table.Reposition(); changed = true; } } GUI.enabled = true; EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); } return(changed); }
public override void OnHeaderGUI(List<Object> found) { EditorGUIUtil.TextArea ("Exclude", ref exclude); EditorGUIUtil.Toggle("Exclude TexLoader", ref excludeTexLoader); EditorGUILayout.BeginHorizontal(); EditorGUIUtil.TextField(null, ref filter); if (GUILayout.Button("Search")) { SetExclude(exclude); Search(); } EditorGUILayout.EndHorizontal(); }
private void DrawExcludeListElement(Rect rect, int index, bool isActive, bool isFocused) { rect.y += 1; rect = EditorGUIUtil.DrawReorderableListIndex(rect, m_excludes, index); SerializedProperty m_exclude = m_excludes.GetArrayElementAtIndex(index); float width = Mathf.Min(200, rect.width); float residue = rect.width - width; EditorGUI.PropertyField(new Rect(rect.x, rect.y, width + residue - space, lineHeight), m_exclude, GUIContent.none); }
private bool DrawCell(int r, int c) { bool changed = false; UITableCell cell = table.GetCell(r, c); if (EditorGUIUtil.ObjectField <UITableCell>(ref cell, true, W_Option, GUILayout.Height(HEIGHT - 1))) { table.SetCell(r, c, cell); changed = true; } return(changed); }