Ignore:
Timestamp:
Apr 6, 2010 4:56:48 PM (13 years ago)
Author:
srkline
Message:

Made preferences a common panel (moved to PlotUtilsMacro?.ipf and globals to root:Packages:NIST:) and added menu items for all packages. Many files had to be modified so that the preferences could be properly accessed

File Open dialog now is set to "All files" so that XML can be selected. I think that all open access that doesn't already have the full path go through this common function.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/PlotManager/PlotUtilsMacro_v40.ipf

    r662 r665  
    101101                fileStr = DoOpenFileDialog("Select a data file to load") 
    102102                if (cmpstr(fileStr,"") == 0) 
     103                        String/G root:Packages:NIST:gLastFileName = "" 
    103104                        return          //get out if no file selected 
    104105                endif 
     
    873874 
    874875//returns the path to the file, or null if cancel 
     876// 
     877// either the T="????" or the /F flags work to set the filter to "all files" 
     878// but the T is essentially obsolete, /F is new for Igor 6.1 and recommended 
    875879Function/S DoOpenFileDialog(msg) 
    876880        String msg 
     
    880884        String outputPath 
    881885         
    882         Open/D/R/T="????"/M=msg refNum 
     886        String fileFilters = "All Files:.*;" 
     887                 
     888//      Open/D/R/T="????"/M=msg refNum 
     889        Open/D/R/F=fileFilters/M=msg refNum 
    883890        outputPath = S_fileName 
    884891         
     
    952959        Variable maxLength=25 
    953960        Variable nameTooLong=0 
    954          
     961        String/G root:Packages:NIST:gShortNameStr = inStr[0,maxLength-1] 
     962        SVAR newStr = root:Packages:NIST:gShortNameStr 
     963 
    955964        if(strlen(inStr) <= maxLength) 
    956965                return (inStr)          //length OK 
     
    968977         
    969978                        if(V_flag == 2)         //not OK, do something about it 
    970                                 String/G root:myGlobals:gShortNameStr = inStr[0,maxLength-1] 
    971                                 SVAR newStr = root:myGlobals:gShortNameStr 
    972979                                 
    973980                                DoWindow/F ShorterNameInput             //it really shouldn't exist... 
    974981                                if(V_flag==0) 
    975                                         NewPanel /W=(570,152,915,280) as "Enter a Shorter Name" 
     982                                 
     983                                        NewPanel /W=(166,90,666,230) as "Enter a Shorter Name" 
    976984                                        DoWindow/C ShorterNameInput 
    977985                                        SetDrawLayer UserBack 
    978986                                        TitleBox title0,pos={35,8},size={261,20},title=" Enter a shorter file name. It must be 25 characters or less " 
    979                                         TitleBox title0,fStyle=1 
     987                                        TitleBox title0,fSize=12,fStyle=1 
    980988                                        SetVariable setvar0,pos={21,52},size={300,15},title="New name",value= _STR:newStr 
    981                                         SetVariable setvar0,proc=ShorterNameSetVarProc 
     989                                        SetVariable setvar0,proc=ShorterNameSetVarProc,fsize=12 
    982990                                        SetVariable setvar0 valueBackColor=(65535,49151,49151) 
    983991                                        Button button0,pos={259,87},size={60,20},title="Done" 
    984992                                        Button button0,proc=ShorterNameDoneButtonProc 
     993                                 
    985994                                endif 
    986995                                 
     
    988997                                 
    989998                                // this really should force a good name, but there could be errors that I'm not catching 
    990                                 Print newStr, strlen(newStr) 
     999//                              Print newStr, strlen(newStr) 
    9911000                                nameTooLong = 0 
    9921001                        endif 
     
    10311040        switch (ba.eventCode) 
    10321041                case 2: 
    1033                         SVAR newStr = root:myGlobals:gShortNameStr 
     1042                        SVAR newStr = root:Packages:NIST:gShortNameStr 
    10341043                        ControlInfo setvar0 
    10351044                        newStr = S_value 
     
    11741183        return(list) 
    11751184End 
     1185 
     1186 
     1187/////////////////////////////////////////////////// 
     1188// old SANSPreferences have been moved here to a common place and renamed to "NCNR Preferences" so that they  
     1189// are common to all of the packages (and will appear on all of the menus) 
     1190// 
     1191// globals moved to root:Packages:NIST: since this is generated by all packages. 
     1192// 
     1193/////////////////////////// 
     1194// user preferences 
     1195//  
     1196// globals are created in initialize.ipf 
     1197// 
     1198// this panel allows for user modification 
     1199/////////////////////////// 
     1200Proc Show_Preferences_Panel() 
     1201 
     1202        DoWindow/F Pref_Panel 
     1203        if(V_flag==0) 
     1204                Init_Pref() 
     1205                Pref_Panel() 
     1206        Endif 
     1207//      Print "Preferences Panel stub" 
     1208End 
     1209 
     1210Proc init_pref() 
     1211        // create the globals here if they are not already present 
     1212         
     1213        // each package initialization should call this to repeat the initialization 
     1214        // without overwriting what was already set 
     1215         
     1216        Variable val 
     1217         
     1218        ///// items for SANS reduction 
     1219        val = NumVarOrDefault("root:Packages:NIST:gLogScalingAsDefault", 1 ) 
     1220        Variable/G root:Packages:NIST:gLogScalingAsDefault=val 
     1221         
     1222        val = NumVarOrDefault("root:Packages:NIST:gAllowDRK", 0 ) 
     1223        Variable/G root:Packages:NIST:gAllowDRK=val                     //don't show DRK as default 
     1224         
     1225        val = NumVarOrDefault("root:Packages:NIST:gDoTransCheck", 1 ) 
     1226        Variable/G root:Packages:NIST:gDoTransCheck=val 
     1227         
     1228        val = NumVarOrDefault("root:Packages:NIST:gBinWidth", 1 ) 
     1229        Variable/G root:Packages:NIST:gBinWidth=val 
     1230         
     1231        val = NumVarOrDefault("root:Packages:NIST:gNPhiSteps", 72 ) 
     1232        Variable/G root:Packages:NIST:gNPhiSteps=val 
     1233         
     1234        /// items for SANS Analysis 
     1235         
     1236         
     1237        /// items for USANS Reduction 
     1238         
     1239         
     1240        /// items for everyone 
     1241        val = NumVarOrDefault("root:Packages:NIST:gXML_Write", 1 ) 
     1242        Variable/G root:Packages:NIST:gXML_Write = val 
     1243         
     1244         
     1245end 
     1246 
     1247Function LogScalePrefCheck(ctrlName,checked) : CheckBoxControl 
     1248        String ctrlName 
     1249        Variable checked 
     1250         
     1251        NVAR gLog = root:Packages:NIST:gLogScalingAsDefault 
     1252        glog=checked 
     1253        //print "log pref checked = ",checked 
     1254End 
     1255 
     1256Function DRKProtocolPref(ctrlName,checked) : CheckBoxControl 
     1257        String ctrlName 
     1258        Variable checked 
     1259         
     1260        NVAR gDRK = root:Packages:NIST:gAllowDRK 
     1261        gDRK = checked 
     1262        //Print "DRK preference = ",checked 
     1263End 
     1264 
     1265Function UnityTransPref(ctrlName,checked) : CheckBoxControl 
     1266        String ctrlName 
     1267        Variable checked 
     1268         
     1269        NVAR gVal = root:Packages:NIST:gDoTransCheck 
     1270        gVal = checked 
     1271End 
     1272 
     1273Function XMLWritePref(ctrlName,checked) : CheckBoxControl 
     1274        String ctrlName 
     1275        Variable checked 
     1276         
     1277        NVAR gVal = root:Packages:NIST:gXML_Write 
     1278        gVal = checked 
     1279End 
     1280 
     1281Function PrefDoneButtonProc(ctrlName) : ButtonControl 
     1282        String ctrlName 
     1283         
     1284        DoWindow/K pref_panel 
     1285End 
     1286 
     1287// draws the panel 
     1288// each checkbox should actively change a global value 
     1289Proc Pref_Panel() 
     1290        PauseUpdate; Silent 1           // building window... 
     1291        NewPanel /W=(607,158,958,580)/K=2 as "SANS Preference Panel" 
     1292        DoWindow/C pref_panel 
     1293        ModifyPanel cbRGB=(49694,61514,27679) 
     1294        SetDrawLayer UserBack 
     1295        DrawText 34,288,"nothing to set" 
     1296        DrawText 34,370,"nothing to set" 
     1297        CheckBox check0,pos={21,99},size={171,14},proc=LogScalePrefCheck,title="Use Log scaling for 2D data display" 
     1298        CheckBox check0,help={"Checking this will display 2D SANS data with a logarithmic color scale of neutron counts. If not checked, the color mapping will be linear."} 
     1299        CheckBox check0,value= root:Packages:NIST:gLogScalingAsDefault 
     1300        CheckBox check1,pos={21,119},size={163,14},proc=DRKProtocolPref,title="Allow DRK correction in protocols" 
     1301        CheckBox check1,help={"Checking this will allow DRK correction to be used in reduction protocols. You will need to re-draw the protocol panel for this change to be visible."} 
     1302        CheckBox check1,value= root:Packages:NIST:gAllowDRK 
     1303        CheckBox check2,pos={21,139},size={137,14},proc=UnityTransPref,title="Check for Transmission = 1" 
     1304        CheckBox check2,help={"Checking this will check for SAM or EMP Trans = 1 during data correction"} 
     1305        CheckBox check2,value= root:Packages:NIST:gDoTransCheck 
     1306        Button button0,pos={282,379},size={50,20},proc=PrefDoneButtonProc,title="Done" 
     1307        SetVariable setvar0,pos={21,169},size={200,15},title="Averaging Bin Width (pixels)" 
     1308        SetVariable setvar0,limits={1,100,1},value= root:Packages:NIST:gBinWidth 
     1309        SetVariable setvar1,pos={21,194},size={200,15},title="# Phi Steps (annular avg)" 
     1310        SetVariable setvar1,limits={1,360,1},value= root:Packages:NIST:gNPhiSteps 
     1311        CheckBox check3,pos={21,34},size={124,14},proc=XMLWritePref,title="Use canSAS XML Output" 
     1312        CheckBox check3,help={"Checking this will set the default output format to be canSAS XML rather than NIST 6 column"} 
     1313        CheckBox check3,value= root:Packages:NIST:gXML_Write 
     1314        GroupBox group0,pos={9,6},size={230,54},title="Global Preferences",fSize=12 
     1315        GroupBox group0_1,pos={9,74},size={230,149},title="SANS Reduction",fSize=12 
     1316        GroupBox group0_2,pos={9,238},size={230,68},title="USANS Reduction",fSize=12 
     1317        GroupBox group0_3,pos={9,319},size={230,68},title="Analysis",fSize=12 
     1318         
     1319        //keep these hidden for now so that nobody can accidentally change them from 
     1320        //the default values set in Initialize.ipf (128x128) 
     1321//      SetVariable setvar2,pos={10,125},size={200,15},title="Detector Pixels (X)" 
     1322//      SetVariable setvar2,limits={1,2000,1},value= root:Packages:NIST:gNPixelsX 
     1323//      SetVariable setvar3,pos={10,145},size={200,15},title="Detector Pixels (Y)" 
     1324//      SetVariable setvar3,limits={1,2000,1},value= root:Packages:NIST:gNPixelsY 
     1325 
     1326End 
Note: See TracChangeset for help on using the changeset viewer.