|
Changes Since Igor Pro 5.0This file describes significant changes made to Igor Pro and supporting files since the initial release of Igor Pro 5. Here are the updates in reverse chronological order:
How to Update Igor Pro 5Click here to download standalone updaters from our FTP sites. Igor ApplicationCHANGED FEATURESStructGet no longer emits an error when the number of rows in the source wave does match the structure size. Igor now allows x or y to be missing in ModifyGraph offset={x,y} in order to change just x or y. A value of NaN will do the same thing. The GetFileFolderInfo sets the new S_fileVersion string to something like "5.0.2.17" on Windows. The ColorScale dialog's User Ticks popup menus can now select waves from any data folder. Changed the EPS and TIFF CMYK algorithm to create better grays. Eliminated the suppression of zero line on axis when zero is within 5% of the end. To revert to the old behavior, use Variable/G root:V_UseOldZeroLineZap=1 New ModifyGraph for axes keyword, lblPosMode = m. Affects the meaning and usage of lblPos, lblLatPos and lblMargin. Goal is to allow graphs containing multiple axes on a side to maintain proper label positioning as the graph window is expanded or shrunk. The cursor info panel now shows z values as (R,G,B) for true color images. If the image data is greater than 8 bits then it is downgraded to 8 bits if the panel is in 5 digit mode due to lack of space for 16 bit readout. A popup menu allows reverting to the previous method (which shows just the red channel). Free axis position (ModifyGraph freePos) now scales the value as the axis' font size changes if the given side is not fixed (ModifyGraph margin(axname)=0). This allows multiple axes on a side to remain roughly in proper position as a graph window is expanded or contracted. Also increased the limit for axOffset to allow room for multiple axes without having to use fixed margins. Changed eps export to not include "%%DocumentFonts: (atend) " if all fonts are Added optional linesOfContext parameter to ProcedureText. New feature: Font embedding in EPS export. See PostScript Font Embedding and the revised Save Graphics dialog. Added true dots-per-inch setting to the Save Graphics and Export Graphics dialogs. Added Quality popup for QuickTime JPEG format in the Save Graphics dialog. Added CMYK option for TIFF and EPS formats in the Save Graphics dialog. Added optional /HELP flag to DoPrompt. Added optional wantTraceName parameter to CsrWave: NOTE: Added a compile time check of user-function input parameter declarations for attempts to assign values or other extraneous material. This may cause compile errors with existing procedure files. You will need to edit out the improper material: Function foo(param) Variable param=1 // NO: param=1 no longer allowed New flag for DrawPoly, DrawBezier: /ABS - Supresses the default subtraction of the first point from the rest of the data. Added keyboard event to new-style window hooks. New event is 11 and the new 'keycode' field was added to the structure. See SetWindow. Added a new keyword, activeSW, to GetWindow. Stores the host-child spec of the currently active subwindow in S_Value. New feature: ModifyGraph plotClip= [0 1]. A value of 1 will cause the trace to be clipped by the operating system (not Igor) to the plot rectange. This has the effect of trimming overhanging markers and thick lines. On Windows, this may not be supported on certain printers or by certain applications when importing. To see the effect, first execute: Make/O w1= {-1,1,-1,1}, w2={1,-1,1,-1}
Display w1,w2
ModifyGraph mode(w1)=3,marker(w1)=42,msize(w1)=9,lsize(w2)=7
ModifyGraph mirror=2,standoff=0
And then execute ModifyGraph plotClip= 1 Fixed Edit menu to enable Select All if a text edit item is active in a panel. Added a new field to the standard new-style button proc for all controls that have an action proc: Int32 eventMod // bitfield of modifiers. See classic window hook docs for MODIFIERS (SetWindow.) This is intended to allow a button proc to know the user requests a contextual menu (eventMod&0x10). The proc can then call PopupContextualMenu. Added "Static Hook Functions" to allow multiple IgorStartOrNewHook functions (or any of the other fixed-named hook functions). Also see Functions (User-defined Hook Functions). The Debugger's Expressions pane no longer requires a double-click to enter an expression: a single click will do. Added optimized code for specific case of wave[var]= in user functions. WARNING: this optimized code is not quite backwards compatible. It does not set up the value of p or x. If this causes problems, there is a workaround (inquire.) The overhead for storing a point in a wave is reduced by about a factor of 5. Added optimized code for for-loops. In 'for(a;b;c)', if the b part is of the form var1<var2 or the c part is of the form var+=1, then optimization is done. The vars have to be local and real. If both optimizations are done, the loop overhead is reduced by a factor of about 4. Changed graphics drawing to be more accurate on screen. Previously, some graphics elements such as line thickness and marker sizes in graphs were an integer multiple of a base size. Now floating point is used followed by rounding. This has the side effect of making 1 Pt lines in graphs two pixels wide when the screen resolution is 120 (Large fonts setting on Windows or ModifyGraph screenres=120.) The new line thickness code can be forced to give results similar to the old mode using SetIgorOption UseOldLineScaling=1 Tweaked arrow markers to work better with thick lines especially on Windows or Mac/Win with eps export. Tweaked bar display to work better when bars are offscale. Mainly for Windows but same code used on Mac now. Previously offscale bars could overwrite the axis under some conditions. New display modes for complex traces: ModifyGraph cmplxMode(trace)= c c defines how complex waves are displayed. 0 is normal (real and imag with imag offset by dx/2), 1 is real only, 2 is imag only, 3 is magnitude, 4 is phase (radians). New function: PixelFromAxisVal(grfNameStr,axNameStr,val) Added option of fractional seconds to cursor info panel via popup menu (if readout is displaying date-time). Adds 1 digit if 10 digit mode, 2 digits if 15 digit mode and no fractional seconds if 5 digit mode. Now allow substructures to be passed as function call parameters. Now support multiple polylines and Beziers in DrawPoly and DrawBezier. Use NaN as separators between segments. (Note: there is no user interface to allow drawing these but once created, they can be edited.) ImageRegistration Added an argument to /BVAL and added (optional) code for users who might want to take advantage of the new W_RegParams wave. Redesigned the Redimension Dialog. Added an Add All button that moves all displayed waves from the Wave Browser at the top into the editing list. Changed the Set All to Match Selected button to set all to whatever change was last made. If you click on a wave name in the left portion of the list, the button becomes Set All to Match <wave name>. Made the dialog run much faster when working on a list with many waves. New function: FunctionInfo returns a string containing keyword-value pairs giving information about a user-defined or external function. The information includes a listing of parameter types. Dialog Wave Browser: Changed meaning of "Creation Order" item to be just like the ordering used in dialog wave lists in Igor Pro 4 and before. That is, it is the order in which waves were added to a data folder; the trick of moving a wave to another data folder and back to change the wave list order, will work as expected with the Creation Order sort option. Added "Creation Date" item to the dialog Wave Browser's sort options. It sorts by true wave creation date, that is, the date and time you first made the wave regardless of where it has been. The PopupMenu control now displays a color table popup when value="*COLORTABLEPOP*" or when value="*COLORTABLEPOPNONAMES*". ControlInfo for such a control returns the name of the color table in S_Value. StringFromList(V_Value-1, CTabList()) also returns the name of the color table. Some dialogs use the new color table popup which provide a visual guide to the colors they use. The ListBox control's columns can be interactively resized by the user if the new userColumnResize keyword's value is non-zero. If userColumnResize is used, the ListBox's recreation macro is not compatible with versions of Igor prior to 5.02. Other new ListBox control keywords are col and hScroll. See the note about hScroll and recreation macros in the ListBox documentation. The ListBox action procedure has 4 new event codes:
See the ListBox documentation for some warnings about the scrolling events (8 and 9). Possible incompatible change: To force Igor to use the old non-queued method: SetIgorOption useControlEventQueue=0 ControlInfo reports more information about ListBox controls: S_columnWidths returns a comma-separated list of column widths in pixels (as a string) and V_startRow returns the current top visible row. The New Graph and Append Trace to Graph dialogs now allow a one-point subrange. Igor's curve fitting operations now interpret a NaN in a mask wave as if it were a zero. That allows you to use the mask wave as an f(z) wave in a graph to prevent the plotting of markers on a trace. Added to the Edit Font Substitution Dialog the ability to view and override the built-in font substitutions (aka "Igor Replacements"). Added complex versions of some functions:
Added new function: Gamma(x) which returns the gamma function of x. Saves you typing "exp(Gammln)". It will return a complex number if given complex input. Added new function gammaInc(a, x [, upperTail]) to calculate the incomplete gamma function for real a >= 0 and real x > 0 (the existing functions gammp and gammq calculate the regularized incomplete gamma function). See gammaInc. Added new code for real Bessel functions. This is code translated from the SLATEC library. The accuracy when compared against Mathematica evaluating to 18 digits, is often but not always better than the old Bessel code accessed using selector=1. It is anywhere from 2 to 5 times faster. Use selector=2 to access this new code. See BessI, BessJ, BessK, BessY. The Help Browser Search Igor Files pane now displays the name of the help topic or subtopic where the target text was found. On Windows this works only for help files compiled by Igor Pro 5 or later. Curve Fit changes:
MatrixOP changes:
MatrixEigenV now has a new branch that supports symmetric matrices. To use the new routines you must specify the /SYM flag. Macintosh: Changed EPSF export suffix to .eps (from .EPSF). Macintosh: Tab will now pass focus to the list part of a dialog wave browser. Macintosh: Improved speed of some wave expressions. Mac OS X only: Changed printer code to request LaserWriter driver 8 compatibility mode. This is necessary if eps graphics are used in the window being printed. The compatibility mode is not available for preview or pdf generation or if the printer is not postscript. This request can be turned off using SetIgorOption WantLW8Compatibility=0. Mac OS X Only: Extended the UseVeclib option for SetIgorOption to include several matrix operations:
Windows: Igor is now compiled with "Improved Floating-Point Consistency". This improves primarily binary-to-decimal conversions, namely printf-related code. Windows: IgorInfo(3)'s IGORFILEVERSION format has changed to accomodate versions whose digits exceed 9: IGORFILEVERSION
Windows: Changed the mode used for shrinking bitmaps on Windows. This mostly affects the quality of page layout onscreen graphics on Windows 2000 and Windows XP. Windows: Added keyboard navigation for dialog wave browsers and their component controls. Windows only: PopupMenu controls no longer pop up a (slowly) scrolling menu. Now all user PopupMenu controls are implemented as (possibly scrolling) combo boxes. BUGS FIXEDStatic constants are now allowed in structure definitions. Fixed a problem where clicking outside a SetVariable in a graph while text editing was active would sometmes create a bogus marquee. The GetFileFolderInfo operation no longer displays an error dialog when the file isn't an executable file. Fixed a problem where a cursor would disappear if a debugger break occured in a cursor hook function. Notebooks saved as part of an experiment with double-quote characters in their titles can now be restored during experiment open without error. Fixed problem where subwindows could be positioned outside their host. Fixed bug where Duplicate would not copy dimension labels if only the -1 index was used. Fixed a bug involving appending to a dimension using wave[r][c]={a,b,c} syntax. Fixed a problem of marquee drawing in wrong window when a user function called via a PopupMenu control creates a new window. Fixed a bug where moving an annotation in subgraph did not cause the page layout containing the host graph to update. Fixed a crash invoving named window hooks, modified procedures and right click in a procedure window. Fixed Extract to do the right thing when dest is same as source. It also had not been honoring the destination data folder. Fixed crash in GetDefaultFontSize and GetDefaultFontStyle when the graph parameter was "" and no graph existed. Also corrected their behavior to return NaN when a named graph didn't exist (as the documentation states) rather than returning the value for the current active graph. Changed function compiler to disallow text waves in numeric expressions. Fixed compile problem with text waves in structures. Now allow /S flag with WAVE and Make as per docs (not needed but allowed). Fixed GetWindow in functions when subwindow syntax is used. SetVariable had not been remembering live setting through recreation macros. Fixed recursion problem involving window hooks and cursormoved events with subwindows. Fixed bug where movie-making would use an active subwindow rather than the entire graph. Changed SetWindow hookcursor to freshen the cursor without the need for the mouse being moved. Replaced all sprintf code used in Igor with code obtained from FreeBSD. Should fix nagging problems of poor high precision results and the occasional off-by-ten result. Fixed marquee selection of controls in subpanels. Fixed compile of statics via modulename#funcname(). Fixed the way static functions are located by Igor. The pre-Igor 5.02 code can be reinstated with SetIgorOption useNewIsUserFunctionCode=num, where num = 0 means use the old (pre-5.02b14) code, =1 means use new code (this is the default), =2 means use new code, but check it against the old code and print bug messages if they're different (sometimes they're supposed to be different: that's the whole point of the change!). Changed lines or lines and markers mode with color as f(z) to better deal with NaNs in the zwave. Fixed bug where axis tags would be in the wrong place when printing or exporting. Fixed grid lines on waterfall y axis. Tweaked EPS's DSC to placate Adobe Distiller. Fixed dependency problem with CustomControl. Restored Igor 4 behavior to strsearch when the searched-for string contained a NUL character (binary 0), needed when determining the length of a 0-terminated string read from a binary file. Browse Waves Dialog: the data units text could include the last part of the Points text for waves with a lot of Points text (primarily multidimensional waves). Fixed a problem with the Recent Experiments and Recent Files menus that could cause a crash on launch under rare circumstances. ImageTransform now copies wave scaling when using the keyword transposeVol. Fixed a bug that caused a crash in image operations when using the /O flag with a source wave that included a wave note. Fixed crash that occurs after opening the Control Properties Dialog for a control other than the ListBox after previously using it on a ListBox. Fixed crash in WinList if a procedure file name exceeded 31 characters. Fixed a bug in ImageAnalyzeParticles which gave inaccurate area for filled particles. The Substitute Font Dialog didn't remember substituted fonts whose font numbers were negative. Fixed a bug in PopupContextualMenu which sometimes resulted in the popup menu popping up in the top left corner of the active window instead of where it should have popped up. MatrixInverse/P fixed a bug that affected double precision waves. ImageLineProfile fixed a bug that affected 3D waves containing a single layer. Fixed Date2Secs(-1,-1,-1) (which returns the offset in seconds from local time to Universal time) to take daylight savings into account. Fixed curve fitting bug: all-at-once functions with held parameters could occasionally halt reporting the the function had returned NaN or INF even though that was not true, and the fit was actually fine. Fixed an obscure bug that could cause a crash on a Japanese system if part of a word in a notebook were formatted different from the rest of the word. This caused a crash in the Search Igor Files dialog if you searched for "gauss" because, in the found text area, the "gauss" part of "gaussian" was displayed in red, thus triggering the bug. Added a workaround for an obscure bug that affected users running on Asian operating systems. If you opened a Macintosh experiment on Windows or vice versa and if the experiment included waves with Asian names, the names would be mangled and you would typically get errors during the experiment load. This was caused by Igor trying to translate between Windows and Macintosh character sets. As a workaround, Igor will now not do any character translation during experiment load if the font controlling the main procedure window is non-Roman. Fixed AppendLayoutObject to return a better error message if object coordinates are out of illegal. Fixed bogus out-of-memory message if you cut the last row of a text wave in a table. Scroll bar in table is now correctly repositioned when you change the change the dimensionality of the waves which causes the horizontal index row to be displayed (2D or higher) or hidden (1D only). Fixed problem with curve fits when the target graph is a subwindow. Caused a crash on Windows. Caused odd results on Macintosh if fitting a 2D function and you select auto trace for the residual. Mac only: Fixed a crash when a waterfall plot window is made too small. Macintosh: Fixed bug in the WaveStats dialog that caused the Range controls to be oddly positioned when the dialog was resized. Macintosh: Fixed crashing bug: with data folders hidden and a very large number of waves, selecting _too many items_ in a popup-style wave browser would crash. Macintosh: The Modify Trace Appearance Dialog's fill pattern menus weren't updating when a trace was selected in the list. Mac OS X: Made a change so that Japanese text is better supported if you choose Japanese as your preferred language in the OS International preferences panel. When you change your language preference from English to Japanese, you must log out and back in order for the change to take full effect. For example, Japanese window titles will be wrong until you log out and back in. Mac OS X: Added a workaround to allow pasting very large amounts of data (> 1 million data points) into a table. This sometimes failed because a Mac OS function that reports the amount of available memory does not work right. Mac OS X: Closing the last graph while it is not the frontmost window no longer crashes Igor. Mac OS X: Prints to the history area of the command window will not appear immediately. Previously there could be a delay because of OS buffering of window contents. This will impact only functions that do lots of prints to the history. The prints will appear smooth instead of jerky. Mac OS X: Fixed an asymptomatic printing-related bug which caused "Attempt to release a printing object without first doing a retain!!!" to be emitted if you had the Console program open while printing from Igor. Mac OS X: Fixed Igor Tips for Graph menu. Item for Frame submenu was missing. Mac OS X: Fixed memory leak that occurred when graphs were updated. Windows: The cursor info popup menu now works with more than 31 traces and cursor styles. Windows: Fixed printf and ReplaceNumberByKey bug that appeared only in previous 5.02 beta versions: printf ".15g", 1e11 would result in something like "0:0000000000" instead of "100000000000". Windows: In the Save File dialog, when interactively entering a name for a file, you can now use any extension by choosing "*.*" as the file type. Windows: Fixed an obscure bug that caused a page layout window to become dysfunctional if you started a print job, activated another application, and then activated Igor, all before the print job was finished. Windows: Fixed a bug that caused the cursor to not be set when working in a text area in a dialog like the Add Annotation or Browse Waves dialogs. Windows: Fixed a bug that caused missing scroll bars in the Annotation Dialog's text tab. Windows: Fixed crash when selecting Redimension Waves from the Data menu. For XOP Programmers: Fixed a bug in Igor's automatic code generation for external operations. This bug is mostly asymptomatic but you should still fix it. Search your XOP source code and replace any occurrence of: #pragma XOP_SET_STRUCT_PACKING with: #include "XOPStructureAlignmentTwoByte.h" Also replace any occurrence of: #pragma XOP_RESET_STRUCT_PACKING with: #include "XOPStructureAlignmentReset.h" Now verify that each #include "XOPStructureAlignmentTwoByte.h" is balanced by a corresponding #include "XOPStructureAlignmentReset.h". ExtensionsFixed a a bug in Gizmo that could cause a crash if a user specified marker type for scatter plots included an unspecified user defined object. Fixed a bug in Gizmo that produced wrong scaling in voxelgrams. Voxelgram point size is now saved in the recreation macro. Gizmo now supports 7 new marker types for scatter plots. Changed Gizmo's default tickmark length. Fixed a bug in Data Browser Plot pane that affected plotting of waves after the user selected a 3D complex wave from the main list. Also fixed a bug that affected histogram plots of large number of points. Data Browser now saves aspect ratio preference. Data Browser now allows you to add user defined buttons. See Managing User Buttons. Added a new keyword to ModifyBrowser: echoCommands to allow you to determine if Data Browser generated commands are printed in the history. If you select multiple waves and choose New Image in the Data Browser's contextual menu you get the equivalent of executing NewImage on each wave in the list. Fixed a bug in Windows version of the IGOR Surface Plotter which did not allow saving high resolution TIFF files. Also fixed a printing problem in the Windows version. Windows: Fixed a bug in the HDF Loader XOP that caused it to incorrectly load little-endian, signed 16-bit SDS data. Changed selection behavior of the trace list in the Reorder Traces dialog. Now if you click and drag, the clicked item is dragged to a new place in the list. This restores behavior that was changed for no known reason in Igor Pro 5.01. Fixed MLLoadWave/T flag (make table) which was broken in MLLoadWave 5.50. Mac OS X: Created a new version of MLLoadWave for Mac OS X. It is named MLLoadWave_OSX.xop and it is capable of loading version 5 Matlab MAT-files but only if you do some configuration. See the MLLoadWave Help file for details. It is now supported to put an alias (Macintosh) or shortcut (Windows) to an XOP help file where the XOP help file itself would normally be found. The name of the alias or shortcut must match the name of the XOP help file exactly. This will be of interest to XOP programmers only. Macintosh: XLLoadWave on Macintosh can now handle non-Roman text such as Japanese. See Japanese and Other Non-Roman Text. The Windows version of XLLoadWave has supported this for a long time. Graphical Slicer Mac OS X: fixed a bug that could cause a crash when deselecting an active slice. ProceduresUpdated PieChart.ipf to no longer create and use global waves in the current data folder. Added default fill colors and simple labelling options. Added "Pie Chart" as an option in the Windows New->Packages submenu. Waterfall.ipf now locks the size of the New Waterfall Plot panel. Updated Multi-Peak Fit to version 1.41. See the file or the Multi-peak fit.pxp example experiment for details. Added the procedure 3DWaveDisplay.ipf which allows you to display a 3D wave, to save orthogonal slices and to crop the wave. Changed All IP Procedures.ipf to include a menu entry for adding a slider to images of 3D and 4D waves as well as a menu entry for invoking the 3DWaveDisplay procedure. Modified the Image Threshold Panel procedure to support operating on any layer of a 3D wave when the wave is displayed in a window using the slider procedure. Added Gizmo color range (0-1) to WMColorPicker. Added new package Function Grapher. See the Packages menu in the Analysis menu; load the package to build the Function Grapher panel; you can select Analysis->Function Grapher->Function Grapher Help. Added a new procedure file Walsh1D.ipf that contains the code for performing 1D Walsh transforms. Added a new procedure file colorSpaceConversions.ipf that contains functions for converting between color spaces. Added new procedure file MatrixFromTable.ipf. Makes a matrix wave from a rectangular selection in a table containing multiple waves. Makes a 1D wave from a selected row in a table. Enter #include <MatrixFromTable> in your procedure window to use it. Fixed XYZtoMatrix to properly determine the x and y ranges of the x and y triplet columns. Added new procedure file HistogramUtilities.ipf. It contains functions (and menu items) to adjust the X scaling of a histogram result to center the X values, or to make a companion X wave with centered X values. It also has a function (and menu item) to make a sqrt(N) wave for use as a weighting wave when doing a curve fit to histogram results. Enter "#include <HistogramUtilities> in your procedure window to use it. New version of Global Fit procedure. So different it is shipping under a new name, Global Fit 2.ipf. This new version is now what you get if you select Analysis->Packages->Global Fit. Adds ability to fit to multiple fit functions in one global analysis. Ability to link fit coefficients arbitrarily, allowing different fit functions to share parameters, or to have a coefficient global with respect to a subset of data sets. Completely new user interface. New example experiment. Axis Utilities.ipf: corrected default initialization syntax in AxisLabelText(). Revised ProcedureBrowser.ipf to display lines of context around the selected function using the new optional linesOfContext parameter of ProcedureText. Fixed bug in PB_CreateNotebook when the List button was pushed when #include "file" only was selected. New GIS Utilities procedures to load and manipulate GIS data. Located under Data Manipulation. See the Igor Pro GIS Utilities help file for details. For a short demo, see the GIS Utilities Demo.pxp in the Examples:Feature Demos: folder. ExamplesNew experiment for testing suitability of fonts for EPS font embedding: TrueType Outlines.pxp in the Testing & Misc folder. New example experiment for the new Global Fit 2 procedure. See the File menu, Example Experiments->Curve Fitting->Global Fit Demo. Added PCADemo.pxp in Examples:Analysis:PCADemo.pxp. The experiment provides an example for computing PC using the built-in PCA operation and a procedure to calculate the Varimax rotation of components. Added SpectralDeconvolutionDemo.pxp in Examples:Analysis:SpectralDeconvolutionDemo.pxp. The experiment provides procedures and examples of spectral deconvolution based on algorithm by P.A. Jansson. Fixed egregious errors in the response graphs in the Smooth Operation Responses example. Added more tests to matrixOPValidation.pxp. New GIS Utilities Demo.pxp to demonstrate the basics of the new GIS Utilities procedures. Experiment is in the Feature Demos folder.
Update 5.01Igor ApplicationCHANGED FEATURESChanged feature - trace clipping: Using ModifyGraph axisClip(axName)=2, you can allow graph traces to extend outside the plot rectange to the limits of the graph area. Warning - incompatible change: Previously, embedded graphs and tables in page layouts were measured relative to the margins but all other layout objects were positioned relative to the paper edges. This caused a shift of subwindows relative to other objects when page setup conditions were changed. Now subwindows also measure relative to the paper edges. This change will require subwindows in page layouts created in 5.00 to be resized when opened in 5.01. It is possible to cause Igor to temporarily revert to the old method by executing: SetIgorOption UseOldLayoutCoords=1 Also, new subgraphs in layouts use absolute rather than relative mode by default. ModifyGraph has a new keyword, gfMult, that adds an adjustment to the default font and marker sizes. The ModifyGraph gfSize and gmSize keywords now accept vaues of -1 to indicate that a subgraph should use the font size and marker size of its parent. The default font of a subgraph is now obtained from its parent. Changed the default target for control operations (i.e., when no /W is present) to use the base window if a child graph happens to be active. This is a bit more lenient and allows for more sloppy programming. Also, when a base graph is active but contains a child panel, then the first panel found will be the default target. Under these conditions, you shouldn't put controls in the base graph. Tip: To convert a graph containing controls in the control bar area to one where the controls are in a subpanel, first select all the controls and choose cut. Then drag the control bar to the top and then again drag down the control bar. This will automatically create a panel. With the panel active, choose Paste from the Edit menu Added a user-level font substitution facility to Igor that kicks in when a font is specified in a command is not installed. A Substitute Font dialog allows you to choose a temporary or permanent replacement font. In the Misc menu a new Font Substitutions item brings up a dialog that edits a list of such substitutions. A text file font substitution table is maintained in the "Igor5 Font Substitutions" text file in Igor's preferences folder. The file format is: <name of missing font to replace> = <name of font to use instead> one entry per line. For example: Palatino=New Times Roman spaces or tabs are allowed around the equals sign. Previously, when used in a user function, SetVariable with the value keyword, Checkbox with the variable keyword and SetFormula all required the actual full path to a variable. Now these can use NVAR, SVAR and WAVE reference variables including those in structures. When duplicating a control, the automatic naming tries harder to make reasonable numeric suffixes. Previously after a series of duplicates, you could end up with names like Button001010101. A new flag, /PICT=pictName, was added to SavePICT to allow saving a named picture rather than the target window. Changed feature - window hooks and mousemoved over cursors: Previously, if the mouse moved over a cursor, the mousemoved event was not sent to window hooks. Now they are. The cursor name is reported in unnamed hooks via the CURSOR:<name>; key-value pair where <name> is the cursor name (A or B) or '-' if not over a cursor. With named hooks, the cursor name is reported in the cursorName field. See SetWindow. Changed/New feature - user-defined control font issues: On Windows, removed an internal expansion factor for control font sizes that caused a missmatch with draw text in panels. This will cause some fonts to shrink but should match the system sizes. On Macintosh, Igor now gets the default font size from operating system calls rather than being hardwired. You can now override default font using the new DefaultGuiFont operation. Changed feature - Print operation: Previously, the Print command with a wave would emit a CR before the wave data was printed. Now the CR is produced only if the results line is non-blank. Also, cleaned up handling of CR and spaces in general. You can now specify that an annotation such as a TextBox or Legend be exterior but not push the margins. Use /E=2 in place of /E or /E=1. In the Annotation dialog /E=2 corresponds to the new "Adjust Margins" checkbox being unchecked. Changed feature: shift key now constrains annotation drags. Changed feature: Window hook functions can now be static using modulename#funcname syntax. Changed feature - AxisInfo: Added new fields: ISTFREE:f;MASTERAXIS:mname;HOOK:hname; where f is non-zero if axis is truly free (i.e., cretated via NewFreeAxis.) mname is the name set by ModifyFreeAxis master= mname and hname is from ModifyFreeAxis hook=hname. Also added in the recreation part are axisOnTop, tickRGB (but only if set), axisEnab and gridEnab. When you select Redimension Waves or Redimension <wave name> from the contextual menus in a table, the Redimension dialog now pre-selects the appropriate waves. ImageMorphology now supports a new 3x3 square structure element using /E=6. ImageRegistration Added new output wave W_RegParams that conatins 20 double precision registration parameters. The Redimension Dialog has been redesigned to make it easier to select many waves to work on. Added Igor Pro 5 flow control and miscellaneous programming keywords to the Help Browser Command Help pane. WaveStats has a new /W flag that lets you save results to a wave even for real valued waves and there are two new entries in M_WaveStats corresponding to V_startRow and V_endRow. The FuncFit operation now understands user-defined fit function names in Module#Function format. For details on module names, see ModuleName. BUGS FIXEDBug fix: Previously, option-click and drag in the plot area of an embedded graph would beep and do nothing (rather than offset the axes). Now, although the desired animation of the plot area being dragged is not done, the axes are properly offset. Bug fix: compiled ModifyGraph using f(z) keywords and subrange now works. Bug fix: Exporting from a pagelayout would sometimes include the origin in the enclosing rectangle. Bug fix: NewFreeAxis/L in a user function would act as if /R was used. Fixed a crash involving dependencies and named window hooks that could occur while editing procedures. Eliminated space before the title of a PopupMenu control which prevented allignment with other control types. Fixed problem with TabControls that could cause a graph background to become gray. Fixed contextual click on guide in subwindow layout mode to not include graph guides when the host is not a graph. Also included an information item for the guide. Fixed vary rare color bug in graphs with bars containing more than 197 bars and using f(z) mode. Bug fix: GetWindow's hook(name) did not work and gave an error. Fixed crash in Concatenate when dest is also in source Fixed rare problem where external text box could affect window size even when margins were fixed. Log axes, when in non-exponential mode, now honor the thousands separator setting (ModifyGraph useTSep(axisname)=1) Bug fix: Now window hook functions are supressed during kill to avoid possilble recursion crash. Crash fix: Prevented use of uninitialized pass-by-reference optional variables. Bug fix: Controls with multiple named userdata could lose data when going through a recreation macro when two userData keywords were used on one line. Now up to 10 may be used on a single line. Potential bug fix: It has always been possible to create windows with names that should not have been allowed, such as "Macro", "Window", "Constant" etc. Windows with these names created errors when an experiment is loaded. Now, these names do not cause problems (but are not recommended for use.) Fixed a bug that caused Igor to fail to recognize stationery experiment files, also known as template experiment files. ImageTransform getPlane now checks the /P flag specification subject to the /PTYP flag. ImageInterpolate Fixed a computational instability around the edge of the data (Windows). Corrected /U factor for both Macintosh and Windows. Fixed bug in the New Fit Function dialog in which the tab key failed to advance editing to the next field in the fit coefficient list. Fixed a possible crash in any dialog that used the Result Chooser. Possible crash if a dialog was viewed, then the same dialog viewed in a new experiment. Changed selection behavior of (among others) the trace list in the Reorder Traces dialog. Now if you click and drag, you get an extended selection. Previously, a click and drag resulted in dragging a single trace. This was claimed to have been changed during beta testing and no one noticed that I forgot to turn it on in the shipping version! Fixed a bug in the New Graph dialog- entering a subrange of [i,j][0] acted like you entered [i,j][]. Various dialogs have been modified to restore pre-selection of waves selected in a table when the From Target checkbox is checked. This was a feature in version 4, but lost in the dialog re-write for version 5. Dialogs fixed:
Fixed some resource leaks that had the potential to cause problems after opening and closing dialogs a number of times:
The Sort Topics checkbox in the Help Browser improperly set the Show Topics From popup menu to All Help Files. Fixed a bug that would cause auto-guess for built-in curve fitting functions to fail if the Y range of data was less than 1e-20. Fixed a problem in the LoadData operation that caused an error if the name of the file from which you were loading data exceeded 31 characters. Fixed a problem in Export Graphics for page layouts when exporting as Hi Res PICT (Macintosh) or EMF (Windows). High resolution was not being used for embedded graphs and tables. On Macintosh, high resolution PICT was not recognized when printing a picture from a page layout. Fixed a hang that could occur if you converted embedded subwindows to page layout objects and then converted them back to embedded subwindows. WINDOWS: GetWindow kwFrameInner wsize now correctly returns the frame client area in points, not pixels. GetWindow also supports a new wsizeDC parameter. WINDOWS: Fixed defective TIFF preview in exported EPS files. WINDOWS: Fixed a bug that caused an error when you opened an experiment which referenced a minimized procedure window whose title exceeded 31 characters. There is still a minor problem. If you save an experiment with a minimized procedure window whose title exceeds 40 characters, it will not be minimized when you reopen the experiment. WINDOWS: If you used a table selection to pre-set the InsertPoints or DeletePoints dialog, the Do It button was not enabled. WINDOWS: Fixed a bug that caused the Path Menu at the top of the Dialog Wave Browser to fail to show its drop-down list when running under a Japanese version of Windows. WINDOWS: Fixed a bug in the dialog Wave Browser that caused the Curve Fit dialog to forget selected waves when the Wave Browser is in Hide Data Folders mode. MAC OS X: Fixed a problem that caused Igor to sometimes fail to find the help file associated with a Mach XOP. MAC OS X: the zoom button in editable text areas (such as the text entry area in the Add Annotation dialog) is now colored when the edit area has the focus. MAC OS X: Made a change to the way Igor determines a file's type. If the file has no valid Macintosh file type property (which is the case with files created by Apple's software!), Igor will try to determine the file type from the file name extension. MAC OS X: Curve fit with constraints have been made to use the veclib framework, possibly resulting in a doubling of speed depending on the problem. If you wish to disable the use of veclib, use the command SetIgorOption UseVeclib=0. This command gives a syntax error on Windows and on Mac OS 9. MAC OS X: If Igor was hidden, it would not find the target window so some commands would return an error. Macintosh: Font names can now be 39 (instead of 31) characters long. Macintosh: fixed a bug that resulted in a Bug Message, "Error removing dispatch event handler" when any dialog with a popup Wave Browser was closed. The bug was harmless but annoying. Macintosh: When Find Selection is configured to used control-shift-H, now holding down the shift key actually does find the selection searching in the backwards direction, instead of doing nothing. Macintosh: Fixed a bug in our source code for LAPACK that caused severe performance problems with certain double-precision matrix operations. Not all matrix operations use the LAPACK library; operations that are affected include MatrixEigenV, MatrixLinearSolve, MatrixLLS, MatrixSchur and MatrixSVD when the input matrices are double-precision waves. Curve fitting with constraints is also affected. The performance improvement may be as much as a few *hundred* times. ExtensionsVDT and VDT2, which do serial I/O, now work on Mac OS X. VDT2 is recommended for new development. Please see the VDT Help or VDT2 Help file for some caveats about use on Mac OS X. The Windows version of the HDFLoader XOP has been fixed to accept Macintosh-style paths. The Windows version of the Data Browser now correctly updates the wavestats info button after it is automatically toggled off when the user selects a text wave. WINDOWS: Fixed a bug in GBLoadWave which caused VAX binary files to be loaded incorrectly on Windows only. ProceduresMulti-peak fitting 1.4.ipf: Fixed problem with individual peak trace widths for Lorentzian and Voigt. Axis Utilities.ipf function AxisLabelText() has a new optional variable. See the file comments for more information. The Transform Axis package has been updated. The new version, in the file Transform Axis 1.2.ipf, adds the ability to add a trace to a transform axis. This new version adds other improvements to the package as well. See the Transform Axis help file in WaveMetrics Procedures:Graphing. Changed Global Fit package to separate the user interface from the code that does the work. It is now possible to call Global Fit from your own Igor code, through the DoGlobalFit() function. Also added a Global Fit help file (where you will find a description of DoGlobalFit()). Changed Image Line Profile.ipf and ImageSlider.ipf so that they can work together when displaying an image from a 3D stack. ExamplesExperiments updated to use Igor5 features: FIFO Chart Demo FM.pxp, Live mode.pxp, FIFO File Parse.pxp and Monster Graph.pxp. Also all the sound input demos were changed to ensure they work under OS X. New example experiment: Testing & Misc:All Controls Demo.pxp ImageRegistrationDemo.pxp Added an argument to /BVAL and added (optional) code for users who might want to take advantage of the new W_RegParams wave. Added an example showing how to use AppleScript to send a graph from Igor to Microsoft Word on Macintosh. See "Igor Pro Folder:Miscellaneous:AppleScript:". Thanks to Dan Friedman of NREL for this example. |
| WaveMetrics Ȩ | Á¦Ç° | °¡°Ý | ÁÖ¹® | µ¥¸ð ´Ù¿î·Îµå | ´º½º | ±â¼ú Áö¿ø | »ç¿ëÀÚ ¸®¼Ò½º | ¹®ÀÇ |
|
||||||