Older Newer
Sat, 14 Dec 2019 06:02:45 . . . . SyneRyder [typo]


Changes by last author:

Added:
Release notes for FM Beta 8.5:

------------------------------------------------------------------------------

* The ForEveryTile buffer size was increased from 256K to 512K.

* The literal pool was doubled, so that you can use more floating-point constants in your code.

* The FM title bar now has no theme on first invocation. If you activate the dialog theme in your filter code with setDialogTheme(1) or "Dialog: Theme=on", the title bar will not lose its theme anymore like in previous FM versions.

* Activating the dialog theme will now also activate the theme for all controls unless you specify that a control should not have a theme, e.g. ctl(0):"Control 0",theme=off

* You can now use setCtlTheme(n,-1) or the control attribute "theme=default" to make a control use the same theme as the dialog. This is the default setting now.

* Three new event constant replace old event constants: FME_CHANGED replaces FME_VALUECHANGED, FME_SETFOCUS replaces FME_SETEDITFOCUS and FME_KILLFOCUS replaces FME_KILLEDITFOCUS. For backward compatibility the old event constants are still valid and work.

* The setPixel functions do not produce a crash anymore if you apply them thousands of times.

* The new setPenWidth() function lets you change the broadness of drawn lines.

* setThinLineAA() and setThinEllipseAA() draw anti-aliased lines and ellipses.

* (startSetPixelSS)?(n, factor) and (endSetPixelSS)?(n) let you do super sampling for smoother results. The second parameter in (startSetPixelSS)?() is the factor by which the canvas will be larger.

* (startSetPixelBuffer)?(width, height) lets you draw on an internal buffer. So you do not need any controls to be present, so you can even use after the user pressed OK on the plugin dialog. Use the getPixel(x,y) function to read out the buffer. (endSetPixelBuffer)?() destroys the buffer.

* getSetPixelWidth() and getSetPixelHeight() return the size of the canvas or buffer. They only work if used after startSetPixel(), (startSetPixelSS)?() or (startSetPixelBuffer)?().

* New TAB control.

** Control Value: The selected tab sheet.

** Events: FME_CLICKED.

