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

Last change on this file since 492 was 492, checked in by srkline, 13 years ago

Fixed typo in Package Loader

added NVAR/Z to RT initialization

Changed delta lambda at NG3 in SASCALC, removed 2.5 cm A1 option @ 7 guides

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