From: Robert Brinson [mailto:[EMAIL PROTECTED]]
> However, I was not seeing a scrollbar. There was a downward
> pointing arrow below the list on the right hand side that did
> nothing when tapped.

Lists don't have full size scroll bars, but rather have only two little
arrow buttons in the corners as you are seeing.

> At first, I thought scrolling simply wasn't working. However, when I
> tapped on an item and dragged down, my list started scrolling down

Also verify it scrolls when you press the hard scroll buttons on the device
(or PgUp and PgDn in the emulator) if this is a pop-up list.  Or if it's an
always-visible list in your form, consider adding support for handling the
scroll button events explicitly to scroll the list.  Nice UI touch.

> it appears the positioning of the scroll [arrows] is shifted [...]
> vertically down by about one row.

That's bad, must be something wrong in your code...

> void DrawOneString(Int16 itemNum, RectangleType * bounds,
>                    Char** itemsText)
> {
>     /* drawing code omitted here... */
>     bounds->topLeft.y += 12;
>     bounds->topLeft.x = 12;
> }

Aha, what's this?  This changes the value of bounds, which is an
in-parameter to your draw callback, not an in-out parameter.  You should
*not* do this.  The bounds parameter exists just to inform your code what
the bounds of the currently-drawing item are, so you know where to draw and
don't try to draw outside.  Changing it in your callback has no benefit for
your callback, and unfortunately has the side effect of screwing up the list
itself, yielding bad behavior later on.

Strictly speaking, your code gets away with this only due to a bug in the
API definition.  That parameter should be a (const RectangleType *) not a
non-const (RectangleType *).  Just one of the Palm API's little oopsies.

-slj-


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to