示例#1
0
        public ProfileWindow(
            string profileId,
            ProfileData profileData,
            CachedPrefixInfo[] prefixes,
            Action <string, ProfileData> doSave)
            : this(new Builder("ProfileWindow.glade"))
        {
            _prefixes = prefixes;
            _doSave   = doSave;

            _entryName.Text = profileId;

            foreach (var prefixName in prefixes.Select(p => p.About))
            {
                _comboPrefixes.AppendText(prefixName);
            }

            _toggleCheckVersion.Active = profileData.CheckVersionFiles;

            _comboPrefixes.Changed += UpdateVersionsCombo;
            _buttonSave.Clicked    += OnSaveClicked;

            var index = prefixes.ToList().FindIndex(p => p.Id == profileData.FullVersion.Prefix);

            if (index >= 0 && index < _prefixes.Length)
            {
                _comboPrefixes.Active = index;
                _comboVersions.Active = Array.IndexOf(prefixes[index].Versions, profileData.FullVersion.Version);
            }

            _buttonJavaPath.SelectFilename(profileData.CustomJavaPath);
            _entryJavaArgs.Text = profileData.CustomJavaArgs;

            _toggleJavaPath.Active    = profileData.UseCustomJavaPath;
            _buttonJavaPath.Sensitive = profileData.UseCustomJavaPath;

            _toggleJavaArgs.Active   = profileData.UseCustomJavaArgs;
            _entryJavaArgs.Sensitive = profileData.UseCustomJavaArgs;

            _toggleJavaPath.Toggled += (s, a) => _buttonJavaPath.Sensitive = _toggleJavaPath.Active;
            _toggleJavaArgs.Toggled += (s, a) => _entryJavaArgs.Sensitive = _toggleJavaArgs.Active;
        }