source: sans/Dev/trunk/NCNR_User_Procedures/Common/NCNR_Package_Loader.ipf @ 455

Last change on this file since 455 was 455, checked in by srkline, 14 years ago

Two changes: (1) remove threading of Cyl-PolyRad? model until WM can fix the crashing bug related to compiling/threadsafe...
(2) fixed bug in the calculation of the random deviate for MC calculations. The wrong scattering cross section was calculated depending on wavelength. This has been corrected.

File size: 8.3 KB
Line 
1#pragma rtGlobals=1             // Use modern global access method.
2
3// load/unload courtesy of Jan Ilavsky
4// June 2008
5
6// - SRK Oct 2008
7// rather than deleting the macros, it is preferable to simply hide the appropriate panels.
8// deleting the ipf files will break dependencies, leave panels hanging open without
9// their associated procedures, etc.
10
11// names of everything have been changed so I won't clash with Jan's code
12//
13//
14// - make this an independent module in case of bad compilation...
15
16
17Menu "Macros"
18        StrVarOrDefault("root:Packages:NCNRItemStr1a","Load NCNR Analysis Macros"), NCNR_AnalysisLoader(StrVarOrDefault("root:Packages:NCNRItemStr1a","Load NCNR Analysis Macros"))
19        StrVarOrDefault("root:Packages:NCNRItemStr1b","-"), NCNR_AnalysisLoader(StrVarOrDefault("root:Packages:NCNRItemStr1b","-"))
20
21        StrVarOrDefault("root:Packages:NCNRItemStr2a","Load NCNR SANS Reduction Macros"), NCNR_SANSReductionLoader(StrVarOrDefault("root:Packages:NCNRItemStr2a","Load NCNR SANS Reduction Macros"))
22        StrVarOrDefault("root:Packages:NCNRItemStr2b","-"), NCNR_SANSReductionLoader(StrVarOrDefault("root:Packages:NCNRItemStr2b","-"))
23
24        StrVarOrDefault("root:Packages:NCNRItemStr3a","Load NCNR USANS Reduction Macros"), NCNR_USANSReductionLoader(StrVarOrDefault("root:Packages:NCNRItemStr3a","Load NCNR USANS Reduction Macros"))
25        StrVarOrDefault("root:Packages:NCNRItemStr3b","-"), NCNR_USANSReductionLoader(StrVarOrDefault("root:Packages:NCNRItemStr3b","-"))
26end
27
28Function NCNR_AnalysisLoader(itemStr)
29        String itemStr
30               
31        if (str2num(stringByKey("IGORVERS",IgorInfo(0))) < 6.02)
32                Abort "Your version of Igor is lower than 6.02, these macros need version 6.02 or higher.... "
33        endif
34       
35        NewDataFolder/O root:Packages           //create the folder for string variable
36        String/G root:Packages:NCNRItemStr1a = itemStr
37        String/G root:Packages:NCNRItemStr1b = itemStr
38        SVAR gMenuStr1a = root:Packages:NCNRItemStr1a
39        SVAR gMenuStr1b = root:Packages:NCNRItemStr1b
40       
41        String SANSAna_WinList = "wrapperPanel;Procedure_List;Report;"
42        strswitch(itemStr)      // string switch
43                case "Load NCNR Analysis Macros":       
44                        Execute/P "INSERTINCLUDE \"SA_Includes_v400\""
45                        Execute/P "INSERTINCLUDE \"PlotUtilsMacro_v40\""
46                        Execute/P "INSERTINCLUDE \"GaussUtils_v40\""
47                        Execute/P "INSERTINCLUDE \"WriteModelData_v40\""
48                        Execute/P "INSERTINCLUDE \"USANS_SlitSmearing_v40\""
49                        Execute/P "INSERTINCLUDE \"SANSModelPicker_v40\""
50                        Execute/P "COMPILEPROCEDURES "
51                        Execute/P ("Init_WrapperPanel()")
52                        Execute/P ("ModelPicker_Panel()")
53               
54                        gMenuStr1a = "Hide NCNR Analysis Macros"
55//                      gMenuStr1b = "Unload NCNR Analysis Macros"
56                        gMenuStr1b = "-"
57                        BuildMenu "Macros"
58                       
59                        break                                           
60                case "Unload NCNR Analysis Macros":     
61                // very dangerous - don't really want to implement this because it will surely crash
62                        Execute/P "DELETEINCLUDE \"SA_Includes_v400\""
63                        Execute/P "DELETEINCLUDE \"PlotUtilsMacro_v40\""
64                        Execute/P "DELETEINCLUDE \"GaussUtils_v40\""
65                        Execute/P "DELETEINCLUDE \"WriteModelData_v40\""
66                        Execute/P "DELETEINCLUDE \"USANS_SlitSmearing_v40\""
67                        Execute/P "DELETEINCLUDE \"SANSModelPicker_v40\""
68                        Execute/P "COMPILEPROCEDURES "
69                        DoWindow wrapperPanel
70                        if(V_Flag)
71                                DoWindow/K wrapperPanel
72                        endif
73                        DoWindow Procedure_List
74                        If(V_Flag)
75                                DoWindow/K Procedure_List
76                        endif
77
78                        gMenuStr1a = "Load NCNR Analysis Macros"
79                        gMenuStr1b = "-"
80                       
81                        BuildMenu "Macros"
82                       
83                        break
84                case "Hide NCNR Analysis Macros":       
85                        HideShowWindowsInList(SANSAna_WinList,1)       
86               
87                        gMenuStr1a = "Show NCNR Analysis Macros"
88//                      gMenuStr1b = "Unload NCNR Analysis Macros"
89                        gMenuStr1b = "-"
90                        BuildMenu "Macros"
91                       
92                        break
93                case "Show NCNR Analysis Macros":
94                        HideShowWindowsInList(SANSAna_WinList,0)       
95               
96                        gMenuStr1a = "Hide NCNR Analysis Macros"
97//                      gMenuStr1b = "Unload NCNR Analysis Macros"
98                        gMenuStr1b = "-"
99                        BuildMenu "Macros"
100                       
101                        break
102                default:
103                        Abort "Invalid Menu Selection"
104        endswitch
105
106end
107
108
109// now add for the SANS Reduction
110Function NCNR_SANSReductionLoader(itemStr)
111        String itemStr
112       
113        if (str2num(stringByKey("IGORVERS",IgorInfo(0))) < 6.02)
114                Abort "Your version of Igor is lower than 6.02, these macros need version 6.02 or higher.... "
115        endif
116       
117        NewDataFolder/O root:Packages           //create the folder for string variable
118        String/G root:Packages:NCNRItemStr2a = itemStr
119        String/G root:Packages:NCNRItemStr2b = itemStr
120        SVAR gMenuStr2a = root:Packages:NCNRItemStr2a
121        SVAR gMenuStr2b = root:Packages:NCNRItemStr2b
122       
123        String SANSRed_WinList = "Main_Panel;CatVSTable;SANS_Data;Plot_Manager;Average_Panel;Plot_1d;CatWin;Surface_3D;FitPanel;FitWindow;"
124        SANSRed_WinList += "FitRPAPanel;SANS_Histo;drawMaskWin;Multiple_Reduce_Panel;NSORT_Panel;NSORT_Graph;CombineTable;ToCombine;Patch_Panel;"
125        SANSRed_WinList += "ProtocolPanel;Schematic_Layout;Tile_2D;RAW_to_ASCII;Trans_Panel;TransFileTable;ScatterFileTable;Convert_to_Trans;"
126        SANSRed_WinList += "WorkFileMath;Pref_Panel;Subtract_1D_Panel;Plot_Sub1D;SASCALC;MC_SASCALC;Saved_Configurations;TISANE;"
127        strswitch(itemStr)      // string switch
128                case "Load NCNR SANS Reduction Macros":
129                        Execute/P "INSERTINCLUDE \"Includes_v520\""
130                        Execute/P "COMPILEPROCEDURES "
131                        Execute/P ("Initialize()")
132               
133                        gMenuStr2a = "Hide NCNR SANS Reduction Macros"
134//                      gMenuStr2b = "Unload NCNR SANS Reduction Macros"
135                        gMenuStr2b = "-"
136                        BuildMenu "Macros"
137                       
138                        break                                           
139                case "Unload NCNR SANS Reduction Macros":       
140                // very dangerous - don't really want to implement this because it will surely crash
141                        Execute/P "DELETEINCLUDE \"Includes_v520\""
142                        Execute/P "COMPILEPROCEDURES "
143                        DoWindow Main_Panel
144                        if(V_Flag)
145                                DoWindow/K Main_Panel
146                        endif
147
148                        gMenuStr2a = "Load NCNR SANS Reduction Macros"
149                        gMenuStr2b = "-"
150                       
151                        BuildMenu "Macros"
152                       
153                        break
154                case "Hide NCNR SANS Reduction Macros":
155                        HideShowWindowsInList(SANSRed_WinList,1)
156               
157                        gMenuStr2a = "Show NCNR SANS Reduction Macros"
158//                      gMenuStr2b = "Unload NCNR SANS Reduction Macros"
159                        gMenuStr2b = "-"
160                        BuildMenu "Macros"
161                       
162                        break
163                case "Show NCNR SANS Reduction Macros":
164                        HideShowWindowsInList(SANSRed_WinList,0)
165               
166                        gMenuStr2a = "Hide NCNR SANS Reduction Macros"
167//                      gMenuStr2b = "Unload NCNR SANS Reduction Macros"
168                        gMenuStr2b = "-"
169                        BuildMenu "Macros"
170                       
171                        break
172                default:
173                        Abort "Invalid Menu Selection"
174        endswitch
175
176end
177
178// now add for the SANS Reduction
179Function NCNR_USANSReductionLoader(itemStr)
180        String itemStr
181       
182        if (str2num(stringByKey("IGORVERS",IgorInfo(0))) < 6.02)
183                Abort "Your version of Igor is lower than 6.02, these macros need version 6.02 or higher.... "
184        endif
185       
186        NewDataFolder/O root:Packages           //create the folder for string variable
187        String/G root:Packages:NCNRItemStr3a = itemStr
188        String/G root:Packages:NCNRItemStr3b = itemStr
189        SVAR gMenuStr3a = root:Packages:NCNRItemStr3a
190        SVAR gMenuStr3b = root:Packages:NCNRItemStr3b
191       
192        String USANS_WinList = "USANS_Panel;COR_Graph;RawDataWin;Desmear_Graph;USANS_Slope;"
193       
194        strswitch(itemStr)      // string switch
195                case "Load NCNR USANS Reduction Macros":       
196                        Execute/P "INSERTINCLUDE \"USANS_Includes\""
197                        Execute/P "COMPILEPROCEDURES "
198                        Execute/P ("ShowUSANSPanel()")
199               
200                        gMenuStr3a = "Hide NCNR USANS Reduction Macros"
201//                      gMenuStr3b = "Unload NCNR USANS Reduction Macros"
202                        gMenuStr3b = "-"
203                        BuildMenu "Macros"
204                       
205                        break                                           
206                case "Unload NCNR USANS Reduction Macros":     
207                // very dangerous - don't really want to implement this because it will surely crash
208                        Execute/P "DELETEINCLUDE \"USANS_Includes\""
209                        Execute/P "COMPILEPROCEDURES "
210                        DoWindow USANS_Panel
211                        if(V_Flag)
212                                DoWindow/K USANS_Panel
213                        endif
214
215                        gMenuStr3a = "Load NCNR USANS Reduction Macros"
216                        gMenuStr3b = "-"
217                       
218                        BuildMenu "Macros"
219                       
220                        break
221                case "Hide NCNR USANS Reduction Macros":       
222                        HideShowWindowsInList(USANS_WinList,1) 
223               
224                        gMenuStr3a = "Show NCNR USANS Reduction Macros"
225//                      gMenuStr3b = "Unload NCNR USANS Reduction Macros"
226                        gMenuStr3b = "-"
227                        BuildMenu "Macros"
228                       
229                        break
230                case "Show NCNR USANS Reduction Macros":
231                        HideShowWindowsInList(USANS_WinList,0) 
232                       
233                        gMenuStr3a = "Hide NCNR USANS Reduction Macros"
234//                      gMenuStr3b = "Unload NCNR USANS Reduction Macros"
235                        gMenuStr3b = "-"
236                        BuildMenu "Macros"
237                       
238                        break
239                default:
240                        Abort "Invalid Menu Selection"
241        endswitch
242       
243end
244
245// 1 = hide, 0 = show
246Function HideShowWindowsInList(list,hide)
247        String list
248        Variable hide
249       
250        String item
251        Variable ii,num=ItemsinList(list)
252        for(ii=0;ii<num;ii+=1)
253                item = StringFromList(ii, list , ";")
254                DoWindow $item
255                if(V_Flag)
256                        DoWindow/HIDE=(hide) $item
257                endif
258        endfor
259        return(0)
260End
Note: See TracBrowser for help on using the repository browser.