void OnGUI() { Rect toolbarRect = EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); if (GUILayout.Button(new GUIContent("Clear All"), EditorStyles.toolbarButton)) { foreach (Graph g in displayedGraphs) { if (g != null) { g.Clear(); } } } GUI.enabled = (graphsRList.index < displayedGraphs.Count && graphsRList.index >= 0); if (GUILayout.Button(new GUIContent("Clear Selected"), EditorStyles.toolbarButton)) { if (displayedGraphs[graphsRList.index] != null) { displayedGraphs[graphsRList.index].Clear(); } } GUI.enabled = true; GUILayout.FlexibleSpace(); settings.autoAdjustX = GUILayout.Toggle(settings.autoAdjustX, new GUIContent("AutoX"), EditorStyles.toolbarButton, GUILayout.Width(40f)); settings.autoAdjustY = GUILayout.Toggle(settings.autoAdjustY, new GUIContent("AutoY"), EditorStyles.toolbarButton, GUILayout.Width(40f)); EditorGUILayout.Space(); if (GUILayout.Button(cogIcon ? new GUIContent(cogIcon, "Settings") : new GUIContent("...", "Settings"), EditorStyles.toolbarDropDown, GUILayout.Width(EditorGUIUtility.singleLineHeight * 2.0f), GUILayout.Height(EditorGUIUtility.singleLineHeight))) { Vector2 winSize = position.size; Rect dropDownRect = new Rect(winSize.x - 2.0f * EditorGUIUtility.singleLineHeight - EditorStyles.toolbar.padding.right, 2 * EditorGUIUtility.singleLineHeight - 1, winSize.x, -EditorGUIUtility.singleLineHeight); GetGenericMenu().DropDown(dropDownRect); } EditorGUILayout.EndHorizontal(); Rect areaRect = new Rect(0f, toolbarRect.height, position.width, position.height - toolbarRect.height);//TODO get rect from unity api? divisions.DoHorizontalSliders(areaRect); divisions.Resize(areaRect.width, DivisionSlider.ResizeMode.DistributeSpace); GraphListGUI(divisions.GetHorizontalLayoutRect(0, areaRect)); GraphDisplayGUI(divisions.GetHorizontalLayoutRect(1, areaRect)); }
private void GUIShowTableHead() { _areaWidht = 0; for (int i = 0; i < _divisionSlider.Count; i++) { _areaWidht += _excelConfig.ColumnsWidth[i]; } Rect areaRect = new Rect(55, 55, _areaWidht, 30); _rectList = new List <Rect>(_divisionSlider.HorizontalLayoutRects(areaRect)); GUILayout.BeginArea(new Rect(3, 50, position.width - 20, 50)); GUILayout.BeginScrollView(new Vector2(_tableScrollView.x, 0), GUIStyle.none, GUIStyle.none); GUILayout.BeginHorizontal(EditorGUIStyle.GroupBoxStyle, GUILayout.Width(_areaWidht), GUILayout.Height(30)); int index = 0; GUILayout.BeginHorizontal(EditorGUIStyle.GroupBoxStyle, GUILayout.Width(50), GUILayout.MaxHeight(30)); GUILayout.Space(2); GUILayout.BeginVertical(); GUILayout.Space(5); if (GUILayout.Button("R", EditorGUIStyle.TitleButtonStyle, GUILayout.Height(20), GUILayout.ExpandWidth(true))) { _searchValue = ""; SearchTableData.Hide(); GUI.FocusControl("GUIArea"); _isSort = false; List <string> tempList = _sortFieldDic.Keys.ToList(); foreach (string item in tempList) { _sortFieldDic[item] = 0; } } GUILayout.EndVertical(); GUILayout.Space(2); GUILayout.EndHorizontal(); for (index = 0; index < _tableConfig.FieldList.Count; index++) { GUILayout.BeginHorizontal(EditorGUIStyle.GroupBoxStyle, GUILayout.Width(_rectList[index].width), GUILayout.MaxHeight(30)); string fieldName = _tableConfig.FieldList[index].FieldName; if (!string.IsNullOrEmpty(_tableConfig.FieldList[index].Description)) { fieldName += "\r\n" + _tableConfig.FieldList[index].Description; } GUILayout.Space(5); GUILayout.BeginVertical(); GUILayout.Space(2); if (GUILayout.Button(fieldName, EditorGUIStyle.TitleButtonStyle, GUILayout.Height(25))) { _isSort = true; _dataList.Clear(); _dataList.AddRange(_serializeData.DataList); if (_isMouseInSearch) { GUI.FocusControl("GUIArea"); _isMouseInSearch = false; _searchValue = ""; } switch (fieldName) { case "Id": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Id).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Id).ToList(); } break; case "Str": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Str).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Str).ToList(); } break; case "Vec2": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Vec2).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Vec2).ToList(); } break; case "Quat": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Quat).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Quat).ToList(); } break; case "Obj": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Obj).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Obj).ToList(); } break; default: break; } List <string> tempList = _sortFieldDic.Keys.ToList(); foreach (string item in tempList) { if (item != fieldName) { _sortFieldDic[item] = 0; } } } _excelConfig.ColumnsWidth[index] = _rectList[index].width; GUILayout.EndVertical(); GUILayout.Space(5); GUILayout.EndHorizontal(); } for (; index < _excelConfig.ColumnsWidth.Count; index++) { GUILayout.BeginHorizontal(EditorGUIStyle.GroupBoxStyle, GUILayout.Width(_rectList[index].width), GUILayout.MaxHeight(30)); GUILayout.Space(5); GUILayout.BeginVertical(); GUILayout.Space(2); GUILayout.Label("", GUILayout.Height(25)); _excelConfig.ColumnsWidth[index] = _rectList[index].width; GUILayout.EndVertical(); GUILayout.Space(5); GUILayout.EndHorizontal(); } GUILayout.Space(30); GUILayout.EndHorizontal(); GUILayout.EndScrollView(); GUILayout.EndArea(); float f = 0; if (_areaWidht > position.width) { float diff = _areaWidht - position.width + 20; f = diff * Mathf.Clamp(_tableScrollView.x / diff, 0f, 1f); } _divisionSlider.DoHorizontalSliders(areaRect, _tableConfig.FieldList.Count, f); _divisionSlider.Resize(areaRect.width, DivisionSlider.ResizeMode.PrioritizeOuter); }
private void GUIShowTableHead() { _areaWidht = 0; for (int i = 0; i < _divisionSlider.Count; i++) { _areaWidht += _excelConfig.ColumnsWidth[i]; } Rect areaRect = new Rect(35, 55, _areaWidht, 30); rectList = new List <Rect>(_divisionSlider.HorizontalLayoutRects(areaRect)); GUILayout.BeginArea(new Rect(3, 50, position.width - 20, 50)); GUILayout.BeginScrollView(new Vector2(_tableScrollView.x, 0), GUIStyle.none, GUIStyle.none); GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(), GUILayout.Width(_areaWidht), GUILayout.Height(30)); int index = 0; GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(), GUILayout.Width(30), GUILayout.MaxHeight(30)); GUILayout.Space(2); GUILayout.BeginVertical(); GUILayout.Space(5); if (GUILayout.Button("R", EditorGUIStyle.GetTitleButton, GUILayout.Height(20), GUILayout.ExpandWidth(true))) { for (int i = 0; i < _excelConfig.ColumnsWidth.Count; i++) { _divisionSlider.SetSize(i, TableDatabaseUtils.TableConfigSerializeData.Setting.ColumnWidth); _excelConfig.ColumnsWidth[i] = TableDatabaseUtils.TableConfigSerializeData.Setting.ColumnWidth; } } GUILayout.EndVertical(); GUILayout.Space(2); GUILayout.EndHorizontal(); for (index = 0; index < _tableConfig.FieldList.Count; index++) { GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(), GUILayout.Width(rectList[index].width), GUILayout.MaxHeight(30)); string name = string.IsNullOrEmpty(_tableConfig.FieldList[index].ShowName) ? _tableConfig.FieldList[index].Name : _tableConfig.FieldList[index].ShowName; GUILayout.Space(5); GUILayout.BeginVertical(); GUILayout.Space(5); if (GUILayout.Button(name, EditorGUIStyle.GetTitleButton, GUILayout.Height(20))) { _dataList.Clear(); _dataList.AddRange(_serializeData.DataList.OrderBy(a => a.T2)); _isSort = true; } _excelConfig.ColumnsWidth[index] = rectList[index].width; GUILayout.EndVertical(); GUILayout.Space(5); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(), GUILayout.Width(rectList[index].width), GUILayout.MaxHeight(30)); GUILayout.Space(5); GUILayout.BeginVertical(); GUILayout.Space(5); GUILayout.Button("", EditorGUIStyle.GetTitleButton, GUILayout.Height(20)); GUILayout.Space(5); GUILayout.EndVertical(); GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.EndScrollView(); GUILayout.EndArea(); float f = 0; if (_areaWidht > position.width) { float diff = _areaWidht - position.width + 20; f = diff * Mathf.Clamp(_tableScrollView.x / diff, 0f, 1f); } _divisionSlider.DoHorizontalSliders(areaRect, f); _divisionSlider.Resize(areaRect.width, DivisionSlider.ResizeMode.PrioritizeOuter); }
void OnGUI() { // Rect areaRect = new Rect(0f, 0f, position.width, 60f); // Rect divisionRect = areaRect; // foreach(float size in divisions){ // divisionRect.width = size; // GUILayout.BeginArea(divisionRect, EditorStyles.helpBox); // GUILayout.Button("Size"); // if (GUILayout.Button(size.ToString())) { Debug.Log("Size: "+size); } // GUILayout.EndArea(); // divisionRect.x+=divisionRect.width; // } // divisions.DoHorizontalSlider(areaRect); // GUILayoutUtility.GetRect(position.width, 60f); Rect areaRect = new Rect(10f, 0f, position.width - 20f, 60f); foreach (Rect rect in divisions.HorizontalLayoutRects(areaRect)) { GUILayout.BeginArea(rect, EditorStyles.helpBox); GUILayout.Button("Rect"); if (GUILayout.Button(rect.ToString())) { Debug.Log("Size: " + rect); } GUILayout.EndArea(); } divisions.DoHorizontalSliders(areaRect); // if (Event.current.type == EventType.Layout) { divisions.Resize(areaRect.width, resizeMode); // } areaRect = GUILayoutUtility.GetRect(position.width, 60f); if (GUILayout.Button("Offsets")) { int i = 0; foreach (float offset in divisions) { Debug.Log("Size " + i + ": " + offset + " (" + divisions[i++] + ")"); } Debug.Log(divisions); } if (GUILayout.Button("Rects")) { int i = 0; foreach (Rect rect in divisions.HorizontalLayoutRects(areaRect)) { Debug.Log("Rect " + (i++) + ": " + rect); } } divisions.pushDivisions = EditorGUILayout.ToggleLeft("Push Divisions", divisions.pushDivisions); resizeMode = (DivisionSlider.ResizeMode)EditorGUILayout.EnumPopup("Resize mode", resizeMode); EditorGUILayout.Space(); Rect extraRect = GUILayoutUtility.GetRect(position.width, 60f); // GUI.enabled = false; sliderValue1 = DivisionSlider.HorizontalSlider(extraRect, sliderValue1, 8f, EditorStyles.miniButton); sliderValue2 = DivisionSlider.HorizontalSlider(extraRect, sliderValue2, 8f, EditorStyles.miniButton); EditorGUILayout.LabelField("Values: " + sliderValue1 + ", " + sliderValue2 + " HotControl: " + GUIUtility.hotControl); }