morreale@bierstadt.scd.ucar.edu (Peter Morreale) (11/21/90)
I have a problem with a list/viewport widget combination.
It seems that whenever I update the list widget's "list", the viewport
shrinks to the size of the list widget. (as documented).
My problem is that I *always* want the viewport widget to be a certain
height.
How do I accomplish this?
Note that I am also unmanaging the list, updating the list, and then
re-managing again so that the scrollbars on the viewport will get
updated.
I probably need a different strategy for handling the viewport, but am
clueless as to what I need to do.
Thanks for any pointers,
-PWM
Here's the function which updates the list....
char *p[101] = { NULL };
/* -------------------------------------------------------------------- */
ReadCurrentSubject()
{
register FILE *fp;
register int i;
char text[20];
struct index current_indx;
Arg arg[1];
Dimension height;
/*
* First free the space used by the last list
*/
for (i = 0; p[i]; ++i)
free(p[i]);
/*
* Open the current index file and start reading the
* entries.
*/
fp = open_indxfl(current_subject, "rb");
for (i = 0; i < numrec; ++i) {
fread(¤t_indx, sizeof(struct index), 1, fp);
strcpy ((p[i] = (char *) malloc(LISTCHARS)), current_indx.list_str);
}
fclose(fp);
p[i] = NULL; /* last entry should always be null */
/*
* Unmanage the List so that the scrollbars will get updated
*
* Sumpthin's very wrong here, Try to force the height of
* the viewport *after* we get outta this....
*/
XtUnmanageChild(List);
XawListChange(List, p, numrec, 0, False);
XtManageChild(List);
} /* END READCURRENTSUBJECT */
--
------------------------------------------------------------------
Peter W. Morreale email: morreale@ncar.ucar.edu
Nat'l Center for Atmos Research voice: (303) 497-1293
Scientific Computing Division