/*$$DA	is the data widget.
	 -TRM flag is for var
				width fields with a terminator
				character.
	 +RD	refreshes the data.
	 +UD	updates the val when you edit it.

	 -P 	Means it is a string var, basically.

	 ,32	sets the tag string width.
				See $LK,"Data Tag Width",A="FA:::/Zenith/DolDoc/DocPlain.CC,DataTagWidth"$.

	 ,RT=I16 means the val is 2 bytes.
				See $LK,"DocDataFormat",A="MN:DocDataFormat"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
*/

I16 i = 0;
U8  buf[8];

U0 UpdateGlobalTask(I64)
{
	while (TRUE)
	{
		i++;
		Sleep(1);
	}
}

U0 DataDemo()
{
	CDocEntry *doc_e;

	//This is the command line document.
	CDoc *doc = DocPut;

	//We do this to prevent access to
	//doc_e->data before it is set.
	Bool unlock = DocLock(doc);

	//You might set the $LK,"DOCF_FORM",A="MN:DOCF_FORM"$ flag.
	//	doc->flags|=DOCF_FORM
	//if you wish.

	Spawn(&UpdateGlobalTask, NULL, "Update Global",, Fs);

	"Enter editor overstrike mode\n"
	"and you can modify the val.\n"
	"However, changes happen immediately,\n"
	"so it's tricky.\n\n";

	//Use <CTRL-l> for the $$DA...$$ format.
	doc_e = DocPrint(doc, "$$DA-TRM+RD+UD,RT=I16,A=\"%%7d\"$$\n");
	doc_e->data=&i;

	StrCopy(buf, "Terry");
	doc_e = DocPrint(doc, "$$DA-P+RD+UD,LEN=7,A=\"Str:%%s\"$$\n");
	doc_e->data = buf;

	if (unlock)
		DocUnlock(doc);
}

DataDemo;

//See $LK,"PopUpExtents",A="MN:PopUpExtents"$().
