#include	<Xm/TextF.h>

void activateCB(Widget w, XtPointer c, XmAnyCallbackStruct *s);

XtAppContext app;
Widget top, text1;

int
main(int ac, char *av[])
{
    top = XtAppInitialize(&app, "Sample",
		    NULL, 0, &ac, av, NULL, NULL, 0);
    text1 = XmCreateTextField(top, "text1", NULL, 0);
    XtManageChild(text1);

    XtAddCallback(text1, XmNactivateCallback,
		  (XtCallbackProc)activateCB, NULL);

    XtRealizeWidget(top);
    XtAppMainLoop(app);
}

void FlushText(void);
Time timestamp;

void
activateCB(Widget w, XtPointer c, XmAnyCallbackStruct *s)
{
    timestamp = s->event->xbutton.time;
    XtAppAddTimeOut(app, 0, (XtTimerCallbackProc)FlushText, NULL);
}

void
FlushText(void)
{
    static int count = 0;

    if (count % 2) {
	XmTextFieldSetSelection(text1, 8, 8, timestamp);
    } else {
	XmTextFieldSetSelection(text1, 4, 8, timestamp);
    }
    if (count == 6) {
	count = 0;
	return;
    }
    count++;
    XtAppAddTimeOut(app, 20, (XtTimerCallbackProc)FlushText, NULL);
}
