/// <summary> /// Draw the player prefs entries /// </summary> private void DrawKeyEntries() { var normalbackgroundColor = GUI.backgroundColor; EditorGUILayout.BeginHorizontal(); _scrollPositionKeys = EditorGUILayout.BeginScrollView(_scrollPositionKeys, GUILayout.Width(_leftPanelWidth), GUILayout.MinWidth(100)); var keys = LocaliseText.Localisations.Keys.ToList(); keys.Sort(); for (var i = 0; i < keys.Count; i++) { var k = keys[i]; var s = new GUIStyle(); s.normal.background = MakeColoredTexture(1, 1, new Color(1.0f, 1.0f, 1.0f, 0.1f)); GUI.backgroundColor = SelectedKeyIndex == i ? Color.blue : normalbackgroundColor; GUILayout.BeginHorizontal(s); GUILayout.Label(k, GUILayout.ExpandWidth(true)); GUILayout.EndHorizontal(); if (Event.current.button == 0 && Event.current.type == EventType.MouseUp) { if (GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition)) { SelectedKeyIndex = i; ClearFocus(); Repaint(); } // Handle events here } } GUI.backgroundColor = normalbackgroundColor; EditorGUILayout.EndScrollView(); var lastrect = GUILayoutUtility.GetLastRect(); lastrect.x = lastrect.xMax + 5; lastrect.width = 3; GUILayout.Space(5); HandleResize(lastrect); GUILayout.Space(5); //var drawnLines = 0; _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition, GUILayout.Width(position.width - _leftPanelWidth)); LocaliseText.LoadDictionary(); var key = LocaliseText.Localisations.Keys.ToList()[SelectedKeyIndex]; //var boldGUIStyle = new GUIStyle(EditorStyles.numberField); //boldGUIStyle.fontStyle = FontStyle.Bold; for (var i = 0; i < LocaliseText.Languages.Length; i++) { var languageEntry = LocaliseText.Languages[i]; string stringValue = LocaliseText.Get(key, languageEntry); float num = EditorStyles.textArea.CalcHeight(new GUIContent(stringValue), EditorGUIUtility.currentViewWidth); int num2 = Mathf.CeilToInt(num / 13f); num2 = Mathf.Clamp(num2, 1, int.MaxValue); var height = 32f + (float)((num2 - 1) * 13); //Debug.Log(num2 + ", " + height); EditorGUILayout.LabelField(languageEntry, EditorStyles.boldLabel); EditorGUI.BeginChangeCheck(); stringValue = EditorGUILayout.TextArea(LocaliseText.Get(key, languageEntry), EditorStyles.textArea, GUILayout.MaxWidth(EditorGUIUtility.currentViewWidth), GUILayout.MinHeight(height), GUILayout.MaxHeight(height)); if (EditorGUI.EndChangeCheck()) { LocaliseText.Localisations[key][i] = stringValue; } } EditorGUILayout.EndScrollView(); EditorGUILayout.EndHorizontal(); }