protected void OnSelectNewSpouse(object sender, IndividualArgs e) { IndividualListDialog listDialog = new IndividualListDialog(); IndividualListModel listModel = new IndividualListModel(); if (sender is Gtk.Dialog) { listDialog.TransientFor = (Gtk.Window)sender; } else { listDialog.TransientFor = this; } listModel.Database = _database; listDialog.Title = "Select Spouse"; listDialog.List.ListModel = listModel; listDialog.Database = _database; listDialog.Record = e.Indi; listDialog.Modal = true; int response = listDialog.Run(); if (response == (int)Gtk.ResponseType.Apply) { e.Indi = listDialog.Record as GedcomIndividualRecord; } else if (response == (int)Gtk.ResponseType.Ok) { // Create new indi GedcomIndividualRecord indi = new GedcomIndividualRecord(_database); e.Indi = indi; } listDialog.Destroy(); }
protected void OnSpouseSelect(object sender, SpouseSelectArgs e) { IndividualListDialog listDialog = new IndividualListDialog(); SpouseListModel listModel = new SpouseListModel(); if (sender is Gtk.Dialog) { listDialog.TransientFor = (Gtk.Window)sender; } else { listDialog.TransientFor = this; } listModel.Database = _database; listModel.Record = e.Indi; listDialog.Title = "Select Spouse"; listDialog.List.ListModel = listModel; listDialog.Database = _database; listDialog.Record = e.Indi; listDialog.Modal = true; int response = listDialog.Run(); if (response == (int)Gtk.ResponseType.Apply) { if (listDialog.Record != e.Indi) { e.SelectedSpouse = listDialog.Record as GedcomIndividualRecord; e.Family = listModel.GetFamily(e.SelectedSpouse.XRefID); } } else if (response == (int)Gtk.ResponseType.Ok) { // Create new indi GedcomIndividualRecord indi = new GedcomIndividualRecord(_database); GedcomFamilyRecord fam = new GedcomFamilyRecord(_database, e.Indi, indi); e.SelectedSpouse = indi; e.Family = fam; } listDialog.Destroy(); }