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

Home » Public Forums » archive » Widget Event_Pro question
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Widget Event_Pro question [message #59600 is a reply to message #59480] Wed, 02 April 2008 08:38 Go to previous messageGo to previous message
Spon is currently offline  Spon
Messages: 178
Registered: September 2007
Senior Member
On Apr 2, 4:23 pm, David Fanning <n...@dfanning.com> wrote:
> Spon writes:
>> I need to define this array before any instances of widget B are open.
>> Can I use a value of [-1L] for this? Or is -1 a valid widget ID number
>> that might cause problems later if IDL decides to label one of my
>> widgets -1 at some point?
>
> All widget IDs are positive. But, a pointer comes
> to mind, too. :-)
>
> Cheers,
>
> David
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming (www.dfanning.com)
> Sepore ma de ni thui. ("Perhaps thou speakest truth.")

I think I'm already doing what you suggest, but just to be sure:

Graphs = PTR_NEW([-1L])
UVal = {Img:Img $
... ;
... ; Loads of other garbage
Graphs:Graphs }
WIDGET_CONTROL, Base, SET_UVALUE = UVal

And then, when I realize a graph widget:
; Register the widget with top level UVal structure
*UVal.Graphs = [(*UVal.Graphs), GraphBase]
WIDGET_CONTROL, Event.Top, SET_UVAL = UVal

; Register top level widget ID in Graph widget UVAL
GraphUVal = { GroupLeader:Event.Top }
WIDGET_CONTROL, GraphBase, SET_UVAL = GraphUVal

Is this what you meant by using a pointer? Or could I do it more
efficiently? The main problem this creates is in my graph deleting
procedure, where I have to first check if the array contains any non-
minus-one entries and then loop through them all, destroying the
associated widgets and reseting them to -1.

Oh, and another question while I'm at it: I'm trying to check if a
widget still exists before trying to load its UVal, I thought that

IF WIDGET_INFO(GraphUVal.GroupLeader, /ACTIVE) THEN BEGIN

would do what I want, but apparently the /ACTIVE keyword doesn't work
with an argument.

Chris
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: ITTVIS to replace all IDL developers with robots
Next Topic: Re: IDL Workbench Path Woes

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

Current Time: Sat Oct 11 06:34:52 PDT 2025

Total time taken to generate the page: 0.64201 seconds