public static MultiColumnHeaderState.Column[] CreateColumnHeaders()
    {
        LCLocalizationSettings settings = LocalizationManager.Instance.GetCurrentSettings();

        MultiColumnHeaderState.Column[] columns = new MultiColumnHeaderState.Column[settings.LanguagesCount + 1];

        int i = 0;

        columns[i++] = new MultiColumnHeaderState.Column()
        {
            headerContent         = new GUIContent("Key"),
            autoResize            = true,
            allowToggleVisibility = false,
            canSort = true,
        };

        foreach (Language language in settings.GetLanguages())
        {
            columns[i++] = new MultiColumnHeaderState.Column()
            {
                headerContent         = new GUIContent(language.Name),
                autoResize            = true,
                allowToggleVisibility = true,
                canSort = false,
            };
        }

        return(columns);
    }
    protected override void RowGUI(RowGUIArgs args)
    {
        SerializedProperty rowsProp       = GetRowsProp();
        SerializedProperty currentRowProp = rowsProp.GetArrayElementAtIndex(args.row);

        Rect keyRect = args.GetCellRect(args.GetColumn(0));

        EditorGUI.LabelField(new Rect(keyRect.x, keyRect.y, 10, keyRect.height), args.item.id.ToString());
        AddHorizontalPadding(ref keyRect, 2);
        AddHorizontalPadding(ref keyRect, 10, 0);
        CenterRectUsingSingleLineHeight(ref keyRect);
        SerializedProperty keyProp = GetLanguageRowKeyProp(currentRowProp);

        EditorGUI.DelayedTextField(keyRect, keyProp, GUIContent.none);

        LCLocalizationSettings settings = LocalizationManager.Instance.GetCurrentSettings();

        for (int i = 0; i < settings.LanguagesCount; ++i)
        {
            SerializedProperty languageItemsProp = GetLanguageItemsProp(currentRowProp);
            SerializedProperty textProp          = GetLanguageTextProp(languageItemsProp.GetArrayElementAtIndex(i));

            Rect textRect = args.GetCellRect(args.GetColumn(i + 1));
            AddHorizontalPadding(ref textRect, 2);
            CenterRectUsingSingleLineHeight(ref textRect);
            textProp.stringValue = EditorGUI.TextArea(textRect, textProp.stringValue);
        }
    }
Ejemplo n.º 3
0
 internal void SetSettingsInEditor(LCLocalizationSettings settings)
 {
     if (_core.GetSettings() != settings)
     {
         SetSettings(settings);
         EditorUtility.SetDirty(_core);
     }
 }
Ejemplo n.º 4
0
    internal LanguageDatatableItem GetLanguageText(Language language)
    {
        LCLocalizationSettings settings = LocalizationManager.Instance.GetCurrentSettings();
        int languageIndex = settings.GetLanguageIndex(language);

        if (languageIndex >= 0 && languageIndex < _languageItems.Count)
        {
            return(_languageItems[languageIndex]);
        }
        return(null);
    }
Ejemplo n.º 5
0
    public void SetSettings(LCLocalizationSettings settings)
    {
        if (_core.GetSettings() != settings)
        {
            _core.SetSettings(settings);

            if (OnSettingsChanged != null)
            {
                OnSettingsChanged.Invoke();
            }
        }
    }
    private void DrawUseSettingsButton()
    {
        LCLocalizationSettings settings = LocalizationManager.Instance.GetCurrentSettings();
        bool areSettingsAlreadyLoaded   = (settings == target);

        if (areSettingsAlreadyLoaded)
        {
            EditorGUILayout.LabelField("Theses settings are the currently loaded.");
        }
        else
        {
            using (new EditorGUILayout.HorizontalScope())
            {
                GUILayout.FlexibleSpace();
                if (GUILayout.Button(new GUIContent("Use these settings", "Load these settings in the LocalizationManager."), GUILayout.MaxWidth(200)))
                {
                    LocalizationManager.Instance.SetSettings(target as LCLocalizationSettings);
                }
            }
        }

        EditorGUI.EndDisabledGroup();
    }
    void AddNewLine()
    {
        SerializedProperty rowsProp = GetRowsProp();
        int newItemIndex            = rowsProp.arraySize;

        rowsProp.InsertArrayElementAtIndex(newItemIndex);
        SerializedProperty newRowProp = rowsProp.GetArrayElementAtIndex(newItemIndex);

        SerializedProperty newKeyProp = GetLanguageRowKeyProp(newRowProp);

        newKeyProp.stringValue = "None";

        SerializedProperty guidProp = GetGuidProp(newRowProp);

        GuidSPHelper.CreateAndAssignNewGuid(guidProp);

        LCLocalizationSettings settings          = LocalizationManager.Instance.GetCurrentSettings();
        SerializedProperty     languageItemsProp = GetLanguageItemsProp(newRowProp);

        languageItemsProp.arraySize = settings.LanguagesCount;

        _languageDatatableSo.ApplyModifiedProperties();
    }
Ejemplo n.º 8
0
 /// <summary>
 /// Use the LocalizationManager to set the settings
 /// </summary>
 internal void SetSettings(LCLocalizationSettings newSettings)
 {
     _settings = newSettings;
 }