source: trunk/MESOSCALE_DEV/PLOT/SPEC/LES/pause.pro @ 211

Last change on this file since 211 was 85, checked in by aslmd, 14 years ago

LMD_MM_MARS et LMD_LES_MARS: ajout des routines IDL pour tracer les sorties --> voir mesoscale/PLOT

File size: 2.5 KB
Line 
1pro pause,up=up,xcrs=xcrs,ycrs=ycrs,on_screen=on_screen
2;+
3; routine:        pause
4;
5; useage:         pause
6;                 pause,up=up,xcrs=xcrs,ycrs=ycrs,on_screen=on_screen
7;
8; input:          none
9;
10; keyword input: 
11;   up
12;     if set, don't return until a upward button transition is
13;     detected.  This is useful when pause is used between plots which
14;     draw quickly.  Setting this keyword ensures that no plots are
15;     skipped but also requires that each new plot be accompanied by a
16;     downward and upward button transition.  The default is to skip
17;     to the next plot as long a mouse button is pressed down.
18;
19;
20; xcrs,ycrs
21;     pixel location to put cursor while waiting
22;
23; on_screen
24;     if set, don't pause if cursor not in plot window
25;
26; output:         none
27;
28; PURPOSE:
29;     Momentarily stop execution until a mouse key is pressed.  While
30;     in the paused state the cursor is changed to what looks like an
31;     arrow pointing down on a button.  When any of the mouse buttons
32;     are pressed the cursor returns to its original form and
33;     execution continues.
34;     
35;     PAUSE will only interrupt execution if the output device is 'X'
36;     and plot system variable !p.multi(0) eq 0.  The first condition
37;     disables PAUSE when output is directed to a postscript file.
38;     The second condition ensures that pauses occur only just before
39;     the screen is erased for a new plot.
40;     
41;     NOTE: After PAUSE returns to the calling program different
42;     actions can be performed depending on whether the left, middle
43;     or right mouse button was pressed.  Just test on the !err system
44;     variable: !err=1 => left !err=2 => middle !err=4 => right.
45;
46; COMMON BLOCKS: pause_blk
47;                       
48; EXAMPLE:       
49;
50;x=findgen(201)/10.-10.
51;for a=-2.,2.,.1 do begin & plot,x,1/(x^2*10.^a+1),tit=string(a) & pause & end
52;
53;for a=-2.,2.,.1 do begin & plot,x,1/(x^2*10.^a+1),tit=string(a) &$
54;   pause,/u & end
55;
56;  author:  Paul Ricchiazzi                            22sep92
57;           Institute for Computational Earth System Science
58;           University of California, Santa Barbara
59;-
60
61
62if !d.name eq 'X' and !p.multi(0) eq 0 then begin
63  cursor,xw,yw,/nowait,/device
64 
65  if xw eq -1 then begin
66    if keyword_set(on_screen) then return
67    if n_elements(xcrs) eq 0 then xcrs=.9*!d.x_vsize
68    if n_elements(ycrs) eq 0 then ycrs=.9*!d.y_vsize
69    tvcrs,xcrs,ycrs
70  endif
71  device,cursor_standard=16
72  cursor,xdum,ydum,/wait,/device
73  if keyword_set(up) then cursor,xdum,ydum,/up,/device
74  device,cursor_standard=30
75endif
76end
Note: See TracBrowser for help on using the repository browser.