protected virtual void RenderExtensionButton(T item) { if (current_windowType == WindowType.CALLBACK) { if (GUILayout.Button(Language.Select, new GUILayoutOption[] { GUILayout.Width(80) })) { SelctList.Add(item.ID); select_callback(current_list, item); ShowNotification(new GUIContent(string.Format(Language.SuccessAdd, item.NickName))); } } if (current_windowType != WindowType.CALLBACK) { if (GUILayout.Button(Language.Copy, GUI.skin.GetStyle("ButtonLeft"), new GUILayoutOption[] { GUILayout.Width(19) })) { PasteItem = Utility.DeepClone(item); } if (GUILayout.Button(Language.Delete, GUI.skin.GetStyle("ButtonMid"), new GUILayoutOption[] { GUILayout.Width(19) })) { deleteList.Add(item.ID); ShowNotification(new GUIContent(Language.Success)); } if (GUILayout.Button(Language.Paste, GUI.skin.GetStyle("ButtonRight"), new GUILayoutOption[] { GUILayout.Width(19) })) { if (PasteItem != null) { config_current.ConfigList.Remove(item); PasteItem.ID = item.ID; config_current.ConfigList.Add(Utility.DeepClone <T>(PasteItem)); } } } }
public void OnGUI() { if (Event.current.isKey && Event.current.keyCode == KeyCode.Escape) { Close(); return; } if (!initialized) { Initialize(); if (current_windowType == WindowType.CALLBACK) { SelctList = new List <int>(); //init select display } } if (!FirstLoadFlag) { FirstLoadFlag = true; Reload(); } EditorGUILayout.Space(); GUILayout.BeginHorizontal(GUI.skin.GetStyle("GroupBox")); if (GUILayout.Button("Refresh", GUI.skin.GetStyle("ButtonLeft"), new GUILayoutOption[] { GUILayout.Height(30) })) { Reload(); } if (!configSetting.Setting.DisableCreate && current_windowType != WindowType.CALLBACK) { NewLineButton(); } if (!configSetting.Setting.DisableSave && current_windowType != WindowType.CALLBACK) { SaveButton(); } GUILayout.EndHorizontal(); if (!configSetting.Setting.DisableSearch) { SearchField(); } GUILayout.BeginScrollView(new Vector2(posv.x, 0), false, false, GUIStyle.none, GUIStyle.none, new GUILayoutOption[] { GUILayout.Height(45) }); GUILayout.BeginHorizontal(GUI.skin.GetStyle("GroupBox")); GUILayout.Space(20); //TODO Set Order foreach (var item in Chache) { if (GUILayout.Button(item.config_editor_setting.Display == "" ? item.field_info.Name : item.config_editor_setting.Display, GUI.skin.GetStyle("WhiteLabel"), GUILayout.Width(item.config_editor_setting.Width))) { HeadButton_Click(item.field_info.Name); } GUILayout.Space(20); } if (current_windowType != WindowType.CALLBACK) { EditorGUILayout.LabelField(new GUIContent(Language.Operation), GUILayout.Width(80)); } if (current_windowType == WindowType.CALLBACK) { EditorGUILayout.LabelField(new GUIContent(Language.Select), GUILayout.Width(80)); } GUILayout.EndHorizontal(); GUILayout.EndScrollView(); GUILayout.BeginHorizontal(GUI.skin.GetStyle("GroupBox")); posv = GUILayout.BeginScrollView(posv, true, false, GUI.skin.GetStyle("horizontalScrollbar"), GUIStyle.none, GUI.skin.GetStyle("GroupBox")); GUILayout.BeginVertical(); if (!string.IsNullOrEmpty(SearchResourceName)) { ItemMaxCount = config_current.ConfigList.Count(x => x.NickName.ToLower().Contains(SearchResourceName.ToLower().Trim())); Finallylist = config_current.ConfigList.Where(x => x.NickName.ToLower().Contains(SearchResourceName.ToLower().Trim())).Skip(PageIndex * PageAmount).Take(PageAmount).ToList(); } else { ItemMaxCount = config_current.ConfigList.Count; Finallylist = config_current.ConfigList.Skip(PageIndex * PageAmount).Take(PageAmount).ToList(); } //foreach (var item in Finallylist) for (int i = 0; i < Finallylist.Count; i++) { T item = Finallylist[i]; if (deleteList.Contains(item.ID)) { continue; } //Select effect diaplay if (current_windowType == WindowType.CALLBACK && SelctList.Contains(item.ID)) { GUI.backgroundColor = Color.green; } else { GUI.backgroundColor = Color.white; } GUILayout.BeginHorizontal(GUI.skin.GetStyle("GroupBox")); foreach (var schema in Chache) { var rawData = schema.field_info.GetValue(item); RenderRawLine(schema, rawData, item); GUILayout.Space(20); } RenderExtensionButton(item); GUILayout.Space(20); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); GUILayout.EndScrollView(); GUILayout.EndHorizontal(); Page(); GUILayout.BeginHorizontal(); GUILayout.Label(Language.Contract); GUILayout.EndHorizontal(); }