** Styles: scrollopposite, bottom, right, multiselect, flatbuttons, forceiconleft, forcelabelleft, hottrack, vertical, tabs, buttons, singleline,multiline, rightjustify, fixedwidth, raggedright, focusonbuttondown, ownerdrawfixed, tooltips, focusnever (see http://msdn2.microsoft.com/en-us/library/bb760549.aspx).

* New EDIT control.

** Control Value: Not used.

** Events: FME_CHANGED, FME_SETFOCUS, FME_KILLFOCUS.

** Styles: left, center, right, multiline, uppercase, lowercase, password, autovscroll, autohscroll, nohidesel, oemconvert, readonly, wantreturn, number (see http://msdn2.microsoft.com/en-us/library/bb775464.aspx).

* New SLIDER control (consisting of a label, trackbar and edit box)

** Events: like standard control: FME_CHANGED, FME_SETFOCUS (with mouseover style)

** Styles: like trackbar control

* The edit box of the standard controls (and sliders) does not have a black border by default anymore. You can get it back by adding "editstyle=border" to the control definition. If you do that, the top of the border will not be cut off like in previous FM versions under Windows XP. However, better use "editstyleex=staticedge" or "editstyleex=clientedge" for a more modern look.

* The new setCtlBuddyStyle(), (setCtlBuddyStyleEx)?(), clearCtlBuddyStyle() and (clearCtlBuddyStyleEx)?() functions were added for changing the style of the labels and edit boxes of standard and slider controls. Use 1 as the middle parameter to change the edit box and 0 to change the label.

* The trackbar does not have a dark grey background color by default anymore

* The color of the list box is now set automatically to avoid redraw problems that occurred if you did not explicitly set the color in previous versions

* New getSysColor() function for grabbing a system color. You can use the COLOR constants for with it, e.g. COLOR_BTNFACE.

* A fourth t-buffer was added

* t3get() and t3set() did not work previously. They were fixed.

* iget() supports the third and fourth t-buffer now

* src() previously returned zero instead of 32768 for the alpha values of 16bit images whose coordinates were outside the image borders. This was fixed.

* New (setCtlStyle)?(), (setCtlStyleEx)?(), (clearCtlStyle)?() and (clearCtlStyleEx)?() functions

* setDialogMinMax() works correctly for negative parameters now

* (setCtlItemTop)?() and (getCtlItemTop)?() for setting and getting the top visible item in a combo box or list box

* (setCtlItemText)?() and getCtlItemText() for setting and getting the text of a combo box, list box or tab control item

* deleteCtlItem() for deleting an item of a combo box, list box or tab control

* deleteCtlItems() for deleting all items of a combo box, list box or tab control

* (fillDir)?() fills a combo box or list box with file and folder names

* getCtlPos() now also supports the preview.

* The FME_DRAWITEM event now works for the preview. To activate it you need to add "ctl(CTL_PREVIEW):preview(drawitem)" at the top or "setCtlProperties(CTL_PREVIEW,CTP_DRAWITEM);" somewhere.

* New copyResToArray(restype, resname, arraynr) function for copying a file resource to an array. Alternatively getResAddress(restype, resname) returns a pointer to the specified file resource and getResSize(restype, resname) returns the size of the file resource.

* The new checkDialogFocus() returns true if the FM dialog is the active window and false if it isn't

* The precision for FME_MOUSEOVER and FME_MOUSEMOVE events was increased form 250 ms to 20 ms. For the preview these events are and always were triggered instantly.

* New FME_INIT event is triggered before the FM dialog is displayed. To activate this event you need to use "Dialog: initevent" or setDialogEvent(1). You can use the previous value to check if the plugin is executed for the first time in the host. In that case previous==false.

* New FME_CANCEL event is triggered when the user exits the plugin without applying the effect. It also works for the ESC key and the x button in the titlebar. To activate this event you need to use "Dialog: cancelevent" or setDialogEvent(2).

* To activate the new FME_KEYDOWN and FME_KEYUP event you need use "Dialog: keyevents" or setDialogEvent(4) in your code. The n value of the events contains the VK code of the pressed key. If you want to check for Shift, Ctrl, Alt etc. you need to use getAsyncKeyStateF().

* The new setDialogEvent() functions lets you activate the FME_INIT, FME_CANCEL and FME_KEYDOWN/FME_KEYUP events. To activate these events use clearDialogEvent(). Use setDialogEvent(7) to activate all events.

* Tool tips work again under Windows 2000/XP/Vista.

* allocArray() and allocArrayPad now by default allocate memory from Photoshop. Previously they allocated memory from Windows, but if Photoshop had grabbed large portions of the available memory, FM was not able to access it and failed because not enough memory was available to it. If Photoshop cannot provide the necessary memory, FM tries to get it from Windows. (So it is best if you recommend to the users of your plugins to set the Photoshop Memory Usage preference setting to a high value.) If FM is not running in Photoshop, the memory allocation will still be done by the host, but that usually means that the memory will be allocated from Windows, because most hosts do not have their own memory management system like Photoshop.

* You can switch back to the old behavior (Window allocation) by using set_array_mode(0). This is necessary if you want to have reallocatable arrays, because Photoshop allocation does not allow reallocation. set_array_mode(1) switches back to Photoshop allocation.

* The t-buffers are allocated by Photoshop now, which will increase performance in Photoshop.

* The following floating point constants were added: M_E, M_LOG2E, M_LOG10E, M_LN2, M_LN10, M_PI, M_PI_2, M_PI_4, M_1_PI, M_2_PI, M_2_SQRTPI, M_SQRT2, M_SQRT1_2