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
|