comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » XCOLORS on MAC problem understood
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
XCOLORS on MAC problem understood [message #15315] Fri, 30 April 1999 00:00
davidf is currently offline  davidf
Messages: 2866
Registered: September 1996
Senior Member
Folks,

I reported here several days ago that I had still not
been able to get to the bottom of a problem I was having
with my XCOLORS program running on Macintosh computers.
In particular, the program seemed to go into some kind
of a loop when I loaded new color vectors and informed
the calling program of that fact with a SEND_EVENT
mechanism. I reported that I could not get test programs
that used the SEND_EVENT mechanism to fail and that I
was at a loss as to how to narrow the problem down.

Fortunately, my report came to the attention of the
senior Macintosh programmer at RSI who encouraged me
to send the problem program to him to see if he could
get to the bottom of it. I am happy to report he did
just that in very short order. And I am very grateful.

It seems the problem lay not in my program or the
SEND_EVENT mechanism (thank goodness, because I like
this way of communicating between different widget
programs very much), but in a bit of obscure Mac
IDL code that attempted to update the windows after
every call to TVLCT.

Normally this code (although unnecessary and now
removed in future versions of IDL) causes no problems.
But it put me into a loop because I had draw widget
expose events turned on in my XCOLORS programs.
(In this case I use draw widget expose events to
make sure my XCOLORS program is always displaying
the correct set of colors in it's color table window.
Without color protection, widget display windows are
often at the mercy of whoever just loaded the
color table vectors. Most of my widget programs
have some kind of color protection mechanism built
into them so that I can always display colors
properly.)

So XCOLORS would load the color vectors and I would
send an event. Then the Mac would update the window,
which caused an expose event, which caused XCOLORS
to load the color vectors, which caused another
SEND_EVENT, and so on.

The work around is to simply turn draw widget
expose events OFF for the XCOLORS window. The program
can be made to work by commenting out the fourth
line from the bottom of the XCOLORS program:

; Widget_Control, draw, Draw_Expose_Events=1

Cheers,

David
--
David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
[Message index]
 
Read Message
Previous Topic: Problem with Trigrid
Next Topic: Catch Error Handling Traceback

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Dec 03 09:18:05 PST 2025

Total time taken to generate the page: 2.00214 seconds