[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: interactive color changes within a procedure



Laura Woodney (woodney@encke.astro.umd.edu) writes:

> Once upon a time you could place a call to XLoadCT inside a
> procedure so that when it ran, the color table widget would pop
> up, you could play with the color table of an image being displayed,
> then when you were done, you could close the widget and the program
> would then continue on its merry way.  

Well, once upon a LONG time ago. :-)

> Then RSI messed with XLoadCT
> and this no longer worked: the color table widget would pop up, but
> the program would continue on it's merry way and not give you a chance
> to play with your color tables.  Fortunately, the old version of
> XLoadCT still worked and could be placed in my path in front of the
> current RSI version.
> 
> Now here's the latest twist.  My new display is 24-bit color, so I
> want to start using David Fanning's XColor widget for playing with 
> my color tables.  However, I can't figure out how to stop and
> interactively play with the color stretch while inside a procedure.
> Since I now live in a 24-bit world, the old solution of using XLoadCT
> from vintage IDL doesn't work either.

The problem, in a word, is that you need to use the BLOCK
keyword, with either XLOADCT or XCOLORS. Having said this,
I'm embarrassed to tell you that it doesn't work with XCOLORS. :-(
At least not in the version you are using. You can download
a version that *does* work here:

   http://www.dfanning.com/programs/xcolors.pro

To tell you the truth, I have never used XCOLORS with the
BLOCK keyword, and apparently never tested the keyword 
after I wrote it. Sorry about that. 

Cheers,

David

P.S. Let's just say I've never used the MODAL keyword
either, but I'm supremely confident it works as advertised. :-)

-- 
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