summaryrefslogtreecommitdiff
path: root/idl/ipp_examples.pro
blob: 3a1befedb257d90da9df612606abc7b5349270bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
pro ipp_init
  COMMON ex_com,ex_path,image1,example
    erase
    idlpath=getenv('IDL_DIR')
    ex_path=idlpath+'/examples/ipp/'
    read_gif,ex_path+'/images/rzg.gif',image1,r,g,b
    tvlct,r,b,g
    tv,image1,100,50
end
pro make_example_event,event
  COMMON ex_com
    widget_control,event.id,get_uvalue=evval
       case evval of
          'DONE' : begin
		      widget_control,event.top,/destroy
		      ipp_init
		   end
          'RUN'  : case example of
                      'for_idl' : begin
				     cmd='xterm -e '+ex_path+'for_idl/for_idl'
				     spawn,cmd
				  end
                      'c_idl'   : begin
				     cmd='xterm -e '+ex_path+'c_idl/c_idl'
				     spawn,cmd
				  end
                      else      : dumy=execute(example)
		   endcase
          'CODE' : begin
		     dummy=''
                     pfile=pickfile(/read,path=ex_path+example)
		     if pfile ne dummy then xdisplayfile,pfile
		   end
       endcase 
end
pro make_example
  COMMON ex_com
    ex_plotbase=widget_base(/column)
    XPdMenu,[ '"     Done     "    DONE' , $
              '"     RUN      "	   RUN'    $
	    ] ,ex_plotbase
    case  example of
       'for_idl' : button=widget_button(ex_plotbase,value='display code',uvalue='CODE')
       'c_idl'   : button=widget_button(ex_plotbase,value='display code',uvalue='CODE')
       else      : dummy=widget_label(ex_plotbase,value='   ')
    endcase
    widget_control,ex_plotbase,/realize
    xmanager,'make_example',ex_plotbase
end
pro ipp_examples_event,event
  COMMON ex_com
    widget_control,event.id,get_uvalue=evval
       case evval of
       'DONE'     : widget_control,event.top,/destroy
       'RESET'    : ipp_init
       'C_IDL'    : begin
		      erase
		      read_gif,ex_path+'/images/c_idl.gif',image2,r,g,b
 		      tvlct,r,b,g
  		      tv,image2
	              example='c_idl'
		      make_example
	            end
       'FOR_IDL'  : begin
		      erase
		      read_gif,ex_path+'/images/for_idl.gif',image2,r,g,b
 		      tvlct,r,b,g
  		      tv,image2
	              example='for_idl'
		      make_example
	            end
       'EX_PLOT'  : begin
		      erase
		      read_gif,ex_path+'/images/text_plot.gif',image2,r,g,b
 		      tvlct,r,b,g
  		      tv,image2
	              example='ex_plot'
		      make_example
	            end
       'IDL_FOR'  : begin
		      erase
		      read_gif,ex_path+'/images/idl_for.gif',image2,r,g,b
 		      tvlct,r,b,g
  		      tv,image2
	              example='idl_for'
		      make_example
	            end
       'HIS_PLOT' : begin
		      erase
		      read_gif,ex_path+'/images/his_plot.gif',image2,r,g,b
 		      tvlct,r,b,g
  		      tv,image2
	              example='his_plot'
		      make_example
	            end
       'CODE'     : XDisplayFile,ex_path+'ipp_examples.pro'
       endcase 

end
pro ipp_examples
  COMMON ex_com
    base=widget_base(column=2)
    base1=widget_base(base,/column)
    base2=widget_base(base,row=2)
    lab2=widget_label(base2,xsize=600,ysize=80,/align_center,$
	              value="IPP-Examples Overview")
    XPdMenu,[ '" Done "		DONE' , $
              '" Reset "	RESET'  $
	    ],base1
    lab1=widget_label(base1,xsize=80,ysize=40,value="  ")
    butt1=widget_button(base1,value='  Histogram Plot  ',uvalue='HIS_PLOT')
    label=widget_label(base1,ysize=3,value='   ')
    butt2=widget_button(base1,value='  Plot with Text  ',uvalue='EX_PLOT')
    label=widget_label(base1,ysize=3,value='   ')
    butt3=widget_button(base1,value='  IDL calls Fortran  ',uvalue='IDL_FOR')
    label=widget_label(base1,ysize=3,value='   ')
    butt4=widget_button(base1,value='  Fortran calls IDL  ',uvalue='FOR_IDL')
    label=widget_label(base1,ysize=3,value='   ')
    butt5=widget_button(base1,value='  C calls IDL  ' ,uvalue='C_IDL')
    label=widget_label(base1,ysize=3,value='   ')
    butt6=widget_button(base1,value=' display code ',uvalue='CODE')
    draw=widget_draw(base2,xsize=800,ysize=800,colors=256,retain=2)
    widget_control,base,/realize
    ipp_init
    xmanager,'ipp_examples',base
end