public void Load(bool reWrite = true) { List <LanPair> tmpPairs = new List <LanPair>(); lanPairLoaders.ForEach((loader) => { List <LanPair> result = loader.Invoke(); if (result != null && result.Count > 0) { tmpPairs.AddRange(result); } }); tmpPairs.ForEach((tmpPair) => { LanPair pair = lanPairs.Find((p) => { return(p.Lan == tmpPair.Lan && p.key == tmpPair.key); }); if (pair != null && reWrite && pair.Value != tmpPair.Value) { pair.Value = tmpPair.Value; } else { lanPairs.Add(tmpPair); } }); tmpPairs.Clear(); Fresh(); }
private string GetValueInPairs() { LanPair pair = Pairs.Find(p => { return(p.Lan == CurLan); }); if (pair == null) { pair = Pairs.Find(p => { return(p.Lan == Fallback); }); } return(pair == null ? string.Empty : pair.Value); }
public void Load(Func <List <LanPair> > loader, bool reWrite = true) { List <LanPair> tmpPairs = loader.Invoke(); tmpPairs.ForEach((tmpPair) => { LanPair pair = lanPairs.Find((p) => { return(p.Lan == tmpPair.Lan && p.key == tmpPair.key); }); if (pair != null && reWrite && pair.Value != tmpPair.Value) { pair.Value = tmpPair.Value; } else { lanPairs.Add(tmpPair); } }); tmpPairs.Clear(); Fresh(); }
public void DeleteLanPair(LanPair pair) { lanPairs.Remove(pair); }
private void AddLanPairFunc() { if (window.lanKeys.Count == 0) { return; } Rect rect; this.EBeginHorizontal(out rect, Styles.Fold) .Foldout(ref createLanPairFlodon, "Create LanPair", true) .EEndHorizontal() .Pan(() => { if (!createLanPairFlodon) { return; } if (tmpLanPair == null) { tmpLanPair = new LanPair() { key = window.lanKeys[0] } } ; if (hashID == 0) { hashID = "CreateView".GetHashCode(); } this.DrawVertical(() => { this.BeginHorizontal() .Label("Lan", GUILayout.Width(describeWidth)) .Pan(() => { tmpLanPair.Lan = (SystemLanguage)EditorGUILayout.EnumPopup(tmpLanPair.Lan); }) .EndHorizontal() .BeginHorizontal() .Label("Key", GUILayout.Width(describeWidth)) .Label(tmpLanPair.key) .Label(EditorGUIUtility.IconContent("editicon.sml"), GUILayout.Width(smallBtnSize)) .EndHorizontal() .Pan(() => { Rect pos = GUILayoutUtility.GetLastRect(); int ctrlId = GUIUtility.GetControlID(hashID, FocusType.Keyboard, pos); { if (DropdownButton(ctrlId, pos, new GUIContent(string.Format("Key: {0}", tmpLanPair.key)))) { int index = -1; for (int i = 0; i < window.lanKeys.Count; i++) { if (window.lanKeys[i] == tmpLanPair.key) { index = i; break; } } SearchablePopup.Show(pos, window.lanKeys.ToArray(), index, (i, str) => { tmpLanPair.key = str; window.Repaint(); }); } } }) .BeginHorizontal() .Label("Val", GUILayout.Width(describeWidth)) .TextField(ref tmpLanPair.Value) .EndHorizontal() .BeginHorizontal() .FlexibleSpace() .Button(() => { //createLanPairFlodon = false; window.AddLanPair(tmpLanPair); //tmpLanPair = null; }, Contents.OK) .EndHorizontal(); }, Styles.BG); }); }