#include <Xm/Xm.h>
#include <Xm/List.h>
#include <stdio.h>

Widget toplevel, shell, list;

static void PrintSelection()
{
	int	count, *sel, i;

	(void) XmListGetSelectedPos(list, &sel, &count);
	fprintf(stderr, "Selection (count %d) :", count);
	for (i=0; i<count; i++)
		fprintf(stderr, " %d ", sel[i]);
	fprintf(stderr, "\n");
	XtFree((void*)sel);
}

int
main(int argc, char **argv)
{
  Dimension height;
  Position y;

  XtAppContext app;

  XmString items[3], items2[3];

  toplevel = XtVaAppInitialize(&app, "Text", NULL, 0, &argc, argv, NULL, NULL);

  XtVaSetValues(toplevel, XmNwidth, 200, XmNheight, 200, NULL);

  list = XtVaCreateManagedWidget("one", 
				 xmListWidgetClass,
				 toplevel,
				 XmNselectionPolicy, XmSINGLE_SELECT,
				 NULL);

  items[0] = XmStringCreateLocalized("a");
  items[1] = XmStringCreateLocalized("b");
  items[2] = XmStringCreateLocalized("c");
  XtVaSetValues(list, XmNitems, items, XmNitemCount, 3, NULL);
  XmListSelectPos(list, 2, False);

  PrintSelection();
  items2[0] = XmStringCreateLocalized("c");
  items2[1] = XmStringCreateLocalized("a");
  items2[2] = XmStringCreateLocalized("b");
  XtVaSetValues(list, XmNitems, items2, XmNitemCount, 3, NULL);
  PrintSelection();
  XtRealizeWidget(toplevel);

  XtAppMainLoop(app);
}
