/*================================== * prompt_add_child -- Add child to family * (with user interaction) * child: [in] new child to add * fam: [in] family to which to add *================================*/ NODE prompt_add_child (NODE child, NODE fam, RFMT rfmt) { INT i; if (readonly) { message(_(qSronlye)); return NULL; } /* Identify child if caller did not */ if (!child) child = nztop(ask_for_indi(_(qSidchld), DOASK1)); if (!child) return NULL; /* Warn if child to add is already in some family */ if (FAMC(child)) { if (!ask_yes_or_no(_(qSiscinf))) return NULL; } /* Identify family if caller did not */ if (!fam) fam = nztop(ask_for_fam(_(qSidprnt), _(qSidsbln))); if (!fam) return NULL; i = ask_child_order(fam, ALWAYS_PROMPT, rfmt); if (i == -1) return NULL; /* Add FAMC node to child */ add_child_to_fam(child, fam, i); msg_status(_(qSgdcadd), indi_to_name(child, 35)); return fam; }
/*===================================================== * ask_for_fam_by_key -- Ask user to identify family by * key (or REFN) * (if they enter nothing, it will fall thru to ask_for_fam) * fttl: [IN] title for prompt * pttl: [IN] title for prompt to identify spouse * sttl: [IN] title for prompt to identify sibling *========================================================*/ RECORD ask_for_fam_by_key (STRING fttl, STRING pttl, STRING sttl) { RECORD fam = ask_for_record(fttl, 'F'); return fam ? fam : ask_for_fam(pttl, sttl); }