>for anyone who might be interested...
>If you call WinEraseRectangleFrame(rectangleFrame,&(pListPtr->bounds));
>after each time the list is drawn, the list's frame doesn't display

That'll probably work fine, as long as the background color is set
correctly.  But, that could well have ugly results if the user has
nonstandard colors for the UI elements (i.e. not black and white) or if
you've been doing some color drawing and haven't reset the pen colors to
the right thing.

What you'd need to do, to make sure it looked right on a color screen where
the user has changed the defaults (for instance through some 3rd party
software like Chrome) is to call UIColorGetTableEntryIndex to get the form
(or dialog) background color and pass that to WinSetBackColor. Then when
you call WinEraseRectangleFrame, it'll draw the rectangle using the
background color you set.

Or you could make things conceptually simpler and set the foreground color
to the form or dialog background color and call WinDrawRectangleFrame.
Same result in either case.

I suppose going the "erase" route would be easier so that less code needs
to be in a "3.5 only" condition.

In short:
  IndexedColorType oldBack;
  if (weAreOnPalmOS35OrHigher)
    oldBack = WinSetBackColor(UIColorGetTableEntryIndex(UIFormFill or
UIDialogFill));
  WinEraseRectangleFrame (rectangleFrame,&(pListPtr->bounds));
  if (weAreOnPalmOS35OrHigher)  // reset the background color if you need to
   WinSetBackColor(oldBack);


>Attempting to erase the
>frame from within the list draw callback doesn't work.

That's because the clipping region has been set to prevent accidental
drawing outside of the list item's bounds.  You could reset the clipping
region if you wanted, and do the drawing in there.  A "gotcha" in there is
that under 3.5 the list draw callback is called with different foreground
and background colors, to get your callback to highlight the selected item.
Prior to 3.5, it used to just invert the list item for you, but in a
colorful world inverting might not do the right thing.  So you can get
called in different circumstances with different pen colors chosen.

-David Fedor
Palm Developer Support



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

Reply via email to