I really, really wish Lists could have an application-defined callback to
retrieve the text for a specified item.

Here's how I envision it would work:

typedef Char* (*ListGetSelectionTextFuncType)(const ListType* listP, Int16
itemNum, void* userDataP);

void LstSetListChoices(ListType* listP, Char** itemsText, Int16 numItems, 
                       ListGetSelectionTextFuncType getTextFunc, void*
userDataP);

getTextFunc would be optional; if NULL, all Lst functions would try to retrieve
strings directly from itemsText.

The advantage of this system would be that:
1. there's less need to use a custom drawing function; I'd bet that most 
   lists with custom-drawn items are purely textual, so the system now 
   could draw the list items itself
2. when dealing with pop-up triggers to such lists, the system could 
   update the trigger label itself
3. it would allow incremental-search to be used with such lists

(While I'm wishing, I wish you could set a callback for a pop-up list's event
handler too.)

#3 is the most important to me.  1 and 2 are not that much extra work with the
current system, but the combination of incremental-search's dependence on a
valid itemsText pointer and the lack of ability to set your own list event
handler makes it really hard to implement 3 yourself.  Currently if you want
incremental-search with a dynamically generated list, it's easiest to make
copies of all your strings and suffer the additional memory usage.

Obviously there's not much that can be done about this for existing versions of
Palm OS, but hopefully this stuff can be changed for Palm OS 6 if it hasn't
been already...

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

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

Reply via email to