At 08:20 AM 5/25/2000, Yu, Ken wrote:
> My app has a table with a custom draw procedure with an increased
>row height. On OS's earlier than 3.5, this draw procedure does not get
>called when the a tblEnterEvent is received but is called on 3.5. When the
>procedure is executed during tblEnterEvent, the row height passed is 11.
>This is incorrect since the height was increased to 24. However, 24 is
>correctly passed when the table is drawn normally (not when user enters the
>row).
Before 3.5, the table didn't have to worry about color, so it could highlight and
un-highlight the item simply by inverting a portion of the screen. In 3.5, the
selection effect is no longer a simple invert, so this is no longer possible. The way
it highlights an item is by mapping the de-selected colors in the area to
corresponding selected colors. Because this operation isn't guaranteed to be
reversible, it re-draws the item when it needs to de-select it. In your case, that
means calling your custom draw procedure. So, your custom draw procedure is called
more often than before.
I'm not sure I understand when you're increasing the row height. Is it in your custom
draw procedure? Are you calling TblSetRowHeight to do this? Are you invalidating the
affected row and all rows below it by calling TblMarkRowInvalid?
> I draw a frame around my rows. On OS 3.5, when a row is entered,
>the frame is redrawn incorrectly since the rectangular bounds is different.
>
> Any ideas on how I should work around this? (Maybe I'll just hard
>code the boundary dimensions)
I think you may need to move some code around, but you should be able to get this to
work without hard coding the boundaries.
--
Peter Epstein
Palm Inc. Developer
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/