I appreciate your effort Chris, but this patch is too far from good.
I guess it is our fault that we documented only "major achievements" (like
speeding up refresh) and didn't mentioned all bugs fixed. Just brief look
shows a lot of problems that already fixed in Corel's tree.

1. TVN_DELETEITEM notification is sent after item's text is deleted, which
is wrong. Tree is deleted in basically arbitrary order (rather than from
root to children).
2. We properly support all kinds of callback parameters (may be not in very
efficient way)
3. While drawing item with callback parameters we use single GETDISPINFO
notification to get them all. In large tree it can save a significant amount
of time.
4. Our version properly refreshes view after any message (and style change)
that affect appearence of control.
5. In this patch lines are drawn from item to upsibling only, so if item is
excluded from drawing (out of view) corresponding lines will not be drawn
(in our version item draws all line segments for each parent up to root).
6. Mouse handling: L[R]BUTTONDOWN must create internal message loop to
handle properly DRAG|CLICK condition. MSDN says this in ListView message
handling article (and forgets to mention it in TreeView docs). This bug cost
us a lot of nerves (greetings to Delphi users).
7. Using time delayed refresh is pointless as WM_PAINT (caused by
InvalidateRect) already has lowest priority. So inserting bunch of items
will result in single refresh circle.
8. Edit label must create new edit control and delete it afterwards (once
again hello to Delphi users).

I guess, I can continue this list infinitely. Probably, it wasn't a task to
merge all treeview patches from Corel, but as far as we going for replacing
whole file rather than patching it, I guess it worth to take a closer look
at what we already did.

PS: I hate to be in position "Hey, guys, we did some stuff. Why don't you
put some efforts to merge it to WineHQ?". But I really don't manage my tasks
and my time.


Serge Ivanov

-- 
The address in the headers is not the poster's real email address.  Do not send
private mail to the poster using your mailer's "reply" feature.  CC's of mail 
to mailing lists are OK.  Problem reports to "[EMAIL PROTECTED]".  
The poster's email address is "[EMAIL PROTECTED]".

Reply via email to