예제 #1
0
파일: add.c 프로젝트: MarcNo/lifelines
/*==================================
 * 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;
}
예제 #2
0
/*=====================================================
 * 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);
}