public override int OnEditorWindow(Rect rect, HorizontalCallback horizontal, VerticalCallback vertical, Dictionary <string, object> cache) { if (optionsEditor == null) { optionsEditor = new ReorderableList(Options, typeof(string), true, true, true, true); optionsEditor.drawHeaderCallback = r => { EditorGUI.LabelField(r, "Options"); if (GUI.Button(new Rect(r.x + r.width - 30, r.y, 30, EditorGUIUtility.singleLineHeight), (Texture2D)EditorGUIUtility.Load("icons/SettingsIcon.png"), EditorStyles.toolbarButton)) { var menu = new GenericMenu(); menu.AddItem(new GUIContent("Copy"), false, () => cache["options"] = Options); if (cache.ContainsKey("options")) { menu.AddItem(new GUIContent("Paste"), false, () => { optionsEditor.list = Options = ((List <string>)cache["options"]).ToList(); }); menu.AddItem(new GUIContent("Paste (linked)"), false, () => { optionsEditor.list = Options = (List <string>)cache["options"]; }); } menu.AddItem(new GUIContent("Unlink"), false, () => optionsEditor.list = Options = Options.ToList()); menu.ShowAsContext(); } }; optionsEditor.onAddCallback = x => x.list.Add(string.Empty); optionsEditor.drawElementCallback = (r, i, a, f) => optionsEditor.list[i] = EditorGUI.TextField(new Rect(r.x, r.y, r.width, EditorGUIUtility.singleLineHeight), (string)optionsEditor.list[i]); } vertical(rect, 1, (r) => Value = EditorGUI.Popup(r, "Selected", Value, Options.ToArray()), (r) => optionsEditor.DoList(r)); return(optionsEditor.count + 3); }
public override int OnEditorWindow(Rect rect, HorizontalCallback horizontal, VerticalCallback vertical, Dictionary <string, object> cache) { if (Value == null) { Value = Tuple <float, float> .Make(0, 100); } horizontal(rect, "Value", (r) => Value.First = EditorGUI.FloatField(r, "First", Value.First), (r) => Value.Second = EditorGUI.FloatField(r, "Second", Value.Second)); return(1); }
public override int OnEditorWindow(Rect rect, HorizontalCallback horizontal, VerticalCallback vertical, Dictionary <string, object> cache) { vertical(rect, 1, (line) => horizontal(line, null, (r) => Value = EditorGUI.Slider(r, "Value", Value, Min, Max)), (line) => horizontal(line, "Range", (r) => Min = EditorGUI.FloatField(r, "Min", Min), (r) => Max = EditorGUI.FloatField(r, "Max", Max)) ); return(2); }
public override int OnEditorWindow(Rect rect, HorizontalCallback horizontal, VerticalCallback vertical, Dictionary <string, object> cache) { if (Value == null) { Value = DaggerfallWorkshop.Utility.Tuple <int, int> .Make(0, 100); } horizontal(rect, "Value", (r) => Value.First = EditorGUI.IntField(r, "First", Value.First), (r) => Value.Second = EditorGUI.IntField(r, "Second", Value.Second)); return(1); }
public override int OnEditorWindow(Rect rect, HorizontalCallback horizontal, VerticalCallback vertical, Dictionary <string, object> cache) { vertical(rect, 1, (r) => Value = EditorGUI.ColorField(r, "Color", Value)); return(1); }
public override int OnEditorWindow(Rect rect, HorizontalCallback horizontal, VerticalCallback vertical, Dictionary <string, object> cache) { vertical(rect, 3, (r => Value = EditorGUI.TextArea(r, Value))); return(3); }
public override int OnEditorWindow(Rect rect, HorizontalCallback horizontal, VerticalCallback vertical, Dictionary <string, object> cache) { horizontal(rect, null, (r) => Value = EditorGUI.Toggle(r, "Checked", Value)); return(1); }
/// <summary> /// Draws a control on editor window. Returns number of lines. /// </summary> public abstract int OnEditorWindow(Rect rect, HorizontalCallback horizontal, VerticalCallback vertical, Dictionary <string, object> cache);