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

Reply via email to