void OnGUI() { EditorGUI.BeginChangeCheck(); _dirListEditor.DoLayoutList(); if (EditorGUI.EndChangeCheck()) { } GUILayout.BeginHorizontal(); if (GUILayout.Button("Edit")) { StartEdit(); } EditorGUI.BeginDisabledGroup(!_editing); if (GUILayout.Button("Save")) { QuickCaptureEditorSetting.ClearDirChoices(); foreach (var dir in _dirChoices) { QuickCaptureEditorSetting.AddDirChoice(dir); } QuickCaptureEditorSetting.Save(); EndEdit(); } EditorGUI.EndDisabledGroup(); GUILayout.EndHorizontal(); if (GUILayout.Button("Capture it!", GUILayout.Height(100))) { Take(); } }
void OnEnable() { _instance = this; _dirChoices = new List <string>(QuickCaptureEditorSetting.dirChoices); _dirListEditor = new ReorderableList(_dirChoices, typeof(string)); _dirListEditor.onAddCallback = (ReorderableList list) => { _dirChoices.Add(""); }; _dirListEditor.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => { if (isActive && _editing) { _dirChoices[index] = EditorGUI.TextField(rect, _dirChoices[index]); } else { EditorGUI.LabelField(rect, _dirChoices[index]); } }; _dirListEditor.onSelectCallback = (ReorderableList list) => { QuickCaptureEditorSetting.selectedDirIndex = list.index; QuickCaptureEditorSetting.Save(); }; _dirListEditor.drawHeaderCallback = (Rect rect) => { GUI.Label(rect, "OutputDirs"); }; _dirListEditor.index = QuickCaptureEditorSetting.selectedDirIndex; EndEdit(); }