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));
        }
Esempio n. 2
0
    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);
    }
Esempio n. 4
0
    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);
    }