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; }