public static void Draw(EchoUILogHandler logHandler, ref int selectedIndex) { if (logHandler == null) { return; } var filters = logHandler.GetFilterList(); int i = 0; while (i < filters.Count) { var filter = filters[i]; if (filter == null) { filters.RemoveAt(i); if (i <= selectedIndex) { selectedIndex--; } } else { Rect box = EditorGUILayout.BeginHorizontal(); { bool isSelected = i == selectedIndex; Color backColor = isSelected ? Color.green : Color.white; using (new GUIBackgroundColorScope(backColor)) { bool click = GUI.Button(box, GUIContent.none, "Box"); if (click) { selectedIndex = i; } GUILayout.Box(filter.Name, GUILayout.ExpandWidth(true)); if (GUILayout.Button("Edit", GUILayout.Width(50))) { AddFliterWindow.Edit(filter); } if (GUILayout.Button("Save", GUILayout.Width(50))) { } if (GUILayout.Button("X", GUILayout.Width(25))) { filters[i] = null; } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); i++; } } } } }
private void _DrawLeftGroupView() { // left EditorGUILayout.BeginVertical(GUILayout.ExpandWidth(true)); // Header EditorGUILayout.BeginHorizontal(GUILayout.Height(_headerHeight)); GUILayout.Label("Fliter List:"); GUILayout.FlexibleSpace(); if (GUILayout.Button("Load Fliter")) { } if (GUILayout.Button("Add Fliter")) { AddFliterWindow.Open((filter) => { _logHandler.GetFilterList().Add(filter); }); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); // scroll view _filterListScrollViewPosition = GUILayout.BeginScrollView(_filterListScrollViewPosition, EditorStyles.helpBox, GUILayout.ExpandHeight(true)); FilterListView.Draw(_logHandler, ref _currentSelectedFilterIndex); // scroll view end EditorGUILayout.EndScrollView(); // left end EditorGUILayout.EndVertical(); }