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

Home » Public Forums » archive » widget_control from call_external
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_control from call_external [message #24062 is a reply to message #24011] Sun, 04 March 2001 23:54 Go to previous message
dominic is currently offline  dominic
Messages: 2
Registered: March 2001
Junior Member
davidf@dfanning.com (David Fanning) writes:

> Well, this will be difficult unless your can call your
> C program in "chunks", or in some other way interrupt
> it. It might be easier if you just know, in general,
> how long it takes. Then you can set a "kitchen timer"
> sort of progress indicator. As long as the cake is
> baked by the time the timer goes off, no one seems
> to care. :-)

That sounds like a great idea.
I tried to implement that, but the timer stops ticking!
Seems like xmanager doesn't accept events until the
call_external returns... There's a t_test.pro for illustration.

Oh yes, the other thing I tried is to fire up a status line
from within the C-code with IDL_ExecuteStr(). Works just fine
EXCEPT for the annoying messages:
% Temporary variables are still checked out - cleaning up...
for every IDL_ExecuteStr().

Did I miss something?

pro t_test_event, ev

widget_control, ev.id, get_uvalue=uval
widget_control, ev.top, get_uvalue=struct

stat = struct.status
curr = struct.current
evno = struct.t_evno

case uval of
'Done' : widget_control, ev.top, /destroy
'Run' : begin
widget_control,stat,timer=1
JUNK = call_external('t_test.so','t_test', curr,/unload)
end
'Timer' : begin
evno = evno +1
print,'Timer event no ', evno
widget_control,stat,timer=1
widget_control, ev.top, $
set_uvalue={status:stat, current:curr, t_evno:evno}
end

else : begin ; should never happen
widget_control, ev.id, get_value=val
print,'unknown event with value ',val
widget_control, ev.top, /destroy
end
end

end

pro t_test

old = 0L
current = 0L
t_evno = 0
a = widget_base(/col)
b = widget_button(a,value='Run',uval='Run',/frame)
status = widget_label(a,value= $
string(format='(A8,I3,1x,A1)','Status: ',0,'%'),uvalue='Timer')

c= widget_button(a,value='Done',uval='Done',/frame)

widget_control, a, /realize

widget_control,status,timer=1

widget_control, a, $
set_uvalue={status:status, current:current, t_evno:t_evno}

xmanager, 't_test',a

end


----- Posted via NewsOne.Net: Free (anonymous) Usenet News via the Web -----
http://newsone.net/ -- Free reading and anonymous posting to 60,000+ groups
NewsOne.Net prohibits users from posting spam. If this or other posts
made through NewsOne.Net violate posting guidelines, email abuse@newsone.net
[Message index]
 
Read Message
Read Message
Previous Topic: LINE NUMBERS
Next Topic: Re: Clsuter analysis wiht IDL

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

Current Time: Sat Oct 11 04:03:42 PDT 2025

Total time taken to generate the page: 0.64145 seconds