On Oct 6, 2007, at 9:57 AM, Felipe Monteiro de Carvalho wrote:
How does LCL set the cursor set for controls without a handle? I would
guess that the parent component analyses mouse move events and then
searchs it's child controls to see when the mouse is in an area which
should have a different cursor, is that it?
Thanks Felipe. That sounds like a good guess, and is how I handle
cursors in non-object-oriented older Mac Carbon apps (still based on
WaitNextEvent()).
I need to go back and look more closely, but cursor-setting (for both
controls whose cursors work and controls whose cursors don't work)
eventually passes thru a SetTempCursor(). But there may be more than
one instance of a SetTempCursor() method in there somewhere. Would
need to look closer.
On the first tracing, I didn't notice the code around SetTempCursor()
actually calling a carbon cursor-setting function, but may have
missed it. Maybe it just sets a variable which gets picked up and
sent to carbon on some other message handler.
All answers are explained in the source code, but the LCL source is
fairly big and spread-out, which can take some study without a
roadmap. Not complaining. It looks very well-written and well-
organized. Any big piece of code is hard to understand on first look.
Perhaps there already is a document somewhere that explains the
'basic strategy' of how the messaging delegation works in the LCL
message loop, and the strategy of how the higher level loop is to be
adapted into the carbon message model? A roadmap of how to read the
code?
Maybe it would be too labor intensive for the people who already
understand this, to write such a doc. Am just thinking that such a
doc might make it faster/easier for more people to get involved and
fix what remains to be fixed?
Thanks
jcjr
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives