## History of Changes in Version 3.x

Check the Migration Guide for a summary of the important changes and how to proceed when migrating from version 2.x to version 3.x.

### SVN (03/Nov/2022)

- New: EXTRABOXid attribute for the IupFlatTabs.
- New: SELECTED attribute for IupFlatButton.
- New: SCROLLVISIBLE attribute for IupList, IupTree, IupText and IupCanvas, in Windows.
- Changed: iuplua_close will now destroy all dialogs and all elements that have names that where created with the same Lua context.
- Changed: behavior of LDESTROY_CB callback to be called after the element was detached and unmapped.
- Fixed: key mapping for = virtual key in Windows when + is in the same key.
- Fixed: VALUE attribute for IupFlatButton when TOGGLE=Yes and IupFlatToggle.
- Fixed: VALUECHANGING_CB callback not called when value was changed using the keyboard in IupFlatVal.
- Fixed: ACTIVE attribute in IupFlatVal.
- Fixed: MOUSEBUTTON global attribute when 'W' is used in button with a state=-1 in Windows.
- Fixed: support for IupDatePick, IupCalendar and IupThread in LEDC application.
- Fixed: IupSetClassDefaultAttribute function. Thanks to D. Cravey.
- Fixed: IupFlatToggle initialization when inside a IupRadio.

### Version 3.30 (30/Jul/2020)

- New: PSCOLOR and TEXTPSCOLOR attributes for IupFlatTree and IupFlatList.
- New: WYSIWYG HTML editor support for IupWebBrowser. See EDITABLE attribute documentation.
- New: SHOWNOFOCUS attribute for IupDialog.
- New: SHOWCROSSHAIR attribute for IupPlot.
- New: SCROLLWIDTHTRACKING attribute for IupScintilla.
- New: EXTRATEXTid and EXTRATEXTWIDTH attributes for IupFlatTree. Thanks to M. Voznesenskiy.
- Changed: updated TUIO reference implementation from GitHub.
- Changed: pre-compiled binaries of the tools executables are now built with Visual C++ 15 (Visual Studio 2019) and they are NOT compatible with Windows XP nor Windows Vista, only with Windows 7, 8 and 10. Although they can still be built from source to run on Windows XP/Vista.
- Fixed: crash when list is empty in IupFlatList.
- Fixed: FLATSCROLLBAR in IupFlatList and IupFlatTree.
- Fixed: extra functions for IupFlatTree.
- Fixed: Fixed show stock images in IupVisualLED.
- Fixed: highlight feedback in IupFlatButton.
- Fixed: TOTALCHILDCOUNT in IupFlatTree. Thanks to Михаил В.
- Fixed: drawing of vertical guide lines in IupFlatTree.
- Fixed: scrollbar behavior when wheel is moved in an empty scrollbar. Affects all scrollbar and flat scrollbar clients.
- Fixed: node title editing must terminate when scrollbars are moved in IupFlatTree. Fixed node title editing when FLATSCROLLBAR=Yes.
- Fixed: MARKEDNODES attributes when removing the selection of nodes in IupFlatTree.
- Fixed: node size when IMAGE is set to an invalid handle in IupFlatTree.
- Fixed: K_ANY processing in IupFlatList and IupDetachBox.
- Fixed: crash when tree is empty in IupFlatTree.
- Fixed: IupMessage and IupMessageDlg when PARENTDIALOG is NULL in Windows.
- Fixed: missing NOCHANGEDIR, SHOWHIDDEN and DIRECTORY attributes for IupFileDlg when DIALOGTYPE = "DIR" and using the IupNewFileDlgOpen library.
- Fixed: TOUCH_CB callback id parameter in Windows. Thanks to R. Vilela.
- Fixed: IupClassInfoDialog help url for a few controls. Thanks to C. Blüggel.
- Fixed: FORMATDATASTRING attribute in IupClipboard.
- Fixed: ITEMTIPid attribute in IupFlatList.
- Fixed: POSTMESSAGE_CB callback registration.
- Fixed: Esc key processing when ACTION callback is defined in IupText on Windows.

### Version 3.29 (18/May/2020)

- New: IUP_LEFTPARENT, IUP_RIGHTPARENT, IUP_TOPPARENT and IUP_BOTTOMPARENT position options for IupPopup and IupShowXY.
- New: IupFlatTree control that behaves as a IupTree, but with more control over its parameters.
- New: FOCUSFGCOLOR attribute for IupMatrixList.
- New: EXECUTEBRANCH_CB callback for IupTree.
- New: CSPACING attribute where SPACING is available (IupFlatButton, IupDropButton, IupFlatLabel, IupFlatList, IupFlatToggle, IupFlatTree, IupButton, IupList, IupTree, IupGLLabel).
- New: CPADDING attribute where PADDING is available (IupFlatButton, IupDropButton, IupFlatLabel, IupFlatList, IupFlatToggle, IupButton, IupGLLabel, IupGLText, IupGauge, IupText, IupGLFrame, IupGLProgressBar).
- New: improved support for adding new controls in IupLayoutDialog. New toolbar for new controls, visible only from IupVisualLED.
- New: Reset Value, Properties, Show Auto Names and Check Handles for global names in IupGlobalsDialog.
- New: FOCUSSELECT attribute in IupColorbar.
- New: image editor for IupVisualLED.
- New: DSPROPERTIESVALIDATE_CB and PROPERTIESVALIDATE_CB callbacks for IupPlot.
- New: DS_SELECTED attribute for IupPlot.
- New: FORMATDATASTRING attribute for IupClipboard.
- New: MENUITEMVALUES attribute for IupPlot.
- Changed: TABSPADDING attribute default value changed to "6x4".
- Changed: toolbar in IupScintillaDlg to include word wrap, show white spaces and show end of lines buttons.
- Changed: the minimum resulted size when images are automatically resized is now 24 pixels height.
- Changed: removed IupRefreshChildren limitation for a mapped element.
- Changed: PADDING attribute to accept "DEFAULTBUTTONPADDING" as value, the global attribute with this name will be used instead. Affects IupButton, IupToggle, IupFlatButton, IupFlatToggle, and IupDropButton.
- Changed: maxsize parameter in IupGetText to accept 0 (maxisize will be the current lenght) or -1 (the dialog will be read-only).
- Changed: all code exports were uniformed among IupView, IupLayoutDialog and IupVisualLED. Images are now exported in separate functions in C and Lua. Names with reserved characters were replaced with '_'.
- Fixed: IupSaveImageAsText to save C and Lua images inside a function.
- Fixed: support for mouse wheel in IupFlatVal.
- Fixed: highlight feedback when mouse is pressed and moved outside the control for IupFlatButton, IupFlatToggle and IupDropButton.
- Fixed: EXTFILTER, FILTERUSED, VALUE and MULTIVALUE in IupFileDlg in Windows when using IupNewFileDlgOpen.
- Fixed: IupGLText editing in GTK.
- Fixed: FITTOSIZE and FITTOTEXT affecting redraw when set inside RESIZEMATRIX_CB in IupMatrix.
- Fixed: TITLE attribute in IupMatrixList.
- Fixed: font getting lost in IupMatrix. when the element is unmapped and mapped again.
- Fixed: export for C, Lua or LED for the IupNormalizer, IupAnimatedLabel and IupDropButton controls. Used in IupLayoutDialog and IupVisualLED.
- Fixed: VALUE attribute in IupFlatToggle.
- Fixed: View/Toolbar and View/Statusbar menu items in IupScitillaDlg.
- Fixed: STATE attribute return value for empty branches in IupTree on GTK.
- Fixed: CLIENTSIZE attribute return value for IupCbox, IupParamBox and IupZbox when width and height are 0.
- Fixed: bar position when element is bigger than the bar size in IupFlatSeparator.
- Fixed: memory leak in FONT attribute in GTK. Thanks to T. Moore.
- Fixed: NORMALIZERGROUP attribute that was adding elements twice to the normalizer.
- Fixed: RASTERSIZE attribute for IupImage*.
- Fixed: IDVALUE attribute registration for IupImage.
- Fixed: selection when SELECT_CB is not defined in IupColorbar.
- Fixed: TEXTAVAILABLE attribute for IupClipboard in Windows when text is Unicode.

### Version 3.28 (13/Dec/2019)

- New: IupVisualLED application is a IDE for editing and testing LED files, with capacity of visual editing a dialog layout.
- New: IupFlatVal control that behaves as a IupVal, but with more control over its parameters.
- New: support for LED lexer in IupScintilla.
- New: BACKCOLOR attribute for IupGauge.
- New: FRAMEVERTCOLORL:* and FRAMEHORIZCOLOR*:C attribute variations added to IupMatrix.
- New: MAXIMIZEATPARENT attribute for IupDialog on Windows.
- New: XTICKFORMATNUMBER_CB and YTICKFORMATNUMBER_CB callbacks for IupPlot.
- New: LOADRTF and SAVERTF attributes for IupText in Windows.
- New: TASKBARBUTTON attribute for IupDialog in Windows.
- New: CUSTOMFRAMESIMULATE attribute for IupDialog.
- New: PROCESSWINDOWSGHOSTING global attribute in Windows.
- New: APP_SYSTEMPATH attribute for IupConfig to handle an native location for application configuration files.
- New: Added the CMake, Android, Cocoa, CocoaTouch and Emscripten contributions from Eric Wing & Chris Matzenbach to the SVN hoping more people can notice them and also contribute. They are still incomplete, help is needed.
- New: support for IUP*_API macro for all exported functions in a library. IUP*_SDK_API is used to mark the Internal SDK exported functions. This is experimental and only 4 libraries were changed: iup, iuplua, iupweb and iupluaweb.
- New: LOADFILE_CB and SAVEFILE_CB callbacks for IupScintilaDlg.
- New: IupImageGetHandle function that returns an IupImage handle from a name.
- New: IupPostMessage function and POSTMESSAGE_CB callback for all elements.
- New: ENTRY_POINT and EXIT_CB global callbacks.
- New: CUSTOMQUITMESSAGE global attribute in Windows.
- New: Debian packages by Matthew Kennedy in the Contributions page.
- New: Common Lisp Bindings by Matthew Kennedy in the Contributions page.
- New: IupThread resource element to handle simple threads.
- New: support for IupList or IupFlatList in IupConfig recent file list.
- New: CHANGECASE attribute for IupText that supports Latin-1 encoding and does not depends on current locale.
- New: SELECTEDNOTIFY attribute for IupFlatToggle when inside a radio.
- New: IupVersionShow function that shows an IUP version information dialog.
- New: PROJECTEXT and OPENPROJECT attributes for IupScintillaDlg.
- New: IupClassInfoDialog pre-defined dialog for developers.
- New: SHOWDROPDOWN attribute for IupDatePick.
- New: WHEELDROPFOCUS attribute for IupCanvas. Set to YES in IupScrollBox and IupFlatScrollBox.
- New: ORIENTATION read-only attribute for IupVbox and IupHbox.
- New: support for drag & drop controls in IupLayoutDialog. Improved Paste and New options. New Cut item in context menu.
- New: ATTRIBCHANGED_CB and LAYOUTCHANGED_CB callbacks for IupLayoutDialog.
- New: POPUPALIGN attribute for IupMenu when used in IupPopup.
- Changed: containers can now be empty on LED.
- Changed: default COLOR for IupSbox to match IupSplit.
- Changed: default FRAMECOLOR attribute to "160 160 160" in IupFlatFrame.
- Changed: default FGCOLOR for IupGauge to match IupFlatVal.
- Changed: IupElementPropertiesDialog now has a parent parameter.
- Changed: improved language localization support. Specific ISO8859-1 and UTF-8 encoded strings are now in separate files. New localization files can now be based on these files. There are 3 groups of files in iup/src, iup/srccontrols/matrixex and iup/srcplot, they all start with iup_lng*.h. Czech and Russian strings contributed by Jiří Klime and Alexey Bogdanov are now included in the source code, but the main library need to be rebuild using a specific define to embed those localizations.
- Changed: reset the numeric locale to "C" in IupOpen after calling gtk_init. This is the default configuration in IUP, but gtk_init changes the locale to match the system language.
- Changed: CLIENTSIZE can now be used before map for IupDialog, IupBackgroundBox, IupScrollBox and IupGLCanvasBox.
- Changed: CLIENTOFFSET can now be used before map for IupDialog.
- Changed: class type definition "other" for IupTimer, IupClipboard and IupUser.
- Fixed: rectangle fill in OpenGL for IupGLControls that affected several IupGL* controls.
- Fixed: IupImageToImImage when image is RGBA.
- Fixed: IupGauge CANFOCUS default.
- Fixed: MERGEVIEW attribute not updating viewports in IupPlot.
- Fixed: some string allocation in IupWebBrowser in Windows.
- Fixed: DRAGDROP_CB callback and SHOWDRAGDROP attribute in IupFlatList.
- Fixed: title space when there are extra buttons but no tabs in IupFlatTabs.
- Fixed: close button when TABTYPE=LEFT/RIGHT in IupFlatTabs.
- Fixed: CLIENTSIZE when TABTYPE=LEFT/RIGHT in IupFlatTabs.
- Fixed: scroll arrow size when TABTYPE=LEFT/RIGHT in IupFlatTabs.
- Fixed: FORMATDATA attribute returned value in Lua for IupClipboard.
- Fixed: IupFlatList behavior when FLAT_ACTION is not defined.
- Fixed: VALUE attribute when selection is single in IupFlatList.
- Fixed: id attribute when changing an existing value in IupFlatList.
- Fixed: initial size of IupGetColorDlg.
- Fixed: scroll while using arrow keys in IupFlatList. Scroll to item when pressing the letter that match the first character in title.
- Fixed: setting VALUE=TODAY when ZEROPRECED=Yes in IupDatePick in GTK.
- Fixed: selection color for IupDatePick in GTK.
- Fixed: BGCOLOR for IupText in GTK 3.14. It was affecting the selection color. NOT fixed yet for GTK > 3.20.
- Fixed: webkit2gtk support in Linux 5 for IupWebBrowser.
- Fixed: FLAT_ACTION callback parameters in Lua for IupFlatButton, IupFlatList, IupFlatToggle and IupDropButton.
- Fixed: current tab size CHILDSIZEALL=NO and EXPANDBUTTON=Yes.
- Fixed: drawing of oriented text in IupDraw when layout is centered. This affected all the controls that have support for text orientation.
- Fixed: child size calculation in IupFlatTabs when EXPANDBUTTON=Yes and CHILDSIZEALL=NO.
- Fixed: attribute TITLEid size limitation when retrieved in IupTree on Windows.
- Fixed: file paths of in a project are now saved relative to the project file path in IupScintillaDlg.
- Fixed: a double click in a dialog that is closed at that moment may generate a spurious button release in the dialog underneath in Windows. We added a workaround were we have control of the button down/up message processing. But not all controls will handle that case.
- Fixed: SPACING attribute in IupTree could not be set to 0.
- Fixed: visible space when one scrollbar is disabled in IupScrollBox and IupFlatScrollBox.
- Fixed: compatibility between TITLE and CUSTOMFRAME in IupDialog.

### Version 3.27 (30/Apr/2019)

- New: VALUELEN (used in APPEND and ADD) and ADD attributes for IupScintilla.
- New: TABTYPE attribute for IupFlatTabs. Now tabs can be at top, bottom, left or right around its children.
- New: BARSIZE, LAYOUTDRAG and SHOWGRIP attributes for IupSbox.
- New: ORIENTATION attribute for IupGauge.
- New: MERGEVIEW, PADDING, AXS_*POSITION and AXS_*REVERSETICKSLABEL attributes for IupPlot.
- New: ARROWALIGN attribute for IupDropButton.
- New: iup.CopyString2UserData and iup.CopyUserData2String functions for use in Lua drag&drop when userdata is a string.
- New: INSERTCHECK_CB callback for IupScintilla.
- New: FLOATING attribute support for IupTabs and IupFlatTabs.
- New: CHILDSIZEALL attribute for IupZbox, IupTabs and IupFlatTabs.
- New: IupFlatList control that behaves as a IupList with DROPDOWN=NO and EDITBOX=NO, but with more control over its parameters.
- New: EXTRATOGGLE, EXTRAVALUE, EXTRASHOWBORDER, EXTRABORDERCOLOR and EXTRABORDERWIDTH attributes for IupFlatTabs.
- New: IupGlobalsDialog pre-defined dialog to manage global attributes, functions and names. Can be shown from IupLayoutDialog menu.
- Changed: the IupDraw function are now using GDI again in Windows. Direct2D was very slow for drawing controls with integer coordinates in dialogs with complex layout. It can still be used by setting the DRAWUSEDIRECT2D attribute to Yes. To compensate the lost of antialiasing and alpha in GDI, we added a hack to use GDI+ for lines, polygons and arcs were antialiasing is more needed and does not affect less ordinary rectangular based drawings.
- Changed: default values for EXTRAPRESSCOLOR and EXTRAHIGHCOLOR in IupFlatTabs.
- Fixed: SHAPEIMAGE attribute when image is not surrounded by transparent pixels in Windows for IupDialog.
- Fixed: storage of id based attributes when id is omitted.
- Fixed: size of "IUP_Media*" images of the IupImgLib in Windows to 32x32.
- Fixed: drawing of vertical flat scrollbar when SHOWTRANSPARENT=Yes.
- Fixed: MOUSEMOVE_CB callback in Lua for IupDial.
- Fixed: clipping management in IupDraw for the Cairo driver.
- Fixed: caret color when FGCOLOR is set for IupText in GTK 3.
- Fixed: background color in IupSplit when SHOWGRIP=NO and COLOR is not defined.
- Fixed: drag&drop support for IupCanvas in Windows.
- Fixed: size of the drop dialog in IupDropButton.
- Fixed: client size for IupTabs in Windows 10.
- Fixed: handling of dynamically removed child in IupFlatTabs.
- Fixed: COLORUPDATE_CB callback in IupColorDlg when the color is selected in the color wheel.
- Fixed: properties dialog initialization when there are multiple plots in IupPlot.
- Fixed: zoom using + and - keys when there are multiple plots in IupPlot.
- Fixed: invalid double click message after drop dialog close in IupDropButton.
- Fixed: active button state for extra buttons in IupFlatTabs.
- Fixed: BUTTON_CB callback during press=0 for button1 when DRAGSOURCE=Yes in Windows.

### Version 3.26 (07/Jan/2019)

- New: CHECKALIGN attribute for IupFlatToggle.
- New: SHOWTRANSPARENT attribute for flat scrollbars, affects IupFlatScrollBox and IupMatrix when FLATSCROLLBAR=Yes. This makes the flat scrollbar semi transparent and only interactive trough its handler.
- New: FOCUSFEEDBACK attribute for IupFlatButton, IupFlatToggle and IupDropButton.
- New: IupMultiBox container that distributes elements in multiple lines or columns according to the available space.
- New: NOPLACESBAR attribute for IupFileDlg in Windows.
- New: alternative implementation for IupFileDlg in Windows using the new Explorer interface available since Windows Vista, but with support for FILE_CB and HELP_CB. Preview and x,y is still not supported. It is available in a separate library that is implemented internally in C++, and when statically linking is available only for Visual C++.
- New: CONTROLID attribute for native elements in Windows.
- New: CARETXPOLICY/CARETYPOLICY attributes to IupScintilla.
- New: BACKIMAGE, BACKIMAGEZOOM and BACKCOLOR attributes for IupBackgroundBox.
- New: SHAPEIMAGE attribute for IupDialog in Windows and GTK.
- New: IupCopyAttributes to copy all hash table attributes from one control to another.
- New: MINCOLWIDTHid and MINCOLWIDTHDEF attributes for IupMatrix.
- New: TEXTHLCOLOR and TEXTPSCOLOR attributes for IupFlatButton, IupFlatToggle and IupDropButton.
- New: THEME common attribute and DEFAULTTHEME global attribute that works for all controls to apply a set of attributes at once.
- Changed: improved id based attributes in Properties dialog in IupLayoutDialog.
- Changed: GLOBALLAYOUTRESIZEKEY to be able to change also when FONT is set at a control.
- Changed: renamed some flat scrollbar attributes to include the prefix "SB_" to avoid conflicts with control attributes. All IMAGE* and *COLOR attributes.
- Changed: if FILE_CB and HELP_CB are not defined, and x,y is IUP_CENTER or IUP_CURRENT in IupFileDlg on Windows then it will use a newer Explorer interface available since Windows Vista.
- Changed: added "=" prefix to chunk name in iuplua_dobuffer and iuplua_dostring calls to improve debugging of IupLua strings.
- Changed: LEGENDPOSXY and TITLEPOSXY attributes coordinates are now relative to bottom-left corner of the plot in IupPlot.
- Fixed: clipping rectangle in IupDraw in Windows.
- Fixed: ACTION_CB and MOUSEMOVE_CB callbacks in Lua for IupMatrixEx and IupMatrixList.
- Fixed: FONT attribute initialization in IupMatrix.
- Fixed: text drawing in IupGauge.
- Fixed: LINEVALUE attribute in IupScintilla, it must not include the end of line character.
- Fixed: param interpretation in Lua when param type is an Ihandle* ("%h") in IupGetParam.
- Fixed: RIGHTPARENTHESIS and PARENTHESES spelling in values of NUMBERINGSTYLE attribute for IupText formatting.
- Fixed: FOCUS_CB callback for IupDialog when the focus is also changed from inside the callback.
- Fixed: invalid IupMatrix drawing area calc when scrollbar is auto hidden before first show.
- Fixed: filename in recent callback for IupConfig when file name text encoding is not the same as the interface.

### Version 3.25 (28/May/2018)

- New: FLAT attribute for IupMatrix.
- New: 7GUIs Samples.
- New: CROSSTITLE value for FRAME attribute in IupFlatFrame.
- New: SHOWBORDER attribute in IupFlatButton.
- New: global attribute SB_BGCOLOR. IUP by default changed the background color of the scrollbars in GTK and Motif. Now will change only if this global attribute is enabled. This affects IupCanvas, IupList, IupText and IupTree.
- New: IupFlatSeparator control, same as IupLabel when SEPARATOR is used with more options and drawn by IUP.
- New: IupFlatLabel control, same as IupLabel with more options and drawn by IUP.
- New: IupDropButton control to show a dropdown child.
- New: IupFlatToggle control, same as IupToggle with more options and drawn by IUP.
- New: IupSpace control, similar to IupFill but works as a regular element regarding to size and expand.
- New: IMAGESTOCKAUTOSCALE global attribute.
- New: CD_IUPDRAW CD driver that uses only the IupDraw API.
- New: TEXTORIENTATION, TEXTWRAP and TEXTELLIPSIS attributes for IupFlatLabel, IupFlatButton, IupDropButton, IupFlatFrame, IupFlatTabs and IupFlatToggle.
- New: DRAWTEXTORIENTATION, DRAWTEXTLAYOUTCENTER, DRAWTEXTCLIP, DRAWTEXTWRAP and DRAWTEXTELLIPSIS attributes for IupDrawText.
- New: function IupDrawGetClipRect.
- New: focus feedback and current tab changing with arrow keys in IupFlatTabs.
- New: TABORIENTATION attribute for IupFlatTabs.
- New: BACKIMAGEZOOM attribute to zoom the back image to occupy the background in IupFlatLabel, IupFlatButton, IupDropButton and IupFlatToggle.
- New: DASH_DOT and DASH_DOT_DOT line styles for IupDraw lines.
- New: RESIZEDRAG attribute for IupMatrix.
- Changed: highly reduced the X11 dependency for the GTK driver. Now X11 calls are only used when drawing using CD or OpenGL.
- Changed: IupLuaScripterDlgOpen function API now includes the Lua state as a parameter.
- Changed: removed make_inactive parameter form IupDrawImage, now the attribute DRAWMAKEINACTIVE can be used along with DRAWBGCOLOR.
- Changed: added support for zoom in IupDrawImage. Added w and h parameters that can be 0 or -1, so there will be no zoom.
- Changed: added support for wrap and ellipsis in IupDrawText. Added w and h parameters that can be 0 or -1, so text size will be used.
- Changed: added len parameter in IupDrawGetTextSize. len can be 0 or -1 so strlen is used.
- Changed: the default IupDraw driver changed to Direct 2D in Windows, and Cairo in Linux (even in GTK 2). Now with support for alpha in color and anti-aliasing in primitives. Direct 2D support implemented using the WinDrawLib library by Martin Mitá.
- Changed: the logos and large icons in IupImageLib will not be automatically resize anymore. Now only the base images are automatically resized.
- Changed: IupGetAllDialogs, IupGetAllNames, IupGetAllAttributes, IupGetAllClasses, IupGetClassAttributes, IupGetClassCallbacks now also accepts -1 for count (same as 0).
- Changed: IupLuaScripterDlg implementation now supports using the Console Tab and the Debugger Tabs modules independent from the dialog, so they can be used inside an application dialog. But some work at the application is necessary to be fully functional.
- Changed: [ATTENTION] removed compatibility with the old CD API from IupMatrix. All CD calls inside DRAW_CB must use the cdCanvas* API. Applications should check their code if using the DRAW_CB callback.
- Changed: [ATTENTION] IupMatrix now uses the IupDraw API through the new CD_IUPDRAW driver. The DRAW_CB callback still works but may have limited support for CD primitives because of the new driver limitations. Applications should check their code if using the DRAW_CB callback.
- Fixed: FRAMETIME initialization in IupLoadAnimation. Thanks to M. Ivanchev.
- Fixed: VALUE=CLEAR in IupTree on Windows.
- Fixed: minimum size for handler in flat scrollbars.
- Fixed: drawing of current tab border in IupFlatTabs.
- Fixed: background color set in GTK driver was affecting the selection color in GTK3.
- Fixed: removed an invalid file close in IupConfigLoad.
- Fixed: invalid memory access when destroying the dialog inside a key callback.
- Fixed: merged cells position adjust when there is a non scrollable line or column in IupMatrix.

### Version 3.24 (22/Jan/2018)

- New: Find All and Find Results tab for IupScintillaDlg. Option for searching in Project Files even if they are not open.
- New: INNERTEXT and ATTRIBUTE attributes for IupWebBrowser in Windows.
- New: NOSCROLLASTITLE attribute for IupMatrix. NOSCROLL columns and lines can now behave and look as title cells.
- New: EOL, EOLMODE attributes and options for FIXEOL attribute in IupScintilla. Support for different end of lines in IupScintillaDlg.
- New: DRAWLINEWIDTH attribute for IupDraw functions.
- New: RESHAPE, RESIZE and CLEARCACHE attributes for IupImage.
- New: FLAT and FLATCOLOR attributes for IupDial. FGCOLOR now affects the appearance of the circular dial.
- New: DSPROPERTIESCHANGED_CB, PROPERTIESCHANGED_CB and EDITSAMPLE_CB callbacks in IupPlot.
- New: LAYOUTUPDATE_CB callback for IupFlatScrollBox and IupScrollBox.
- New: CLEAR option for the VALUE attribute in IupTree.
- New: code submitted to Coverity Scan analysis. Issues are being solved as long as we process them. Thanks to R. Vilela.
- Changed: IupColorBrowser, IupColorbar, IupGauge and IupDial migrated from the IupControls library to the main library using IupDraw, they do not depend on the CD library anymore. The natives IupColorDlg were removed and now only the IupColorBrowser based dialog remains.
- Changed: SAVEUNDER in Windows is used only if the dialog has a parent dialog.
- Changed: [IMPORTANT INCOMPATIBILITY] The separate library for IupMatrixEx was merged with the IupControls library. The IupMatrixExOpen and IupMatrixExInit functions were removed.
- Fixed: invalid layout update during map in IupFlatScrollBox and IupScrollBox.
- Fixed: double click in expand button in IupExpander. Click on expand button while animating.
- Fixed: BARPOSITION set when there are extra buttons in IupExpander.
- Fixed: TIP not being displayed while debugging in IupLuaScripterDlg.
- Fixed: current tabs when set before map in IupTabs.
- Fixed: MARKL:C attribute when set from inside the MARKEDIT_CB callback in IupMatrix. Error introduced in last version.
- Fixed: focus cell and scroll using keyboard in IupMatrix when NUMLIN_NOSCROLL or NUMCOL_NOSCROLL are used. Non-scroll cells where not included in keyboard navigation.
- Fixed: EXECUTELEAF_CB not being called when Enter is pressed, and branch close not being done when Enter is pressed in IupTree on Windows.
- Fixed: IupDrawText when len=0.
- Fixed: view options persistence in IupScintillaDlg.
- Fixed: SCROLLTOCHILD attribute in IupScrollBox and IupFlatScrollBox.
- Fixed: BGCOLOR attribute in IupText and IupTree, possibly some other controls too when GTK version >= 3.16. Thanks to J. Klime.
- Fixed: drawing of lines and arcs in IupDraw on GTK3. Drawing of arcs on Windows.
- Fixed: dynamically insert a child in an empty IupExpander.
- Fixed: IupDial shading initialization.
- Fixed: CANVASBOX attribute in IupBackgroundBox when box is empty.
- Fixed: Layout update when children are dynamically added to the dialog in IupLayoutDialog.
- Fixed: flat scrollbars zorder when visibility is changed.
- Fixed: IupLoadAnimation when loading GIF animations.
- Fixed: saving of project files in IupScintillaDlg. Thanks to R. Vilela.

### Version 3.23 (11/Oct/2017)

- New: <iup_varg.h> header for functions that depends in variable arguments using va_list.
- New: IupLog function to write a message to the system log.
- New: GOBACK, GOFORWARD, CANGOBACK and CANGOFORWARD attributes in IupWebBrowser.
- New: added support for UTF-8 in IupView.
- New: support for projects (list of files) in IupScintillaDlg.
- New: support for multiple files in IupScintillaDlg and IupLuaScripterDlg.
- New: table inspection support in Locals for IupLuaScripterDlg.
- New: support for load session and save session in IupScintillaDlg.
- New: "Options" dialog for setting current directory and script arguments in IupLuaScripterDlg.
- New: support for vararg and upvalues in Locals during debug in IupLuaScripterDlg.
- New: support for folding in IupLuaScripterDlg.
- New: dialog for changing syntax colors in IupLuaScripterDlg.
- New: current value shown in TIP for the variables of the current stack level while debugging in IupLuaScripterDlg.
- New: CONFIGSAVE_CB and CONFIGLOAD_CB callbacks for IupScintillaDlg.
- New: replace all button in find dialog for IupScintillaDlg.
- New: PROPAGATEFOCUS attribute for all elements that can receive focus. This will make the focus callback forward to the next native parent with FOCUS_CB defined.
- New: TARGETWHOLEDOCUMENT, WORDRANGE, ISWORD, WORDPOS, SHOWLINES, HIDELINES, FOLDPARENT, FOLDLINE, FOLDCHILDREN, FOLDALL, ENSUREVISIBLE, FOLDLEVELWHITE and FOLDLEVELHEADER attributes for IupScintilla.
- New: LINESCHANGED_CB, UPDATECONTENT_CB, UPDATESELECTION_CB, UPDATEHSCROLL_CB, UPDATEVSCROLL_CB callbacks for IupScintilla.
- New: print support in IupScintilla and IupScintillaDlg.
- New: MOUSEDWELLTIME attribute and DWELL_CB callbacks in IupScintillaDlg.
- New: support for highlight of all words equal to the selected word in IupScintillaDlg.
- New: support for IupConvertXYToPos in IupFlatTabs.
- New: watch for global variables or expressions in IupLuaScripterDlg.
- New: tools to comment blocks and multiple lines in IupLuaScripterDlg.
- New: INDICATORCURRENT, INDICATORVALUE, INDICATORCLEARRANGE, INDICATORFILLRANGE, INDICATORSTYLEid , INDICATORFGCOLORid , INDICATOROUTLINEALPHAid , INDICATORALPHAid attributes for IupScintilla.
- New: iup._TRACEBACK for optional traceback processing in error handling in IupLua.
- New: SELECTIONFGCOLOR, SELECTIONBGCOLOR and SELECTIONALPHA attributes for IupScintilla. (Thanks to O. Zetterqvist)
- New: FRAME, FRAMECOLOR and FRAMEWIDTH attributes for IupExpander.
- New: IupConfigCopy function for IupConfig.
- New: CELLFRAMEVERTCOLORL:C, CELLFRAMEHORIZCOLORL:C, CELLFONTL:C and CELLTYPEL:C read-only attributes for IupMatrix.
- New: MERGEL:C, MERGESPLIT, MERGEDSTARTL:C and MERGEDENDL:C attributes for IupMatrix. This adds support for merged cells in IupMatrix.
- New: EXITLOOP global attribute that allows to disable the IupExitLoop call.
- New: CUSTOMFRAMEACTIVATE_CB callback for IupDialog. Fixed redraw in Windows when using a CUSTOMFRAME.
- New: ROOTCOUNT, NEXTid, PREVIOUSid, FIRSTid and LASTid attributes for IupTree.
- Changed: Stock images in GTK 3.x are now provided by the IupImageLib, because GTK 3.10 stock images are deprecated. Replaced "IUP_ZoomActualSize" image in Windows. IUP_Webcam returned to the base list.
- Changed: BGCOLOR, FGCOLOR and FONT attributes in IupScintilla will now affect all style ids.
- Changed: re-organized Find/Replace dialog in IupScintillaDlg.
- Changed: IupSbox replaced by IupSplit in IupLuaScripterDlg. Current position saved in configuration file.
- Changed: attribute SAVEDSTATE split into MODIFIED and SAVEPOINT attributes in IupScintilla.
- Changed: improved next tab selection when current tab is removed or hidden in IupFlatTabs.
- Fixed: autocomplete option saved in config file in IupLuaScripterDlg.
- Fixed: Font selection in IupLuaScripterDlg.
- Fixed: "Print" and "Set Local" of Lua boolean values at "Locals" list in IupLuaScripterDlg.
- Fixed: paste over selection in IupScintillaDlg.
- Fixed: Find options, View options (word wrap, show white spaces, etc), "tab size" and "use spaces instead of tab" options not being saved in configuration file in IupScintillaDlg.
- Fixed: Find behavior in IupScintillaDlg.
- Fixed: PADDING in IupButton, IupList and IupToggle on GTK3.
- Fixed: mouse wheel processing in canvas based containers to forward to parent containers in Windows.
- Fixed: position update of zero size elements in Windows.
- Fixed: flat scrollbar auto-hide when mouse button is press and hold.
- Fixed: TARGETEND and TARGETSTART attributes in IupScintilla.
- Fixed: FOLDLEVEL attribute in IupScintilla.
- Fixed: EDITNEXT attribute when value is NONE in IupMatrix.
- Fixed: When the current tab is changed is also scrolled to be visible in IupFlatTabs.
- Fixed: current tab when tabs is empty in IupFlatTabs.
- Fixed: NUMLIN_NOSCROLL and NUMCOL_NOSCROLL maximum and minimum values in IupMatrix.
- Fixed: highlight state of a IupFlatButton with TOGGLE=Yes when VALUE=ON.
- Fixed: TOPITEM attribute for IupList and IupTree in GTK.
- Fixed: TABCHANGE_CB called when current tab child was removed in IupTabs on GTK and Motif.
- Fixed: col2 limits in SELECTION attribute for IupScintilla.

### Version 3.22 (12/Jun/2017)

- New: internal support for SPANISH language (thanks to Germán A.)
- New: function IupImageToImImage in IUP-IM library.
- New: EXTRABUTTONS, EXPANDBUTON, TABCHANGEONCHECK, CLOSEPRESSCOLOR, CLOSEIMAGEINACTIVE, TABTIPn, TABIMAGEHIGHTLIGHTn and TABIMAGEINACTIVEn attributes for IupFlatTabs.
- New: DATASETCLIPPING attribute for IupPlot.
- New: support for Find in IupLayoutDialog.
- New: "Handle Name" context menu item for editing the name of an element in IupLayoutDialog.
- New: TABSTEXTALIGNMENT attribute for IupFlatTabs. TITLETEXTALIGNMENT attribute for IupFlatFrame. TEXTALIGNMENT attribute for IupFlatButton and IupDrawText.
- New: build guides for NetBeans and CodeLite IDEs in the documentation. (Thanks to A. Bogdanov)
- New: IupFlatScrollBox container with drawn controlled and smaller scrollbars, along with flat scrollbars attributes.
- New: FLATSCROLLBAR attribute for IupMatrix, to enable flat scrollbars.
- New: EOLVISIBLE, FIXEOL, MARGINMASK, FOLDMARGINCOLOR and FOLDMARGINHICOLOR attributes for IupScintilla.
- New: FRAMETITLEVERTCOLOR* and FRAMETITLEHORIZCOLOR* attributes for IupMatrix.
- New: IupScintillaDlg pre-defined dialog.
- New: IupLuaScripterDlg pre-defined dialog.
- New: application IupLuaScripter based on the new IupLuaScripterDlg.
- New: DRAWFONT attribute for IupDrawText.
- New: IupMessageError and IupMessageAlarm utility functions.
- Changed: internal scrollbar precision in IupCanvas and IupMatrix from float to double.
- Changed: several attributes relative to CUSTOMFRAME in IupDialog to unify behaviors in GTK and Windows. CUSTOMFRAMECAPTION renamed to CUSTOMFRAMECAPTIONHEIGHT. CUSTOMFRAME renamed to CUSTOMFRAMEDRAW. CUSTOMFRAMEEX renamed to CUSTOMFRAME. CUSTOMFRAME_CB callback renamed to CUSTOMFRAMEDRAW_CB. CUSTOMFRAMEDRAW and CUSTOMFRAMECAPTION works only in Windows. CUSTOMFRAME works also in GTK, it is used to replace the native dialog frame by IUP controls.
- Changed: added support for scrolling of tabs in IupFlatTabs.
- Changed: added support for extra buttons in IupFlatTabs.
- Changed: added disabled effect for IupFlatFrame. New optional attribute TITLEIMAGEINACTIVE.
- Fixed: UnregisterClass called for all registered classes in Windows at IupClose.
- Fixed: FONTSIZE and FONTSTYLE attributes in IupMatrix and TITLEFONTSIZE in IupTree.
- Fixed: drawing of bars with zero values when DS_MODE is BAR, HOIZONTALBAR or MULTIBAR in IupPlot.
- Fixed: last visible tab when made it invisible in IupFlatTabs.
- Fixed: tab id based attributes when a tab is added or removed in IupFlatTabs.
- Fixed: AXS_YMAX adjust when Y range is too small or zero, but AXS_AUTOMAX is No in IupPlot.
- Fixed: invalid VALUECHANGED_CB call when INSERT or APPEND attributes are set in IupText on Windows and FORMATTING=Yes.
- Fixed: MOUSEMOTION_CB callback coordinates in IupCells.
- Fixed: IupReparent when child is re-parent to the same position.
- Fixed: internal elements display in IupLayoutDialog. New option to force internal elements to be drawn.
- Fixed: children area update in IupTabs on Windows when MULTILINE=Yes and tabs where added or removed affecting the number of lines.
- Fixed: display update when TITLE, VALUE and list items are set in IupMatrixList.
- Fixed: INSERTid attribute in IupScintilla when id is not used.
- Fixed: SPINVALUE in IupText when user press Enter after typing a new value in GTK.

### Version 3.21 (20/Jan/2017)

- New: IupFlatTabs container similar to IupTabs but more controllable.
- New: IGNORERADIO attributes for IupFlatButton with TOGGLE=YES, IupToggle, and IupGLToggle.
- New: SUPPRESSWARNING attribute for IupMglPlot.
- New: IupSetAttributeHandleId, IupSetAttributeHandleId2, IupGetAttributeHandleId and IupGetAttributeHandleId2 functions.
- New: ZOOM attribute for IupPlot.
- New: PIE option value for DS_MODE attribute in IupPlot. DS_PIERADIUS, DS_PIESTARTANGLE, DS_PIECONTOUR, DS_PIEHOLE, DS_PIEHOLERADIUS, and DS_PIESLICELABEL attributes for IupPlot when DS_MODE=PIE.
- New: DS_AREATRANSPARENCY attribute for IupPlot when DS_MODE=AREA.
- New: HIGHLIGHTMODE and SCREENTOLERANCE attributes for IupPlot. CLICKSEGMENT_CB callback for IupPlot. New IupPlotFindSegment function.
- New: DS_BARMULTICOLOR attribute for IupPlot when DS_MODE=BAR or HORIZONTALBAR.
- New: DS_STRXDATA, DS_EXTRA and DS_ORDEREDX attributes for IupPlot.
- New: "DataSet Values" dialog in context menu for IupPlot. New attribute EDITABLEVALUES for IupPlot.
- New: SIMULATEMODAL attribute for IupDialog to disable all other visible dialogs.
- New: FOCUS_CB callback for the IupDialog.
- New: HASFOCUS, HIGHLIGHTED and PRESSED attributes that return the internal state of the IupFlatButton.
- New: RESTOREWHENCLOSED attribute and RESTORED_CB callback for IupDetachBox.
- New: PROGRESSHEIGHT, MINCLOCK and MINPERCENT attributes for IupProgressDlg.
- New: FONTSTYLEL:C and FONTSIZEL:C for IupMatrix.
- New: IUP_GETPARAM_MAP param_index for the PARAM_CB callback in IupGetParam.
- New: FLAT and FLATCOLOR attributes for IupGauge.
- New: -1 value for SIZECOL and SIZELIN attributes in IupGridBox to use all columns and all lines when computing lines and columns sizes.
- New: UNDOACTION attribute for IupScintilla.
- New: CARETLINEVISIBLE, CARETLINEBACKCOLOR and CARETLINEBACKALPHA attributes in IupScintilla. (Thanks to O. Zetterqvist)
- New: Scintilla Notepad source code in the topic "3. Simple Notepad" of the Tutorial.
- Changed: PARENTDIALOG can now be modified after the dialog is mapped in IupDialog, but must be already set during map.
- Changed: layout resize computation optimization in IupMatrix.
- Fixed: background drawing when VIEWPORTSQUARE=Yes is used in IupPlot. Fixed AXS_*LABELCENTERED default value.
- Fixed: some GTK stock images for GTK >= 3.10 in IupImageLib.
- Fixed: FRAMEBORDER to be drawn only if necessary, and only up to the matrix total size, in IupMatrix.
- Fixed: vertical cursor coordinates in all mouse callbacks when there are more that one line of plots, or when VIEWPORTSQUARE=Yes, in IupPlot.
- Fixed: crash at IupList in GTK 3.20 when DROPDOWN=Yes and EDITBOX=NO. But in that case keyboard, focus and enter/leave window callbacks stopped working.
- Fixed: STYLEWEIGHT attribute in IupScintilla. (Thanks to O. Zetterqvist)
- Fixed: DEFAULTENTER behavior in GTK when focus is at another button.
- Fixed: alignment in IupGridBox.

### Version 3.20 (30/Sep/2016)

- New: AXS_XLABELSPACING and AXS_YLABELSPACING attributes for IupPlot.
- New: MULTIVALUEPATH attribute in IupFileDlg.
- New: LABELALIGN and MODIFIABLE attributes for IupParamBox.
- New: CANVASBOX attribute for IupScrollBox.
- New: IupExecuteWait function.
- New: IupGLDrawText, IupGLDrawImage, IupGLDrawGetTextSize and IupGLDrawGetImageInfo functions for IupGLSubCanvas.
- New: MOTION_CB callback for IupLabel.
- New: HIDETITLEBAR attribute for IupDialog in GTK (needs GTK version 3.10).
- New: guide to create Shell Extension Handlers for thumbnails and previews in Windows.
- New: BUTTON_CB, MOTION_CB and WHEEL_CB callback in IupFileDlg when the preview canvas is enabled.
- New: SHOWEDITBOX attribute for IupFileDlg in Windows.
- New: DECORATION, DECORSIZE and DECOROFFSET attributes for IupBackgroundBox and IupGLBackgroundBox.
- New: IupFlatFrame custom container.
- New: GLOBALCTRLFUNC_CB global callback.
- New: FRAMEBORDER attribute for IupMatrix to draw a border around the matrix visible area.
- Changed: CUEBANNER attribute support for IupText in GTK (needs GTK version 3.2+).
- Fixed: "Axis Ticks Number" in "Properties" dialog of IupPlot.
- Fixed: internal limitation on the number of curves in a plot of IupPlot.
- Fixed: IupGetParam callback behavior when the close button of the dialog is pressed.
- Fixed: single selection on IupTree when a node is programmatically unselected in Windows.
- Fixed: VALUE attribute in IupDatePick on Windows XP.
- Fixed: IupMglPlotEnd when IupMglPlotAdd1D uses NULL for names in IupMglPlot.

### Version 3.19.1 (04/Jul/2016)

- New: TITLEFONTSTYLEid attribute for IupTree.
- Fixed: several internal attributes were incorrectly updated during map in IupGetParam, IupParam and IupParamBox.

### Version 3.19 (20/Jun/2016)

- New: CANVASBOX attribute for IupGLBackgroundBox and IupBackgroundBox.
- New: LAYOUTDRAG attribute for IupScrollBox in Windows.
- New: scrollbars for layout area in IupLayoutDialog.
- New: TYPECOLORINACTIVE attribute for IupMatrix.
- New: OVERLAYSCROLLBAR global attribute in GTK to control the scrollbar space when overlay scrollbars are enabled in the system.
- New: BORDERPSCOLOR and BORDERHLCOLOR attributes for IupFlatButton.
- New: IupDraw API for drawing custom controls in a IupCanvas or IupBackgroundBox.
- New: IupGLText control for IupGLControls.
- Changed: IupScrollBox will now expand to child natural size the first time the layout is computed.
- Changed: Scintilla updated to version 3.6.6.
- Changed: MathGL updated to version 2.3.5.1.
- Changed: Freetype and FTGL used in IupGLControls now needs an external instalation. Their code are still inside CD svn but in a separate folder. Freetype in Linux now uses the library installed on the system.
- Changed: [IMPORTANT INCOMPATIBILITY] IupParamf renamed to IupParam and IupParamBox changed its signature. They are now actual controls and cab be also used in LED and Lua as such. In Lua the constructors iup.param{} and iup.parambox{} must be used instead of the previous functions. After creating the IupParamBox, IupAppend or IupInsert must be called to insert the box in the parent child list. There are NO changes for IupGetParam, it is fully backward compatible.
- Changed: [DEPRECATED REMOVED] removed the following headers iupcb.h, iupcells.h, iupdial.h, iupgc.h, iupmatrix.h, iupspin.h, iuptree.h, iupcbox.h iupcolorbar.h, iupgauge.h, iupgetparam.h, iupsbox.h, iuptabs.h and iupval.h. These headers were already empty, simply use iup.h or iupcontrols.h.
- Changed: [DEPRECATED REMOVED] removed the following functions IupGetActionName, IupMapFont, IupUnMapFont and IupControlsClose. Removed support for DEFAULT_ACTION and old font names. There are no substitutes.
- Changed: [DEPRECATED REMOVED] removed the header iupmask.h and all its functions prefix by "iupmask". Use MASK* attributes in IupText, IupList and IupMatrix.
- Changed: [DEPRECATED REMOVED] removed the old attribute NAMEid from IupTree to avoid conflict with the common attribute NAME. Use the TITLEid attribute.
- Changed: [DEPRECATED REMOVED] removed the following functions IupTreeSetAttribute, IupTreeStoreAttribute, IupTreeGetAttribute, IupTreeGetInt, IupTreeGetFloat and IupTreeSetfAttribute. Use IupSet/GetAttributeId functions.
- Changed: [DEPRECATED REMOVED] removed the following functions IupMatSetAttribute, IupMatStoreAttribute, IupMatGetAttribute, IupMatGetInt, IupMatGetFloat and IupMatSetfAttribute. Use IupSet/GetAttributeId2 functions.
- Changed: [DEPRECATED REMOVED] removed the control IupPPlot. Use IupPlot.
- Changed: removed the internal attribute STANDARDFONT that was necessary because of the old font names.
- Changed: renamed PADDING attribute to TABPADDING in IupTabs to avoid conflict with inheritable PADDING attribute of other controls.
- Changed: removed dependency on iconv from IupGLControls.
- Fixed: VALUECHANGED_CB callback for IupDatePick in Windows to allow IupGetParam to cancel the change.
- Fixed: LEDC tool to consider IupGLBackgroundBox with correct case.
- Fixed: DIRECTORY attribute returned value for IupFileDlg in Windows when MULTIPLEFILES=Yes.
- Fixed: added missing support for DS_BAROUTLINE, DS_BAROUTLINECOLOR and DS_BARSPACING editing in properties dialog for IupPlot.
- Fixed: TOGGLEIMAGEON in IupMatrix.
- Fixed: image support in IupMatrix, IupMatrixList, IupGLControls, IupPlot and IupScintilla to accept stock images.
- Fixed: some of the deprecated function in GTK 3.14. Now the Makefile defines GTK_DISABLE_DEPRECATED again. Others documented in "iupgtk_open.c".
- Fixed: PADDING attribute, along with other internal margins in IupText, IupList, IupButton and IupToggle for GTK version 3. BORDER in IupText for GTK version 3. TITLE and IMAGE in IupButton for GTK version 3. They all affected the layout computation in IUP.
- Fixed: image size limitation when setting IMAGELEAF, IMAGEBRANCHCOLLAPSED and IMAGEBRANCHEXPANDED in IupTree for Windows. Before sizes where limited to 16x16, the alternative was to change the default images, this is not necessary anymore.
- Fixed: keyboard focus interactivity in IupBackgroundBox and IupGLBackgroundBox.
- Fixed: mnemonic activation for IupToggle inside an IupRadio in Windows.
- Fixed: PLOTMOTION_CB for IupPlot in Lua.
- Fixed: FONT attribute for IupMatrix.

### Version 3.18 (21/Mar/2016)

- New: STOPWHENHIDDEN attribute for IupAnimatedLabel.
- New: FIRSTVISIBLELINE attribute for IupScintilla.
- New: EXTDEFAULT attribute for IupFileDlg.
- New: USE_LUA_VERSION variable for the Lua binding Makefiles to simplify the build for different Lua versions.
- New: "STEM", "MARKSTEM", "HORIZONTALBAR", "MULTIBAR", "STEP", "ERRORBAR" plot modes for IupPlot. New attributes DS_BAROUTLINE, DS_BAROUTLINECOLOR and DS_BARSPACING for BAR, MULTIBAR and HORIZONTALBAR modes.
- New: IupPlotGetSampleExtra and IupPlotSetSampleExtra functions for IupPlot.
- New: CUSTOMFRAME, CUSTOMFRAMEEX, CUSTOMFRAMECAPTION, CUSTOMFRAMECAPTIONLIMITS attributes and CUSTOMFRAME_CB callback for IupDialog in Windows. To allow custom dialog frames by drawing the frame components or using other controls as components.
- New: IupGLBackgroundBox control.
- Changed: Tecgraf logo updated in IupImageLib and in "tecgraf.ico" file.
- Fixed: calling popup dialogs one after closing the other, without other visible dialogs.
- Fixed: animation was being destroyed in IupAnimatedLabel destroy. As an IupImage it must be destroyed manually by the application or automatically in IupClose, if it has a name.
- Fixed: missing iupstub build for mingw4_64.
- Fixed: IupFontDlg in Windows to avoid failing to created the dialog if VALUE is invalid. Now it will ignore the invalid value and use the global default font.
- Fixed: separators with no title in IupGetParam.
- Fixed: dataset properties dialog in IupPlot context menu.
- Fixed: IupSpinbox creation in Lua.
- Fixed: invalid memory access in IupMatrixEx when using custom units.
- Fixed: return values for AXS_XTICKFONTSTYLE and AXS_YTICKFONTSTYLE attributes in IupPlot.
- Fixed: linking dependencies for IupLuaConsole application.
- Fixed: invalid extra button in IupMessageDlg when BUTTONS=OKCANCEL in GTK.
- Fixed: MULTIVALUE and MULTIVALUECOUNT in IupFileDlg when only one file is selected. Fixed inconsistent DIRECTORY return value when multiple files are selected.
- Fixed: iup.GetAllAttributes on Lua.
- Fixed: memory leak in TIP attribute on Windows when tip value is changed more than one time for the same control.

### Version 3.17 (30/Nov/2015)

- New: LASTSORTCOLUMN attribute for IupMatrixEx.
- New: EXEFILENAME global attribute.
- New: exported function IupExecute. Called by IupHelp.
- New: SCROLLTO and SCROLLTOCHILD attributes for IupScrollBox.
- New: MARKWHENTOGGLE attribute for IupTree.
- New: DELCONTROL attribute for IupNormalizer.
- New: IupStringCompare utility function to compare strings lexicographically. Used internally in IupMatrixEx.
- New: MONITORSCOUNT global attribute.
- New: GLOBALLAYOUTRESIZEKEY global attribute to enable the global keys Ctrl+'+' and Ctrl+'-' that change the FONTSIZE and refresh the layout of the dialog. If element sizes are NOT set using RASTERSIZE their sizes will be automatically increased and decreased.
- New: IupAnimatedLabel control.
- New: "IUP_CircleProgressAnimation" pre-defined animation in IupImageLib to be used in IupAnimatedLabel to show indefinite progress.
- New: functions IupLoadAnimation and IupLoadAnimationFrames in IUP-IM utilities library.
- New: PASTEFILEAT attributes for IupMatrixEx.
- New: MASKNOEMPTY attribute of IupList and IupText.
- New: IupCalendar and IupDatePick controls.
- New: date parameter in IupGetParam.
- New: CARETCOLOR, CARETSTYLE and CARETWIDTH attributes in IupScintilla.
- Changed: IupGetText pre-defined dialog function API to include the maximum string size. This was a security fix.
- Changed: the global keys Alt+Ctrl+Shft+L to display the IupLayoutDialog now needs the global attribute GLOBALLAYOUTDLGKEY to be enabled. This was a security fix.
- Changed: Scintilla updated to version 3.6.2. Removed KEYSUNICODE attribute from IupScintilla, not supported in Scintilla anymore.
- Changed: line breaks in a param tip on IupGetParam dialog using the '\r' character.
- Changed: removed SCROLLTO and SCROLLTOPOS attributes from IupScintilla. They were incorrect and not available in Scintilla. New attribute SCROLLBY.
- Changed: MASKL:* and MASK*:C options for MASK attribute in IupMatrix.
- Fixed: defaultenter and defaultesc when dialog has an IupMatrix element.
- Fixed: sorted line indices when line is added or removed in IupMatrixEx. Now when lines are added or removed the sorting is disabled and must be set again manually.
- Fixed: toggle cells being changed when READONLY=Yes in IupMatrix.
- Fixed: progressbar update in IupProgressDlg for fast processing.
- Fixed: iup.dofile and iup.dostring in Lua to process multiple return values and leave them on the stack.
- Fixed: IupSetHandle and IupGetName usage of the internal cache for names. And name search optimized. Now when a name is set, the control will have a HANDLENAME attribute with the last name set.
- Fixed: LASTFILENAME in IupMatrixEx for the import dialog. It is now also used as the initial FILE attribute.
- Fixed: image transparency in IupItem when using Visual Styles in Windows.
- Fixed: case insensitive search in IupMatrixEx.
- Fixed: old name VISIBLE_ITEMS in IupList on Windows.
- Fixed: SELECTION attribute in IupScintilla.
- Fixed: dropdown list VALUE can now be set to NULL inside DROP_CB in IupMatrix.
- Fixed: AUTOHIDE behavior in IupSplit.
- Fixed: dynamic tab close in IupTabs on GTK.
- Fixed: missing iup.GLSizeBox in Lua.
- Fixed: Lua registration of iup.submenu and iup.user as containers.
- Fixed: iuplua_pushihandle when the control was created in C and it is a container.
- Fixed: dialog must be mapped before IUP_GETPARAM_INIT in IupGetParam.
- Fixed: export data when value contains the separator in IupMatrixEx. Import data when value contains double quotes (") at start and end, and contents may contains the separator.
- Fixed: IMAGEPOSITION in IupFlatButton.
- Fixed: COUNT attribute in IupText on GTK.

### Version 3.16 (15/Sep/2015)

- New: header "iup_plus.h" with the first version of the C++ API.
- New: NOHIDESEL attribute for IupText on Windows. The default is Yes so it changed the default behavior of the control that was hiding the selection when loses focus, now by default the selection is always visible just like the IupList and the IupTree.
- New: TXTHLCOLOR global attribute.
- New: HLCOLOR attribute for IupTree on Windows and Motif (background of selected nodes). The selection color now will not change when the control loses its focus on Windows.
- New: LINEALIGMENTL and ALIGNL:C attributes for IupMatrix.
- New: MARKATTITLE attribute for IupMatrix.
- New: IMAGEAUTOSCALE and IMAGESDPI global attributes, AUTOSCALE attribute for IupImage.
- New: global attributes GL_VERSION, GL_VENDOR and GL_RENDERER, available only after the first call to IupGLMakeCurrent.
- New: iup.GetParamHandle utility function in Lua for IupGetParam parameters.
- New: SHOWDIALOG and SORTLINEINDEXid attributes in IupMatrixEx.
- New: RETRYCANCEL and YESNOCANCEL button configurations for IupMessageDlg.
- New: Improved IupLuaConsole application with a new command line and console output without using standard output and standard input.
- New: DEFAULTBUTTONPADDING global attribute to control the default padding in pre-defined dialogs.
- New: TOGGLEIMAGEON/TOGGLEIMAGEOFF, SORTIMAGEDOWN/SORTIMAGEUP and DROPIMAGE attributes for IupMatrix. Default images improved with a clear design.
- New: TOGGLECENTERED attribute for IupMatrix, to center the toggle and use the cell value in place of TOGGLEVALUEL:C. No text will be drawn.
- New: STATEREFRESH attribute for IupExpander.
- Changed: HLCOLOR attribute that defines an overlay color for the selected cells in IupMatrix. The default is the TXTHLCOLOR global attribute.
- Changed: mouse wheel processing will now occur also when the canvas is not in focus while the cursor is over the canvas in Windows.
- Changed: although callbacks implemented as simple strings to be executed are still valid in IupLua, returns in strings are not accepted anymore.
- Changed: IupFlatButton with TOGGLE=Yes, IupGLToggle, and IupToggle when a child of an IupRadio, and IupZbox immediate children will now automatically receive a handle name.
- Changed: IupImageLib now contains less images in its pre-compiled library, because we increased the image size to 32x32 with 32bpp in Windows. Images will be automatically resized if necessary using the IMAGESTOCKSIZE global attribute, its default value depends on the screen resolution.
- Changed: OPACITY and OPACITYIMAGE IupDialog attributes behavior in Windows so they can be set before map as GTK.
- Changed: Lua pre-compiled binaries are now separated by folders Lua51/Lua52/Lua53.
- Changed: distribution packages are now split according to the Lua version.
- Changed: renamed AXS_AUTOSCALEEQUAL to AXS_SCALEEQUAL in IupPlot. Old name still works. Now it does not depends on automatic scaling anymore.
- Changed: attribute SHOW_TEXT in IupGauge and IupGLProgressBar renamed to SHOWTEXT. EDIT_MODE, FOCUS_CELL renamed to EDITMODE, FOCUSCELL in IupMatrix. VISIBLE_ITEMS renamed to VISIBLEITEMS in IupList. Old names still supported.
- Changed: IupPopup now can turn an already visible dialog into a modal dialog and interrupt processing. A call to IupShowXY for a modal dialog will now update its position.
- Fixed: IupConfigDialogShow behavior when dialog is not resizable. It will also do no adjustments if the dialog is already visible. Better control of the maximize of the first time.
- Fixed: error report in Lua to always include the traceback.
- Fixed: inactive button being activated by mnemonic.
- Fixed: CURSORPOS global attribute set when Taskbar is at left or top in Windows.
- Fixed: RESTORE attribute in IupDeatchBox when old brother is not a child of old parent anymore. Added the possibility of using a different parent with value. Improved the initial new dialog size to use the current size of the child.
- Fixed: BUTTON_CB callback in IupButton on Windows when the dialog is destroyed.
- Fixed: removed luaL_register dependency from Lua >= 5.2 bindings.
- Fixed: MULTILINE attribute in IupMatrix to include vertical scrollbars.
- Fixed: IupToggle natural size when has a check box on Windows for DPI aware applications.
- Fixed: support for Windows 10 in global attributes and in the Manifest file.
- Fixed: support for DPI aware in the Manifest file on Windows. This also solves the problem of blur interfaces when using the system DPI Scaling.
- Fixed: VALUE attribute for IupRadio in Lua.
- Fixed: OPACITYIMAGE attribute in IupDialog on GTK 2.x.
- Fixed: behavior of AXS_AUTOSCALEEQUAL/AXS_SCALEEQUAL in IupPlot when in Zoom.
- Fixed: sort item in context menu not visible when read-only in IupMatrixEx. Sort sign not being erased correctly when SORTCOLUMNid was set.
- Fixed: missing PARAM_CB callback in Lua for IupParamBox.
- Fixed: IupColorDlg and IupFontDlg dialogs in 32 bits on Windows.
- Fixed: SORTCOLUMNCOMPARE_CB callback in IupMatrixEx.
- Fixed: global attribute LANGUAGE when set after the control classes being registered in Iup*Open functions.
- Fixed: coordinates in WHEEL_CB callback in IupCanvas when using multiple monitors on Windows.
- Fixed: interference of resize column and selection in IupMatrix.
- Fixed: finding the letter "M" in IupMatrixEx find dialog.
- Fixed: iup.isprint in Lua.
- Fixed: ICON attribute to be able to use an image from IupImageLib in IupDialog.
- Fixed: BARSIZE when set to 0 in IupSplit. Improved support for AUTOHIDE.
- Fixed: ACTIVE attribute when the element is inside a dialog that is disabled by another dialog popup.

### Version 3.15 (06/Jul/2015)

- New: "iup_class_cbs.hpp" header with macros to help creation of callbacks as methods in C++.
- New: SHOWNOACTIVATE and SHOWMINIMIZENEXT attributes to control the PLACEMENT behavior of the IupDialog in Windows.
- New: global hot key (Alt+Ctrl+Shft+L) to show the current dialog layout in a IupLayoutDialog dialog.
- New: ELAPSEDTIME attribute available inside the ACTION_CB callback of the IupTimer.
- New: Tutorial section in the documentation. It is still under construction but already has several topics completed.
- New: IupFlatButton control that mimics a IupButton but does not have native system decorations.
- New: FGCOLOR display in rectangle when TITLE and IMAGE are both not defined in IupGLButton.
- New: IupConfig support in Lua.
- Changed: the DESTROY_CB callback to be called before the LDESTROY_CB callback, so it can be processed also in Language bindings.
- Changed: the color selection in IupFontDlg on Windows is now hidden by default. To show it must define SHOWCOLOR=Yes attribute. The Script selection since was not being used is now always hidden.
- Changed: improved documentation in PDF, now with table of contents.
- Changed: internal organization in IupLua for better nomenclature.
- Changed: renamed iup.TreeSetDescentsAttributes to iup.TreeSetDescendantsAttributes.
- Fixed: invalid lin,col at EDITION_CB when mode=1 in IupMatrix.
- Fixed: layout update to IupMatrix internal children.
- Fixed: drag&drop of tree nodes in IupTree on Windows. (Thanks to Nodir T.)
- Fixed: IupPlot destroy (affected MingW). (Thanks to Ducan G.)
- Fixed: IupPopup when used for the last visible dialog.
- Fixed: size computation in IupToggle to not include the spacing between the check box and the text, if text is NULL or empty.
- Fixed: TABIMAGE attribute when resetting to NULL in IupTabs.
- Fixed: scrollbars when *AUTOHIDE=Yes in IupCanvas on Windows.
- Fixed: IupExpander animation timing.
- Fixed: FITTOSIZE attribute in IupMatrix to consider the BORDER attribute.

### Version 3.14 (28/Apr/2015)

- New: support for Lua 5.3.
- New: INFOTIP attribute for IupTree on Windows.
- New: OPENCOLOR and HIGHCOLOR attributes for IupExpander to change the title text color in different situations. New TITLEIMAGE* attributes to use a title image instead of a text. New TITLEEXPAND attribute to enable expand/contract action in the title.
- New: ANIMATION attribute for IupExpander to enable animation during open/close.
- New: MULTIVALUECOUNT and MULTIVALUEid attributes for IupFileDlg when MULTIPLEFILES=Yes.
- New: AXS_AUTOSCALEEQUAL and VIEWPORTSQUARE attributes for IupPlot.
- New: CHILDOFFSET attribute for native containers (IupTabs, IupFrame, IupDialog, IupBackgroundBox, IupScrollBox).
- New: CELL attribute in IupMatrix to return the displayed value.
- New: EDITFITVALUE, EDITVALUE, EDITTEXT, EDITALIGN, EDITHIDEONFOCUS attributes for IupMatrix to control editing cell values and focus.
- New: EDITCLICK_CB, EDITRELEASE_CB and EDITMOUSEMOVE_CB callbacks for IupMatrix called when EDITHIDEONFOCUS=NO and editing is on going right before CLICK_CB, RELEASE_CB and MOUSEMOVE_CB callbacks.
- New: CELLNAMES attributes for IupMatrix when using formulas.
- Changed: IupMap will now call IupRefresh when mapping the dialog after all other processing. This affects the MAP_CB callback of the children, that it will be called before the layout is updated, so the children current size will still be 0x0 during MAP_CB.
- Changed: IupExpander internally remodeled to use other IUP elements to compose its handler area. The controls can be accessed by IupGetChild* and then reconfigured if necessary. There are no size limitations for images anymore. Extra buttons are now creation-only.
- Changed: when editing a cell value the caret will now be positioned closest to where the user double clicked in IupMatrix.
- Fixed: visual feedback when interactively moving the title or the legend box in IupPlot.
- Fixed: transparency for images in IupTabs on Windows. (Thanks to Nodir T.)
- Fixed: COPYDATA_CB callback for Unicode support in IupDialog on Windows. (Thanks to Nodir T.)
- Fixed: setting TITLE attribute to NULL in IupPlot.
- Fixed: automatic margin calculation in IupPlot when TITLE is not defined, top margin is automatic and bottom margin is manually set.
- Fixed: Fixed FGCOLOR and FONT, when set before map in IupScintilla.
- Fixed: update of CMARGIN and CGAP attributes when FONT is changed in IupGridBox, IupHbox, and IupVbox.
- Fixed: resize of a IupButton with just a color on GTK.
- Fixed: ACTION callback for IupBackgroundBox in Lua.
- Fixed: ENTERWINDOW_CB/LEAVEWINDOW_CB call order in Windows.
- Fixed: memory leaks in drag&drop processing in Windows. Memory leaks in internal IupImage cache.
- Fixed: Enter and Esc keys behavior in IupList when DROPDOWN=Yes on Windows, while the dropdown list is shown they must simply close the list and do not forward the action to the dialog.
- Fixed: VALUE attribute during VALUECHANGED_CB in IupList when EDITBOX=Yes on Windows and an item is selected with the keyboard.
- Fixed: add new units of an existing quantity in IupMatrixEx.
- Fixed: font parsing when using old invalid names.
- Fixed: range and cell functions inside formulas when reference another cell that also uses formulas in IupMatrix. Recurrence in range and cell functions.
- Fixed: DIRECTORY attribute return value when MULTIPLEFILES=Yes in IupFileDlg on Windows and GTK.
- Fixed: toggle visible state when moving or copying a node in IupTree in Windows.
- Fixed: keys processing in IupMatrixEx that were disabling IupMatrix regular processing.
- Fixed: column resize feedback for IupMatrix when in GTK3.
- Fixed: CLEAR attribute in IupPlot.

### Version 3.13 (04/Feb/2015)

- New: global attribute DEFAULTFONTFACE.
- New: EXPANDVERTICAL and EXPANDHORIZONTAL for IupGLCanvasBox children.
- New: XHIDDEN and YHIDDEN attributes for scrollbar information in IupCanvas.
- New: TIPFORMAT, AXS_*TIPFORMAT, TITLEPOS and DS_USERDATA attributes in IupPlot. New value "XY" for LEGENDPOS attribute. New attribute MENUITEMPROPERTIES and new Properties Dialog. New attributes GRIDMINOR, GRIDMINORCOLOR, GRIDLINEWIDTH and GRIDLINESTYLE. New attributes AXS_*TICKROTATENUMBERANGLE, AXS_*TICKFORMATAUTO and AXS_*TICKFORMATPRECISION. New attributes BACKIMAGE, BACKIMAGE_XMIN, BACKIMAGE_XMAX, BACKIMAGE_YMIN, BACKIMAGE_YMAX.
- New: IupPlotFindSample, IupPlotAddSegment, IupPlotInsertSegment auxiliary functions for IupPlot.
- New: IupPlotSetFormula auxiliary function for IupPlot.
- New: NACTIVE attribute for the IupDialog.
- New: CELL_EDITED attribute set during VALUE_EDIT_CB and VALUECHANGED_CB when the cell was interactively changed in IupMatrix.
- New: IupMatrixSetFormula and IupMatrixSetDynamic auxiliary functions for IupMatrix.
- New: TRANSLATEVALUE_CB callback for IupMatrix.
- New: EDITING state attribute for IupMatrix.
- New: IupParamf and IupParamBox utility functions, exported from IupGetParam internals.
- New: CELLBYTITLE attribute for IupMatrixEx. Affects Go To and Copy To dialogs.
- Changed: IupLua console file selection to include filter "*.lua".
- Changed: IupLayoutDialog context menu to include "Set Focus" and "Blink" items.
- Changed: processing of MENUCONTEXT_CB callback return value to accept IUP_IGNORE in IupMatrixEx.
- Changed: IupPlotInsertPoints, IupPlotInsertStrPoints, IupPlotAddPoints, IupPlotAddStrPoints, renamed to IupPlotInsertSamples, IupPlotInsertStrSamples, IupPlotAddSamples, IupPlotAddStrSamples.
- Changed: SUNKEN attribute in IupFrame is not creation only anymore.
- Changed: MathGL updated to version 2.3.2.
- Changed: Scintilla updated to version 3.5.3.
- Fixed: IupScanf when maximum number of characters allowed is reached by the data in a given variable.
- Fixed: IupGLCanvasBox mouse coordinates processing.
- Fixed: IupGLSubCanvas font processing.
- Fixed: scrollbar programmatic update crash in IupCanvas on Windows.
- Fixed: remove of a hidden tab in IupTabs on Windows.
- Fixed: separator in IupGetParam.
- Fixed: WHEEL_CB in IupCanvas on GTK3.
- Fixed: paste of empty cell in IupMatrixEx.
- Fixed: AXS_XTICKFORMAT and AXS_YTICKFORMAT attributes when defined by the application in IupPlot.
- Fixed: global attribute CURSORPOS when Start Menu is positioned at left or top of the screen in Windows.
- Fixed: IupShow when redisplaying a dialog without changing its position when Start Menu is positioned at left or top of the screen in Windows.
- Fixed: sorting of numeric values in IupMatrixEx.
- Fixed: VALUE attribute inside PARAM_CB callback when user click in auxiliary buttons for Font, Color or File Selection in IupGetParam.

### Version 3.12 (19/Nov/2014)

- New: IupConfig* functions to manage application configuration files.
- New: IupPlot control, that will replace IupPPlot. It eliminates all the limitations and issues, improves interaction a lot and uses double instead of float.
- New: VALUESTRING attribute for IupList.
- New: USERSIZE attribute for all elements.
- New: SHOWCONTEXTMENUL:C attribute for IupMatrixEx.
- New: NUMERICDECIMALSYMBOL attribute for IupMatrixEx.
- New: Dialog to configure TEXTSEPARATOR, NUMERICFORMATPRECISION and NUMERICDECIMALSYMBOL in IupMatrixEx context menu.
- New: FILEDIRECTORY and LASTFILENAME attributes for Export and Import file dialogs in IupMatrixEx context menu.
- New: MENUCONTEXTCLOSE_CB callback in IupMatrixEx.
- New: SKIPLINES and SKIPCOLUMNS option attributes used in COPYFILE export action in IupMatrixEx.
- New: OPACITYIMAGE attribute for IupDialog in Windows and GTK.
- New: VALUECHANGED_CB callback for IupSplit.
- Changed: TEXTSEPARATOR attribute is now used also for all COPY* attributes in IupMatrixEx. Removed TEXTNUMERICLOCALE attribute. TEXTFORMAT renamed to FILEFORMAT.
- Changed: FONTFACE is not read-only anymore.
- Changed: default font typeface changed to Helvetica in IupGLSubCanvas.
- Changed: IMPORTANT - GTK defaults to GTK version 3 starting at Linux 3.13. (Notice no XOR support in CD)
- Fixed: number separator in COPY* and PASTE* attributes in IupMatrixEx.
- Fixed: IupTabs VALUE/VALUEPOS attributes after tabs were dynamically inserted in Windows.
- Fixed: VALUECHANGED_CB in IupScintilla. ZOOM_CB declaration in Lua.
- Fixed: automatic inactive appearance for images with 24bpp in Windows.

### Version 3.11.2 (06/Oct/2014)

- New: TITLEBACKIMAGEINACTIVE attribute for IupGLFrame and IupGLExpander.
- New: BACKIMAGEINACTIVE attribute for IupGLFrame.
- New: BACKIMAGE* attributes for IupGLButton, IupGLVal and IupGLProgress.
- New: FRONTIMAGE* attributes for IupGLButton.
- New: FITTOBACKIMAGE attribute for IupGLButton, IupGLVal and IupGLProgress.
- New: global attribute DEFAULTPRECISION that affects how real values are shown by default in IupGetParam and IupMatrixEx.
- New: attribute EMPTYAS3STATE for IupTree on Windows.
- New: value AREA for DS_MODE attribute in IupPPlot.
- Changed: all images in IupGLControls are now drawn using OpenGL textures instead of glDrawPixels.
- Fixed: image complementary attributes like IMAGEPRESS, IMAGEHIGHLIGHT, IMAGEINACTIVE, and others, in IupGLControls.
- Fixed: BGCOLOR_CB and FGCOLOR_CB callbacks of IupMatrix in Lua when an invalid number of arguments is returned. (Thanks to Alex M.)
- Fixed: parsing of non-numeric values in IupMatrixEx when column has numeric values.
- Fixed: pressed feedback in IupGLToggle when using IMAGEPRESS.
- Fixed: image draw using OpenGL textures in IupGLControls was upside down, and now does not depends on the background color anymore.
- Fixed: IupGLExpander behavior when BARPOSITION is BOTTOM or RIGHT.
- Fixed: IupGLVal interaction when IMAGE is defined.
- Fixed: elements positioning when BORDER=Yes in IupGLControls.
- Fixed: characters processing for the ACTION callback in IupText when they are generated using an AltGr key combination (Ctrl+Alt) on Windows.
- Fixed: Ctrl+A key combination in IupText when AltGr key is used on Windows.
- Fixed: all IupSet*Id functions when the element actually does not support Id based attributes but the application use the function for custom attributes.
- Fixed: scrollbar programmatic update in IupCanvas on Windows.

### Version 3.11.1 (01/Sep/2014)

- New: COMCTL32VER6 global attribute that informs if the Windows common controls are using Visual Styles or not.
- New: SHOWGRIP option to change grip in IupSplit for a double continuous line using LINES value. Also when SHOWGRIP=NO and COLOR is defined the grip area is filled with the color.
- New: IupMglLabel based on IupMglPlot so TeX symbold can be displayed without the need for a plot.
- New: TITLEBACKIMAGE and BACKIMAGE attributes for IupGLFrame. TITLEBACKIMAGE attribute for IupGLExpander.
- New: MOVETOTOP attribute for IupGLFrame and IupGLExpander.
- New: IupGetDouble* and IupSetDouble* functions.
- New: double parameters in IupGetParam. PRECISION attribute to control real values when interactively changed.
- Changed: IMPORTANT - repository migrated from CVS to SVN.
- Fixed: missing iup.ImageFromImImage in Lua.
- Fixed: IupImageFromImImage when flipping bottom-top to top-bottom. (Thanks to Jeremiah N.)
- Fixed: support for global menu in recent Ubuntu systems.
- Fixed: Font support in IupGLControls when UTF8MODE=Yes.
- Fixed: DEFAULTFONT processing. It was affecting FONT inheritance.
- Fixed: CARET attribute in IupScintilla.
- Fixed: IupGLFrame natural size computation.
- Fixed: MOVEABLE attribute in IupGLCanvasBox when moving native based elements like IupText and IupMatrix.
- Fixed: iup.glprogressbar creation in Lua.
- Fixed: improved support for liboverlay-scrollbar in Ubuntu, but SCROLL_CB is limited to IUP_SBPOSV and IUP_SBPOSH codes.
- Fixed: IupDialog layout update when maximizing the window on GTK. Invalid IupFlush removed from IupCanvas layout update on GTK.
- Fixed: DRAWABLE attribute inside FILE_CB callback in IupFileDlg on GTK.
- Fixed: Added compatibility code for GTK 3.10.
- Fixed: IupFrame background color on GTK version 3.x
- Fixed: default values that were dependent on the current locale. DENSITY in IupDial, DX and DY in IupCanvas, STEP and PAGESTEP in IupVal, and several in IupMglPlot.
- Fixed: Management of hidden tabs in IupTabs on Windows.
- Fixed: LINEVALUE attribute return value in IupScintilla. CARET attribute in IupScintilla when "lin" is greater than the last line.
- Fixed: ZORDER attribute for IupGLControls elements.
- Fixed: IupButton and IupToggle mouse over feedback when not using Visual Styles and FLAT=Yes on Windows.

### Version 3.11 (28/Jul/2014)

- New: CD_IUPDBUFFER and CD_IUPDBUFFERRGB drivers in the iupcd library. IMPORTANT: This IUP version depends on CD version 5.8.
- New: IMAGE, IMHIGHLIGHT, IMOPEN, and IMOPENHIGHLIGHT attributes for replacing the arrow, or the arrow and the title of a IupExpander when BARPOSITION=TOP.
- New: EXTRABUTTONS, IMAGEEXTRAid, IMAGEEXTRAPRESSid, IMAGEEXTRAHIGHLIGHTid attributes and EXTRABUTTON_CB callback for IupExpander to handle extra buttons at right when BARPOSITION=TOP.
- New: IupPPlotGetSample and IupPPlotGetSampleStr functions for IupPPlot.
- New: LOADLEXERLIBRARY attribute in IupScintilla.
- New: DRAGCURSOR attribute for the Drag & Drop support.
- New: SWAPBUFFERS_CB callback for IupGLCanvas.
- New: COLORUPDATE_CB callback for IupColorDlg.
- New: HORIZONTALFREE and VERTICALFREE values for the EXPAND attribute. The element will simply expand to the available free space at the container, and it will not affect the container expand.
- New: DEFAULTFONTSTYLE global attribute.
- New: OPENCLOSE_CB callback for IupExpander.
- New: IupGLControls an OpenGL embeddable controls library.
- New: IupScintillaSendMessage function.
- Changed: SEPARATOR attribute behavior in IupLabel will now use the HORIZONTALFREE and VERTICALFREE values for the EXPAND attribute.
- Changed: updated Scintilla version to 3.4.4.
- Changed: all the controls in the additional controls library (matrix, colorbrowser, gauge, dial, etc) and the IupPPlot control now uses the new CD_IUPDBUFFER* drivers.
- Changed: IupMglPlot API replaced "float" by "double". Removed support for TrueType (*.ttf) and OpenType (*.otf) font files. PLANARVALUE and CLOUDCUBES attributea are not supported anymore. AXS_*MIN attributes default changed to -1, to match MathGL default. MathGL updated to version 2.2. IupMglPlotTransformXYZ renamed to IupMglPlotTransformTo. Plor area configured using boolean atributes MARGINLEFT, MARGINRIGHT, MARGINTOP, and MARGINBOTTOM.
- Fixed: SORTSIGN attribute in IupMatrix when set to NO.
- Fixed: first item in single selection IupTree was not showing that it is selected.
- Fixed: IupScrollBox when there is no child.
- Fixed: LISTACTION_CB callback when state=0 in IupMatrixList.
- Fixed: ENTERWINDOW_CB callback for IupLabel on Windows.
- Fixed: BGCOLOR support in IupBackgroundBox.
- Fixed: IupExpander expansion when closed. Alignment of arrow and title when bar size is greater than default.
- Fixed: support for icons with multiple sizes in IupDialog on Windows.
- Fixed: delete all items in IupMatrixList when click the del button on title line.
- Fixed: VALUE attribute of IupList when EDITBOX=YES and the text box is empty on Windows.
- Fixed: MASK attribute processing in IupMatrixList when starting to edit a label.
- Fixed: Ctrl+V key combination to Paste cells starting at the focus cell in IupMatrixList.
- Fixed: IupVal behavior when inside an IupBackgroundBox or IupScrollBox on Windows.
- Fixed: attribute return value in Lua when it was not a string.
- Fixed: IupFill so it can be placed inside a IupGridBox, the behavior will be the same as inside an IupHbox.
- Fixed: FITTOCHILDREN attribute in IupGridBox.
- Fixed: IupPPlotTransformTo missing from DLLs and from Lua.
- Fixed: Ctrl and Shift keys scrolling the IupMatrix when pressed.
- Fixed: SPIN_CB callback in IupText when value was incremented/decremented out of range.
- Fixed: CLIENTSIZE attribute in IupDetachBox, IupSbox, IupSpin and IupSplit. Changed CLIENTSIZE in IupHbox, IupVbox and IupGridBox to use only the Current size.
- Fixed: CLIENTOFFSET attribute in IupBackgroundBox.
- Fixed: K_ANY being called twice for each key in IupScintilla.
- Fixed: COUNT attribute return value in IupText on Windows.
- Fixed: dynamic insert of the first Tab in IupTabs on Windows. Dynamic remove of the last Tab in IupTabs. Management of hidden tabs in IupTabs on Windows.
- Fixed: NAME cache attribute when element is removed.

### Version 3.10.1 (24/Jan/2014)

- New: RESIZEMATRIX_CB callback in IupMatrix.
- New: internal IupMatrix callbacks BUTTON_CB, MOTION_CB and KEYPRESS_CB are now exported to Lua as "MatButtonCb", "MatMotionCb" and "MatKeyPressCb".
- New: AUTOCSELECTION_CB, AUTOCCANCELLED_CB and AUTOCCHARDELETED_CB callbacks in IupScintilla.
- Fixed: key names in IupLua when modifiers are used. (Thanks to kmx)
- Fixed: text with computation in UTF-8 on Windows. (Thanks to kmx)
- Fixed: 3 state check box size in IupTree on Windows when using Classic Style. (Thanks to kmx)
- Fixed: IUP_MOUSEPOS on Windows when the taskbar is at the top, or left of the screen.
- Fixed: TABTITLE return value after tabs are added or removed.
- Fixed: IupBackgroundBox creation in Lua.
- Fixed: map error in IupTabs on GTK.

### Version 3.10 (17/Jan/2014)

- New: DRAGDROPTREE attribute to enable automatic drag&drop between IupTrees in the same application.
- New: DRAGDROPLIST attribute to enable automatic drag&drop between IupLists in the same application.
- New: SHOWCLOSE attribute and TABCLOSE_CB callback for IupTabs to show a close button in each tab.
- New: RIGHTCLICK_CB callback for IupTabs.
- New: TASKBARPROGRESS, TASKBARPROGRESSSTATE and TASKBARPROGRESSVALUE attributes for IupDialog on Windows to show a progress feedback on the taskbar running on Windows 7+.
- New: COPY, SELECTALL, PRINT and ZOOM attributes in IupWebBrowser.
- New: function IupImageFromImImage in the IUP-IM library.
- New: FITTOCHILDREN attribute for IupGridBox.
- New: IupDetachBox container element to allow interactively detach of an element and insert it in a new dialog.
- New: TEXTNUMERICLOCALE attribute for IupMatrixEx to allow a different locale during paste of numeric values.
- New: IupBackgroundBox native container to allow more control of children visibility.
- Changed: "IUP_EditErase" image to use "gtk-delete" definition instead of "gtk-close" in IupImageLib.
- Changed: TABIMAGEn and TABTITLEn attributes in IupTabs to update the respective child attribute.
- Fixed: VALUE_HANDLE attribute in IupZbox was write-only.
- Fixed: missing IupMatrixList Lua binding.
- Fixed: SAVEUNDER attribute in IupDialog on Windows.
- Fixed: IupWebBrowser on GTK.
- Fixed: horizontal frame color in IupMatrix.
- Fixed: IupLoadBuffer.
- Fixed: TIP attribute on Windows when not using Visual Styles.
- Fixed: EXPANDCHILDREN in IupHbox, IupVbox and IupGridBox when children contains an IupFill.
- Fixed: Caps Lock processing on Windows.
- Fixed: COUNT, APPENDITEM, INSERTITEMid and REMOVEITEM in IupMatrixList when EDITABLE=Yes. Drawing of the empty line when there is no other items. Insertion of the empty line when there is less than 2 items in the list.
- Fixed: ACTION callback in IupText when using UTF-8.
- Fixed: SCROLLTO and SCROLLTOPOS attributes in IupText on Windows when FORMATTING=Yes.
- Fixed: support for UTF-8 in IupClipboard on Windows that affected paste in IupText.

### Version 3.9 (22/Nov/2013)

- New: KEYSUNICODE attribute for IupScintilla on Windows.
- New: support for command line processing in the IupView application to convert image files to source code that creates an IupImage.
- New: IupProgressDlg pre-defined dialog.
- New: utility functions IupSetInt*, IupSetFloat*, IupSetRGB* and IupGetRGB*.
- New: support for UTF-8 strings in the Windows and GTK driver using the UTF8MODE global attribute.
- New: ACTION callback for IupExpander.
- New: COLRESIZE_CB callback in IupMatrix.
- New: COPYCOL, COPYLIN, MOVECOL and MOVELIN attributes in IupMatrix.
- New: FRAMETITLEHIGHLIGHT and ALIGNMENTLIN0 attributes in IupMatrix.
- New: TYPEL:C attribute and TYPE_CB callback in IupMatrix that allow to display a color, a progress bar, and an image in a cell.
- New: RESIZEMATRIXCOLOR attribute in IupMatrix to control the resize column feedback color.
- New: TOGGLEVALUE attribute and TOGGLEVALUE_CB callback in IupMatrix to enable a toggle button inside a cell.
- New: control IupMatrixList that shows a list using an IupMatrix.
- New: IupMatrixEx library with an extension package for IupMatrix.
- New: VALUECHANGED_CB callback for IupMatrix.
- New: IupSetLanguagePack, IupGetLanguageString and IupSetLanguageString functions to help in application Internationalization. Strings starting in "_@" will be automatically retrieved from the internal string database.
- New: MASKFAIL_CB callback for IupText and IupList when MASK is used and an invalid text is typed.
- New: Ihandle* parameter for IupGetParam.
- New: attributes REMOVE and CURRENT in IupPPlot now also accepts the DS_NAME as value when setting.
- New: PLOT_COUNT, PLOT_NUMCOL, PLOT_CURRENT, PLOT_INSERT and PLOT_REMOVE attributes for IupPPlot to support multiple plots in the same display area.
- New: PLOTBUTTON_CB and PLOTMOTION_CB calbacks for IupPPlot.
- Changed: preserve of FRAMEVERTCOLOR*, FRAMEHORIZCOLOR*, SORTSIGN*, MASK*, WIDTH*, RASTERWIDTH*, HEIGHT* and RASTERHEIGHT* attributes when lines or columns are added or removed in IupMatrix.
- Changed: all color values in attributes now accepts also the notation "#RRGGBB" in hexadecimal.
- Changed: removed Windows 2000 compatibility.
- Changed: UTF8AUTOCONVERT global attribute renamed to UTF8MODE with inverted meaning. Old name still supported for compatibility.
- Changed: renamed IupStoreAttribute to IupSetStrAttribute, and IupSetStrfAttribute to IupSetStrf, old names kept for compatibility.
- Changed: IupMglPlot attribute ZOOM to not use "," where floating point values are specified, changed to ":".
- Changed: added support for more keys in iupkey.h. New key definitions: K_LSHIFT, K_RSHIFT, K_LCTRL, K_RCTRL, K_LALT, K_RALT, K_NUM, K_SCROLL, K_CAPS and K_diaeresis. Now all GDK and X11 keys are supported, but non defined keys are supported using its hexadecimal value. Modifiers are now a bit value separated from the base key code, which can be obtained using the macro iup_XkeyBase. See the "iupkey.h" file for more definitions. IMPORTANT: any C/C++ source code that uses the "iupkey.h" definitions MUST be recompiled.
- Changed: added support for keyboard selection in IupMatrix.
- Changed: When LIMITEXPAND=Yes in IupMatrix and the scrollbars have *AUTOHIDE=Yes, the maximum size will not include the scrollbars.
- Changed: updated Scintilla version to 3.3.5.
- Changed: STEREO attribute processing in IupGLCanvas to avoid failure during canvas creation. If stereo is not available it will still create a regular OpenGL context.
- Changed: ENTERITEM_CB callback in IupMatrix is now also called when focus is changed because lines or columns were added or removed.
- Fixed: repaint of the IupOleControl that affected the IupWebBrowser on Windows.
- Fixed: NODEREMOVED_CB callback for IupTree, was providing the wrong userdata in some cases.
- Fixed: IupScintilla library build to internally use the Scintilla name space.
- Fixed: K_ANY callback return code processing in IupScintilla on Windows.
- Fixed: VALUE and CHARn attributes returned value in IupScintilla.
- Fixed: IupToggle focus feedback behavior on Windows.
- Fixed: missing IupGridBox register in Lua.
- Fixed: fail to update IupTabs when a child is removed on Windows.
- Fixed: documentation of internal callback parameters format list.
- Fixed: unmap of IupTree, IupText and IupTabs on Windows.
- Fixed: IupScrollBox expand behavior to not depends on children expansion, just like it is not dependent on children size.
- Fixed: focus behavior in IupScrollBox, now CANFOCUS=NO.
- Fixed: LEDC processing of IupSplit controls.
- Fixed: IupGetAttributeHandle not checking at control implementation.
- Fixed: IupExpander layout when closed but has a child that can be expanded.
- Fixed: frame color transparency using BGCOLOR for title cells in IupMatrix.
- Fixed: IupTextConvertPosToLinCol function for IupMatrix.
- Fixed: position of dialog using IupShowXY when using IUP_LEFT and IUP_TOP, and the taskbar is at left or top on Windows.
- Fixed: fixed internal test for known non string attributes that affected IupGetAttributes and iup.GetAttribute in Lua.
- Fixed: clipboard and drag&drop data size on GTK.
- Fixed: MASKFLOAT attribute parsing.
- Fixed: CANFOCUS=NO in IupVal on Windows.
- Fixed: IupWebBrowser when creating and destroying multiple controls on Windows.
- Fixed: IupPPlotPaintTo to update plot sizes.
- Fixed: returned value by SCREENPOSITION/X/Y attributes on Windows when the taskbar is at the top, or left of the screen.
- Fixed: IupScrollBox mouse respond when there is no scrollbars.
- Fixed: Spin was not being redraw when ACTIVE was changed in IupText on Windows.
- Fixed: unmap of IupScintilla.

### Version 3.8 (08/May/2013)

- IMPORTANT: the pre-compiled binaries are compatible only with CD version 5.6.1 pre-compiled binaries.
- New: attribute TOGGLEVISIBLEid for IupTree when SHOWTOGGLE=Yes.
- New: attribute TABVISIBLEid for IupTabs.
- New: IupLink control that shows a clickable URL.
- New: IupGridBox container to arrange elements in a regular grid.
- New: IupScintilla control that shows a source code text editor based on the Scintilla library.
- New: support for IUP_CONTINUE return code and FILE attribute update inside the FILE_CB callback when status=OK in the IupFileDlg dialog.
- New: IupExpander container to interactively control the visibility of a child inside the dialog.
- Changed: GTK stock images now uses the same size as the Windows and Motif images in IupImageLib
- Fixed: line detection on strings using DOS line breaks (\r+\n).
- Fixed: IupScrollBox child expansion when the container is greater than the child natural size.
- Fixed: IupScrollBox binding for Lua.
- Fixed: IupClipboard on Windows was clearing the clipboard contents every time data was copied.
- Fixed: IupWebBrowser for GTK was using an old function call of the internal SDK.
- Fixed: the DIRECTORY attribute was not being updated when a new file filename was selected in IupFileDlg.
- Fixed: in a multi-selection IupTree the selection callbacks were being called with status=0 when a single item was selected. on GTK the callback were also called when a branch were simply expanded or contracted.
- Fixed: toggle processing on Windows when SHOWTOGGLE=Yes in IupTree. Fixed spacing from toggle to image on Windows. Removed support for SHOWTOGGLE=Yes on Motif.
- Fixed: dialog client size computation on Windows when the Win32 API returns an invalid value.
- Fixed: IupScrollBox available space computation.
- Fixed: FGCOLOR and PADDING for IupLabel when used before map on Windows.
- Fixed: BUTTON_CB, ENTERWINDOW_CB and LEAVEWINDOW_CB callbacks for IupLabel on GTK.
- Fixed: underline and strikeout support on GTK.
- Fixed: IupMatrix redraw when selecting lines or columns in a matrix with non scrollable lines or columns.
- Fixed: BGCOLOR return value in IupButton on Windows.
- Fixed: "Load Image Lib" feature in IupView when using GTK.
- Fixed: ZORDER attribute on Motif.

### Version 3.7 (29/Nov/2012)

- New: support for GTK 3. The pre-compiled binaries still use GTK 2. See the GTK driver documentation.
- New: layout composition element IupScrollBox.
- New: SHOWDRAGDROP attribute and DRAGDROP_CB callback to support internal drag and drop of items in IupList.
- New: support for global callbacks in Lua.
- New: ADDFORMAT, FORMAT, FORMATAVAILABLE, FORMATDATA and FORMATDATASIZE attributes for IupClipboard.
- New: TOGGLE option for VALUE attribute in IupToggle.
- Fixed: IMAGEid attribute update in IupList.
- Fixed: IupGetParam callback return value parsing in Lua.
- Fixed: IupCanvas size when scrollbars are hidden on Motif.
- Fixed: IupLabel missing drag&drop support.
- Fixed: IupMatrix on GTK when editing a cell and Esc was pressed.
- Fixed: the return value for POSX and POSY in IupCanvas when the respective scrollbar is hidden or disabled.
- Fixed: detection of the minimum size of a child inside IupSplit.
- Fixed: IupCanvas RESIZE_CB was called recursively when DX or DY attributes were updated during the callback and XAUTOHIDE=Yes or YAUTOHIDE=Yes.
- Fixed: maintain LASTADDNODE id consistent when one or more nodes are removes in IupTree.
- Fixed: key processing in IupText and IupList on Motif to avoid Alt, Ctrl and Sys keys to generate text input.
- Fixed: IupLabel mnemonic parsing on GTK.
- Fixed: Mnemonic processing on Windows.
- Fixed: IupButton visual feedback when the user double click the button on Windows.
- Fixed: IupToggle response when the user double click the button on Windows.
- Fixed: natural size computation in IupMatrix when BORDER=Yes.

### Version 3.6 (23/June/2012)

- New: Drag&Drop attributes and callbacks for IupDialog, IupCanvas, IupText, IupList, and IupTree. Old DRAGDROP attribute renamed to DROPFILESTARGET, old still works for compatibility.
- New: CELLBGCOLORL:C and CELLFGCOLORL:C attributes for IupMatrix.
- New: MAXSTR attribute for a string parameter in IupGetParam. Titles can now contain the '%' character by using two characters "%%". New definitions for the callback parameters when index is negative.
- New: SHOWTOGGLE attribute and TOGGLEVALUE_CB callback for IupTree.
- New: DS_COUNT attribute in IupPPlot.
- New: IupMglPlot element using almost the same interface (attributes and callbacks) as IupPPlot but with support for 3D coordinates and many other plot options.
- New: NATURALSIZE attribute for all elements.
- New: support for images in IupList items using the SHOWIMAGE and IMAGEid attributes.
- New: ARBCONTEXT, CONTEXTVERSION, CONTEXTFLAGS and CONTEXTPROFILE attributes for IupGLCanvas.
- New: ScriptBasic Binding by John Spikowski at the SB Forum.
- New: FILTER status in FILE_CB callback for IupFileDlg on Windows.
- New: TOUCH attribute for IupDialog on Windows.
- New: LASTERROR global attribute on Windows.
- New: parameter in LEDC "-s" to declare image data as static.
- New: TRAYTIPBALLOON, TRAYTIPBALLOONDELAY, TRAYTIPBALLOONTITLE and TRAYTIPBALLOONTITLEICON IupDialog attributes on Windows. And TRAYTIPMARKUP on GTK.
- New: global attribute IUPLUA_THREADED so IUP can be used inside coroutines in Lua.
- New: callback MENUDROP_CB for IupMatrix to show a popup menu instead of a dropdown list.
- New: support for AZERTY keyboards on Windows.
- New: CLEARVALUE and CLEARATTRIB attributes for IupMatrix.
- New: NONE option for the EDITNEXT attribute in IupMatrix.
- Changed: optimized IupImage internal cache.
- Changed: removed Lua bytecode usage in pre-compiled binaries. Now IUP pre-compiled binaries are compatible with LuaJIT.
- Changed: the MINSIZE and MAXSIZE attributes for IupDialog now also behaves as the other elements.
- Changed: added internal string limitations for IupGetParam, IupGetFile and IupGetText.
- Changed: ADDLEAFid and ADDBRANCHid attributes in IupTree now accepts -1 to insert a node before the root node.
- Changed: improved performance of APPENDITEM and INSERTITEM in IupList on Windows.
- Changed: improved mouse edition interaction in IupMatrix. Now the edition is started only when left button is released after a double click. Also if DROPCHECK_CB is defined and return IUP_DEFAULT for a cell, to show the dropdown list or the new popup menu the user can simply do a single click in the drop feedback area of that cell.
- Changed: REDRAW attribute interval in IupMatrix now uses "-" for separator as other attributes. Old separator is still accepted.
- Changed: if TEXT or IMAGE attributes set to NULL in IupClipboard clears the clipboard data.
- Changed: horizontal alignment for text with multiple lines in IupButton now will also align each line on Windows.
- Undo: removed "P" from IupPPlot additional API functions, because they will be used also for other plot controls. Old names still exists for compatibility. The new functions need more flexibility and they must co-exist.
- Fixed: NUMCOL_NOSCROLL and NUMLIN_NOSCROLL attributes for the IupMatrix when scrolling with the scrollbar arrows up to the top or to the left.
- Fixed: IupMatrix MASKL:C attribute when set at some cells and not set at others, after editing the cell where it is set affected the other cells.
- Fixed: iup.tabs and iup.cbox were not allowing the creation of a control with no children in Lua.
- Fixed: secondary dialog for overwrite confirmation in IupFileDlg on Motif.
- Fixed: iup.normalizer when constructor receive children as parameters in Lua.
- Fixed: DIALOGFRAME attribute in IupDialog was handled only at map, affecting RESIZE processing before mapping.
- Fixed: SCROLLTO and SCROLLTOPOS in IupText on Windows.
- Fixed: ORIENTATION attribute in IupSplit were case sensitive.
- Fixed: DIRECTION attribute in IupSbox were case sensitive.
- Fixed: Enter key processing in IupText on Windows when MULTILINE=NO.
- Fixed: 'u' option processing (button names) of IupGetParam in Lua.
- Fixed: TIP attribute in IupProgressBar on Motif.
- Fixed: TIP attribute in IupVal on Windows.
- Fixed: TABTYPE was setting MULTILINE=NO when TOP or BOTTOM where set on Windows.
- Fixed: implemented missing iup.GetChild in Lua.
- Fixed: some images from IupImageLibOpen when using GTK.
- Fixed: invalid memory access in CURSOR attribute when name is too large.
- Fixed: BGCOLOR_CB and FGCOLOR_CB callbacks in Lua, where not properly cleaning the stack. (Thanks to zcs)
- Fixed: missing ih:destroy() method in Lua for some elements.
- Fixed: invalid memory access in X and Y attributes in IupDialog on the GTK driver when the dialog in hidden.
- Fixed: CARET attribute in IupText on Windows when the caret is located outside the visible area.
- Fixed: native destruction of IupMenu when inside a submenu on Windows.
- Fixed: image data end value in LEDC.
- Fixed: IupNormalizer parameter checking in LEDC.
- Fixed: invalid ampersand ('&') processing in TIPS on Windows. Improved ampersand processing on GTK.
- Fixed: VALUE=OFF display update in IupToggle on GTK when using an image in the toggle.
- Fixed: dialog layout now considers the global menu usage on the new Ubuntu Unity desktop.
- Fixed: SELECTION_CB in IupTree not being called for the last unselected node in a multi-selection tree, when that node is re-selected. on Windows that node was also not being selected.
- Fixed: on GTK changing focus was also changing the selection in a multiple selection IupTree.
- Fixed: invalid initialization of IupList when GTK version is older than 2.12.
- Fixed: redraw when FGCOLOR is set in IupText on Windows.
- Fixed: improved memory usage in variable parameter attribute functions.
- Fixed: MDI dialogs and menu behavior on Windows.

### Version 3.5 (26/Apr/2011)

- New: attributes COUNT, LINECOUNT and LINEVALUE for IupText.
- New: dialog IupElementPropertiesDialog used internally at IupLayoutDialog now can be used by applications to inspect any element.
- New: common callback TIPS_CB called before a tooltip is displayed.
- New: CELLOFFSETL:C and CELLSIZEL:C attributes for IupMatrix.
- New: LIMITEXPAND attribute for IupMatrix.
- New: IUP_Webcam image in the IupImageLib.
- New: global attribute SHOWMENUIMAGES on GTK, with default value "Yes".
- New: NUMCOL_NOSCROLL and NUMLIN_NOSCROLL attributes for the IupMatrix that add more non scrollable cells.
- New: ORIGINOFFSET attribute for IupMatrix.
- Changed: TIPVISIBLE will now return the current visible state of the tip window.
- Changed: IupConvertXYToPos will now work for IupMatrix also.
- Changed: optimized redrawing of IupCells when SCROLLING_CB is not defined.
- Changed: removed "P" from IupPPlot additional API functions, because they will be used also for other plot controls. Old names still exists for compatibility.
- Changed: FRAMEVERTCOLOR*:C and FRAMEHORIZCOLORL:* are now also accepted in IupMatrix.
- Fixed: function iuplua_pushihandle when the element was not created in Lua, that cause a crash when destroying the Lua element.
- Fixed: destruction of the spin in a IupText element on Windows.
- Fixed: SELECTION and SELECTIONPOS attributes in IupText on Motif.
- Fixed: VALUE attribute returned in IupFontDlg on Motif.
- Fixed: DRAWSIZE attribute in IupCanvas on GTK when the canvas is hidden.
- Fixed: IupColorBrowser documentation was corrupted.
- Fixed: ACTION_CB callback not being called in IupMatrix when editing the cell and a non character key was pressed.
- Fixed: IUP_IGNORE is now processed in SPIN_CB in IupText on GTK.
- Fixed: VALUECHANGED_CB callback being called too many times in IupText on Windows and GTK.
- Fixed: the old BUTTON_RELEASE_CB callback in IupVal on GTK not being called.
- Fixed: multiline text size computation on Windows and Motif when the last line is empty.
- Fixed: VALUE* attributes in IupTabs on Motif when the new value is equal to the current value.
- Fixed: Ctrl+V, Ctrl+C, Ctrl+X and Ctrl+A key strokes were being inserted in the text in IupText on Motif.
- Fixed: CLIPBOARD attribute in IupText and IupList on Motif.
- Fixed: LEDC tool for IupImageRGB and IupImageRGBA.
- Fixed: TIP attribute in IupTree on Windows.
- Fixed: balloon tip attributes names to TIPBALLOON, TIPBALLOONTITLE and TIPBALLOONTITLEICON on Windows.
- Fixed: functions IupPPlotInsertStrPoints and IupPPlotInsertPoints.
- Fixed: invalid editing when using clipboard in IupText on Motif when READONLY=Yes.
- Fixed: invalid return value of READONLY attribute in IupText on Motif.

### Version 3.4 (15/Feb/2011)

- New: function IupClassMatch.
- New: functions IupPPlotInsertStrPoints, IupPPlotInsertPoints, IupPPlotAddPoints and IupPPlotAddStrPoints for IupPPlot to add an array of samples at once.
- New: common attribute SCREENPOSITION that returs the X and Y attributes at once.
- New: ACTIVEWINDOW attribute for IupDialog on Windows and GTK.
- New: EDITNEXT attribute for IupMatrix to control the next cell after editing.
- New: FITTOTEXT action attribute, FITMAXHEIGHT and FITMAXWIDTH attributes in IupMatrix.
- New: INPUTCALLBACKS global attribute and GLOBALKEYPRESS_CB, GLOBALMOTION_CB, GLOBALBUTTON_CB and GLOBALWHEEL_CB global callbacks.
- New: IupRecordInput and IupPlayInput functions to record and play back mouse and keyboard interaction. (play partially working)
- New: VALUEMASKED attribute for IupText.
- New: SYSTEMLOCALE global attribute.
- Changed: removed compatibility with old bc55, gcc3 and mingw3 compilers on Windows. Depending on the Cygwin installation gcc3 may still works.
- Changed: improved internal class inheritance so iupClassNew can use iupRegisterFindClass to get its parent.
- Changed: NAVIGATE_CB callback in IupWebBrowser to process the return value. If IUP_IGNORE is returned navigation is canceled.
- Changed: improved compatibility with GTK 3.0.
- Changed: improved memory management in IupLua using the new LDESTROY_CB callback.
- Fixed: removed call to cdCanvasFlush when IupPPlotPaintTo is used.
- Fixed: FILTER and EXTFILTER attributes of IupFileDlg on GTK when more than one pattern is specified for the same filter ("*.jpg;*.bmp").
- Fixed: RESIZE=NO was incorrectly forcing MINBOX=NO for IupDialog on GTK.
- Fixed: compatibility with GTK 2.22.
- Fixed: padding warning on GTK when using IupButton with IMPRESS.
- Fixed: X and Y attributes in the GTK driver for all controls. X and Y attributes in the Windows and Motif drivers for the IupDialog.
- Fixed: IupInsert when adding the first element of a container.
- Fixed: set attribute in the properties dialog of the IupLayoutDialog.
- Fixed: behavior of BGCOLOR, GETFOCUS_CB, KILLFOCUS_CB, and K_ANY for IupList when DROPDOWN=Yes on GTK.
- Fixed: parameters "o" and "n" in iup.GetParam when used in Lua.
- Fixed: added support for IupSplit, IupNormalizer and IupWebBrowser in the ledc tool.
- Fixed: support for WIDTH*, HEIGHT*, RASTERWIDTH* and RASTERHEIGHT* attributes of IupMatrix when the IupSetAttributeId functions are used.
- Fixed: FITTOSIZE attribute in IupMatrix when title column size is defined by WIDTH0 or RASTERWIDTH0 to be 0.
- Fixed: WID get attribute in IupLua on Windows.
- Fixed: added missing iup.GetNativeHandleImage and iup.GetImageNativeHandle binding in IupLua.
- Fixed: line end converting when FORMATTING=Yes in IupText on Windows.
- Fixed: feedback when opening/closing branches in IupTree on Windows when SHOWDRAGDROP=YES.
- Fixed: DRAW_CB callback in IupCells when using the last parameter canvas.
- Fixed: cell value when editing was stared with a character not valid by the current MASK in IupMatrix.

### Version 3.3 (release2) (18/Nov/2010)

We identified some limitations and problems with the new IupWebBrowser control, so we re-released some 3.3 packages to include an updated version of it.

- New: HTML attribute in IupWebBrowser to load a string. New COMPLETED_CB and ERROR_CB callbacks. New STATUS attribute.
- Changed: removed reason parameter from NAVIGATE_CB callback in IupWebBrowser. VALUE attribute will load always on the top frame.
- Fixed: VALUE attribute of IupWebBrowser was write only on Windows. Memory allocation that affected NAVIGATE_CB and NEWWINDOW_CB on Windows. Added missing Lua binding pre-compiled libraries.

### Version 3.3 (09/Nov/2010)

- New: IupWebBrowser control using an embedded Internet Explorer on Windows, and Webkit in Linux.
- New: Perl binding for IUP by Kmx at GitHub.
- New: global attribute MOUSEBUTTON to send button press and button release messages.
- New: control IupTuioClient that connects to a TUIO server and process multi-touch messages.
- New: support for native multi-touch events in IupCanvas on Window 7. New TOUCH_CB and MULTITOUCH_CB callbacks. New TOUCH attribute.
- New: function IupRefreshChildren to update the layout locally at children only.
- New: IGNORE value for the FLOATING attribute.
- New: guide for building IUP, CD and IM in Linux on the documentation. Scripts for installation of the precompiled binaries or build binaries in the system.
- New: CLIENTOFFSET attribute for all containers.
- New: IupLayoutDialog pre-defined dialog to visually edit the layout of another dialog in run time.
- New: FLAT attribute for IupToggle when IMAGE is defined.
- New: AUTOREDRAW attribute for IupTree and IupList so redraw can be disabled on Windows.
- New: functions IupCopyClassAttributes, IupGetClassCallbacks and IupGetAllClasses.
- New: TABCHANGEPOS_CB callback in IupTabs.
- New: functions Iup*AttributeId to get and set attributes that need an ID. These functions are faster than the traditional functions because they do not need to parse the attribute name string and the application does not need to concatenate the attribute name with the id. The IupMat*Attribute functions also became faster than the traditional functions.
- New: parameters for IupGetParam, "o" to display the list in an array of toggles inside a radio, and "n" to select a font, similar to the "c" parameter that selects a color.
- New: DROPEQUALDRAG attribute for IupTree.
- New: IupFontDlg on Motif.
- New: FITTOSIZE action attribute in IupMatrix.
- New: callbacks BUTTON_CB, DROPFILES_CB, ENTERWINDOW_CB and LEAVEWINDOW_CB for IupLabel.
- New: the IupLua Console application now shows Lua code with syntax highlighting.
- Changed: MARQUEE attribute support in IupProgressBar on GTK and Motif now works just like on Windows.
- Changed: SHOWRENAME in IupTree can now be changed after map.
- Changed: Removed CLIENTSIZE1 and CLIENTSIZE2 from IupSplit and added CLIENTSIZE.
- Changed: TYPE attribute renamed to ORIENTATION in IupVal and IupDial. Old name still works.
- Changed: DIRECTION attribute renamed to ORIENTATION in IupSplit. Old name still works.
- Changed: removed FOCUSONCLICK from IupButton. The old name will set CANFOCUS.
- Changed: now when IMPRESS is defined along with IMAGE, and TITLE is not defined, then the borders will not be shown neither computed. The buttons with this attribute are now smaller than in previous versions.
- Changed: IupReparent to receive one more parameter to be used as a reference child.
- Changed: IupSpinbox, IupSplit, IupSbox now can be dynamically constructed with IupAppend/IupInsert.
- Changed: standard SIZE and RASTERSIZE format can also be used in IupHbox, IupVbox and IupFill.
- Changed: now IupSaveClassAttributes and IupCopyClassAttributes will save also id dependent attributes.
- Changed: Patch applied. Trying to improve the ADDFORMATTAG behavior in order to avoid scrolling physically and destroying the selection. Adds the concept of BULK format tags. The SELECTION and SELECTIONPOS attributes of the format tag will NOT change the IupText attributes anymore. Contribution of the Indentation library that adds syntax highlighting to a Lua code text. (Thanks to Nicolas N.)
- Changed: removed FINDUSERDATA attribute from IupTree, use IupTreeGetId always.
- Changed: removed images larger than 48x48 (inclusive) from the pre-compiled libraries of the IupImgLib, reducing its size and allowing more applications to use the pre-compiled binaries. The images are still available in the source code.
- Fixed: callback not called in IupGetParam when a file name or a color string are selected by the extra dialog button.
- Fixed: LEDC to correctly include the necessary headers.
- Fixed: FRAMEVERTCOLORL:C attribute of IupMatrix for cell with col=0 or lin=0.
- Fixed: avoid double calls to ACTION in IupButton on Windows when pressing enter and a dialog is displayed.
- Fixed: the cleaner syntax feature for separator creation in Lua.
- Fixed: returned value in RASTERSIZE for the IupDialog on GTK and Motif.
- Fixed: missing IupSetCallbacks export for "iup.dll".
- Fixed: IupFileDlg on Motif when MULTIPLEFILES=Yes and FILE_CB is not defined.
- Fixed: natural height computation for IupList on Windows when DROPDOWN=Yes.
- Fixed: ACTION callback called an extra time when FOCUSONCLICK=NO and user double click in IupButton on Windows.
- Fixed: TABTITLEn attribute return value of IupTabs when TABTITLE was set at a child.
- Fixed: SCREENSIZE global attribute on GTK when using multiple monitors.
- Fixed: MARKEDid attribute in IupTree on Windows when MARKMODE=SINGLE, was not changing the focus node.
- Fixed: line end converting when FORMATTING=Yes in IupText on Windows. (Thanks to Nicolas N.)
- Fixed: IupMessageDlg modality on Windows, when PARENTDLG is not specified then it will be modal relative to all application dialogs.
- Fixed: mnemonic support for TABTITLE on GTK and Motif.
- Fixed: drag&drop, move and copy of nodes in IupTree on GTK.
- Fixed: mapping of standard font names to Pango names on GTK.
- Fixed: invalid current cell in IupMatrix after adding lines or column to a matrix that had 0 lines or 0 columns.
- Fixed: IupSetFocus was not working on GTK if the dialog does not has the focus.
- Fixed: RESIZE_CB callback in IupCanvas not being called after the canvas is mapped on GTK.
- Fixed: removed Scrollbar warning when creating a multiline IupText on Motif.
- Fixed: FONT handling in IupText on Windows when FORMATTING=Yes.
- Fixed: Enter key processing when editing a IupMatrix cell and IUP_IGNORE is returned in EDITION_CB, to avoid propagating that key press to the dialog.
- Fixed: IupZbox VALUE management when the zbox itself is not visible.
- Fixed: IupSplit when AUTOHIDE=Yes.
- Fixed: an invalid focus cell in IupMatrix could occur after NUMLIN or NUMCOL was changed to smaller values.
- Fixed: invalid call to ACTION callback of a IupToggle when inside a radio and VALUE is set.

### Version 3.2 (26/June/2010)

- New: function IupResetAttribute.
- New: MINMAX attribute for IupSplit.
- New: global attribute SINGLEINSTANCE so the application can restrict the number of its instances on Windows. COPYDATA_CB callback for IupDialog on Windows to receive the command line of the secondary instances when SINGLEINSTANCE is used.
- New: attributes WMFAVAILABLE, EMFAVAILABLE, SAVEWMF and SAVEEMF for IupClipboard on Windows.
- Changed: some Lua parameters that use "number" to "integer".
- Changed: replaced old "arg" usage for "..." to improve better compatibility with LuaJIT. (Thanks to J.-F. Cap.)
- Changed: IupSaveClassAttributes to not save values that are equal to the default values.
- Changed: IupFileDlg behavior on Motif to avoid auto resize when a directory is changed.
- Changed: C function iuplua_dofile will now check for the IUPLUA_DIR environment variable when file could not be opened.
- Changed: control of LOHs inclusion moved from the source code to the makefile.
- Changed: removed compatibility with require"iuplua51", now LuaBinaries must be used or LUA_CPATH must be set.
- Changed: added compatibility with Lua 5.2.
- Changed: global variable SYSTEM in Mac OS X, renamed from Darwin to MacOS.
- Fixed: the cleaner syntax feature for menu creation in Lua.
- Fixed: stack overflow when "MARKL:C" is set inside MARKEDIT_CB because MARK_CB is not defined in IupMatrix.
- Fixed: iup.TreeSetUserId error in Lua.
- Fixed: IupView executable in Win64.
- Fixed: RIGHTCLICK_CB called twice when IupTree is inside two IupTabs on Windows.
- Fixed: IupLoopStep on Windows to process the IDLE callback.
- Fixed: natural size of IupText and IupMatrix when SCROLLBAR is VERTICAL or HORIZONTAL only.
- Fixed: IupSplit were not considering MINSIZE and MAXSIZE.
- Fixed: EXPANDWEIGHT implementation.
- Fixed: MARK=CLEARALL in IupTree on Windows. DELNODE=MARKED in IupTree on all drivers, so the node 0 can also be removed.
- Fixed: return value of SIZE and RASTERSIZE of the IupDialog when reset to NULL after the dialog was mapped.
- Fixed: a right click in a node in IupTree on Windows was causing an invalid redraw of the selected node.
- Fixed: parameter indexing when using the new button names parameter in IupGetParam.

### Version 3.1 (22/Apr/2010)

- New: MULTIUNSELECTION_CB callback in IupTree. MARKEDNODES attribute in IupTree.
- New: EXPANDWEIGHT attribute for children of IupVbox and IupHbox.
- New: HIDDENTEXTMARKS attribute in IupMatrix. ALIGNMENT attribute for all cells in IupMatrix, used when ALIGNMENTc is not defined.
- New: IupSplit control, similar to IupSbox but with two children.
- New: option "u" in IupGetParam to redefine the OK and Cancel buttons names and add a Help button.
- New: ADDROOT attribute in IupTree, its default is Yes. The first node now can be deleted and can have other nodes at depth=0. New DELNODE=ALL value that remove all nodes.
- New: native driver for MacOSX under construction. Help needed! (Thanks to Heesob P.)
- Changed: INSERTITEMn attribute in IupList now allows to add an item after the last item using n=count+1.
- Changed: removed IupMessage from error handling in IUP-IM utilities. Now a global attribute "IUPIM_LASTERROR" is set instead.
- Changed: NUMCOL_VISIBLE and NUMLIN_VISIBLE attributes can now be greater than the actual number of columns/lines, so room will be reserved for adding new columns/lines without the need to resize the matrix.
- Changed: IupTree internal optimization for IupTreeSetUserId, IupTreeGetId and IupTreeGetUserId.
- Changed: removed AUTODRAGDROP attribute from IupTree on GTK.
- Changed: added support for multiple file selection in IupFileDlg on Motif.
- Changed: Simplify IupLua implementation. More similar to a regular binding implementation like CDLua and IMLua.
- Changed: removed old controls IupTabs and IupVal kept for compatibility in the IupControls libraries. The new IupTabs and IupVal in the main library must be used from now on.
- Fixed: optional creation parameter of IupSubmenu, IupSbox, IupFrame, IupRadio, IupVal and IupDial in Lua.
- Fixed: IupSbox handler feedback when MAXSIZE or MINSIZE is used.
- Fixed: color value in IupGetParam after the color browser dialog canceled editing.
- Fixed: improved compatibility in IupOleControl so it can be compiled with gcc from Cygwin.
- Fixed: display update when changing IMAGE attribute in IupLabel on Windows. Display update when changing FGCOLOR and ALIGNMENT attributes in IupToggle on Windows.
- Fixed: default image update in IupTree on Motif.
- Fixed: scrollbar position in IupCanvas on Windows after dragging the thumb when it is released.
- Fixed: NUMCOL_VISIBLE and NUMLIN_VISIBLE default value in IupMatrix.
- Fixed: IupMatrix scrolling can now position cells in intermediate positions. When using the scrollbar button still scrolls in cell steps, when dragging the scrollbar can freely position the cells. This fixes the problem of the last column or line being incomplete visible.
- Fixed: vertical frame drawing of a cell when using FRAMEVERTCOLORL:C equals to the background color. FRAMEVERTCOLORL:C and FRAMEHORIZCOLORL:C can now use "BGCOLOR" as value to not draw the frame line.
- Fixed: added missing exports in the main DLL for IupGetInt2 and IupGetIntInt.
- Fixed: object position in IupOleControl. New sample using LuaCOM for callbacks. (Thanks to Kommit)
- Fixed: background color for images in IupTabs and IupTree when not using visual styles on Windows.
- Fixed: integer input mask when limited to min-max in IupGetParam.
- Fixed: invalid memory access on multiple selection callback management in IupList.
- Fixed: compatibility code for deprecated functions on GTK 2.20.
- Fixed: FILE_CB callback file parameter in IupFileDlg when multiple files are selected on Windows.
- Fixed: RENAME_CB callback being called when user cancel renaming in IupTree on Windows. BRANCHOPEN_CB or BRANCHCLOSE_CB being called when STATEid is set in IupTree on GTK and on Motif.
- Fixed: invalid memory access when saving DIRECTORY in a multiple selection IupFileDlg on GTK.
- Fixed: dropdown cell editing in IupMatrix on Motif.
- Fixed: invalid memory access in hash table module when removing an attribute.

### Version 3.0.1 (14/Mar/2010) (Internal)

- New: TOTALCHILDCOUNTid and LASTADDNODE attributes in IupTree, so you can compute or retrieve the id of the node created by an INSERT operation.
- New: common callback DESTROY_CB.
- Changed: propagation of attributes will be ignored at a child where the attribute is marked as non inheritable.
- Changed: double click sequence of events on GTK to match the sequences on Windows and Motif.
- Changed: when IMAGE is defined for a IupButton, TITLE will be also considered during map if not NULL and not empty. This will allow buttons with images created in LED to continue to use "" to define their titles.
- Changed: When the DIRECTORY attribute of IupFileDlg is consulted after the dialog is closed and the user pressed the OK button, it will contain the directory of the selected file.
- Changed: IupTree internal optimization to match ids to/from native nodes. SHOWRENAME_CB callback return code to accept IUP_IGNORE. The NODEREMOVED_CB callback now only receive the node userdata.
- Fixed: IupGetParam param parsing of %f and %c in Lua.
- Fixed: IupTreeUtil contributed functions.
- Fixed: AXS_YREVERSE attribute in IupPPlot.
- Fixed: size of a node in IupTree on Windows when TITLEFONT is set.
- Fixed: LEGENDPOS attribute in IupPPlot.
- Fixed: invalid call to SELECTION_CB callback in IupTree on Windows when MARKMODE=MULTIPLE and the user pressed the Ctrl key to select an item. Missing call to SELECTION_CB on GTK and Motif when user unselect multiple nodes at once. Invalid change of the selection when focus is changed in IupTree on Windows Vista/7 when not using visual styles. on GTK and Motif children of not expanded nodes were not being selected when multiple nodes were selected in one operation.
- Fixed: interpretation of comments inside elements declaration in LED.
- Fixed: invalid memory access in IupClose when using LED.
- Fixed: selection was not hiding in IupText when the control loses its focus on Windows when MULTILINE=NO.
- Fixed: MARKMODE in IupTree, NC in IupText and IupList, PADDING in IupLabel, IupButton, IupToggle, IupText and IupTabs, if they were set only before map.

### Version 3.0 (26/Jan/2010)

- New: added support for MacOSX using GTK.
- New: function IupLoopStepWait.
- New: functions iup.TreeSetNodeAttributes, iup.TreeSetAncestorsAttributes and iup.TreeSetDescentsAttributes for IupTree in Lua. (Thanks to Tomas G.)
- Changed: iup.TreeSetValue renamed to iup.TreeAddNodes. Old name also works.
- Fixed: IupList with DROPDOWN=Yes and the last item is removed.
- Fixed: dynamic BGCOLOR change on Windows for IupText, IupList, IupVal and IupTabs.
- Fixed: duplicate call to TABCHANGE_CB in IupTabs on Windows when a Tab is inside another Tab.
- Fixed: IUP_IGNORE support in IupText on Windows for the K_ANY callback.
- Fixed: focus management when dialog gets back the focus and must redirect it to the last child with focus, on Windows.
- Fixed: button press feedback when FOCUSONCLICK=NO in IupButton on Windows XP.
- Fixed: title bar display in IupDialog on GTK when only TITLE=NULL, but MENUBOX is still YES.
- Fixed: default value for VALUE in IupFontDlg.
- Fixed: background color of edit box in IupTree on Windows when not using Visual Styles.
- Fixed: CARET attribute in IupText on Windows when line is greater than the last line.
- Fixed: excess of motion_cb events in IupCanvas on GTK when in UNIX.
- Fixed: CMARGIN attribute in IupVbox and IupHbox.
- Fixed: invalid memory access in NODEREMOVED_CB callback processing of IupTree on Windows.
- Fixed: VALUE attribute in IupTree when MARKMODE=SINGLE, on Windows was not unselecting the previous node, on GTK if set during the SELECTION_CB was aborting the next call to the callback. on GTK and Motif was also not showing the node if inside a collapsed branch.

### Version 3.0 RC 4a (18/Dec/2009)

- Fixed: VISIBLE attribute management. IupZbox now will respect if a child has a VISIBLE attribute set, and it will not change it. IupTabs now does not depends on the VISIBLE attribute anymore.
- Fixed: VALUE attribute return in IupItem on GTK.

### Version 3.0 RC 4 (14/Dec/2009)

- New: NMARGIN and NGAP non-inheritable attributes for IupHbox and IupVbox.
- New: "OTHER" status code for FILE_CB when selecting an invalid file name or a directory in IupFileDlg.
- New: DLL_HINSTANCE global attribute on Windows.
- Changed: Added a workaround for TITLEFONTid for IupTree when changing only the Bold style on Windows.
- Changed: the RENAMENODE_CB callback in IupTree is not supported anymore.
- Changed: improved compatibility of IupFileDlg when DIALOGTYPE=DIR and CoInitializeEx was initialized with COINIT_MULTITHREADED prior to IupOpen on Windows.
- Changed: IupFrame can now has a color background when not using TITLE, and BGCOLOR is set before map.
- Fixed: memory leak in IupPPlot.
- Fixed: invalid memory access in set ALIGNMENT attribute for IupLabel, IupButton and IupToggle, and in set MARK for IupTree.
- Fixed: invalid layout computation when using the old IupSpin element.
- Fixed: STATE attribute for IupTree on Windows when branch has no child.
- Fixed: invalid redraw of some controls when dialog is resized on Windows.
- Fixed: invalid memory access for SYSTEMVERSION global attribute in Linux. (Thanks to David G.)
- Fixed: missing convertion to UTF-8 in IupButton when handling TITLE at map in the GTK driver.
- Fixed: image branch update when branch STATE is changed in IupTree on Windows.
- Fixed: SHOWRENAME_CB callback when renaming is started clicking twice in IupTree.
- Fixed: invalid limit check in VALUE attribute of IupList in the GTK driver. (Thanks to Paul G.)
- Fixed: invalid memory access when setting VALUE to NULL in IupTree.
- Fixed: ACTION callback called when an item is set on a IupList when DROPDOWN=Yes.
- Fixed: dialog decoration size when menu is associated during the map process.
- Fixed: K_ANY callback called twice for IupTabs in the GTK driver.
- Fixed: invalid memory access when destroying some of the additional controls that use CD.
- Fixed: incomplete redraw of the IupCanvas on Windows XP when a window moves over the canvas.
- Fixed: missing call to ACTION when an item that was replaced is clicked in IupList.
- Fixed: switch of a complete menu in IupDialog was not working.
- Fixed: button press feedback when FOCUSONCLICK=NO in IupButton on Windows.
- Fixed: VISIBLE attribute for non native containers. It affected IupZbox.
- Fixed: IupMatrix with EXPAND=NO was behaving as EXPAND=YES.

### Version 3.0 RC 3 (02/Oct/2009)

- New: MOVE_CB callback for IupDialog on Windows and GTK.
- New: SPINNING attribute for IupGetParam when the callback is activated by a spin.
- New: KEYPRESS, KEYRELEASE and KEY global attributes.
- New: MAXSIZE and MINSIZE attributes for all controls.
- New: NODEREMOVED_CB callback for IupTree.
- New: SORT attribute for IupList.
- New: function IupSaveImageAsText.
- New: function IupLoadBuffer.
- New: parameter in the EDITION_CB callback of IupMatrix to indicate if the value will be updated.
- New: auxiliary functions IupGLUseFont and IupGLWait for the IupGLCanvas. attribute REFRESHCONTEXT on Windows.
- New: VALUECHANGED_CB callback for IupVal, IupDial, IupColorBrowser, IupToggle, IupText and IupList.
- New: element IupClipboard.
- New: functions IupGetNativeHandleImage and IupGetImageNativeHandle for the Iup-IM library.
- Changed: now the iup.image constructor also accepts parameters in the same format as iup.imagergb and iup.imagergba.
- Changed: return value to boolean of iup.GLIsCurrent, iup.GetParam, iup.SaveImage, iup.isshift, iup.iscontrol, iup.isbutton1, iup.isbutton2, iup.isbutton3, iup.isbutton4, iup.isbutton5, iup.isdouble, iup.issys, iup.isalt, iup.isSysXkey, iup.isAltXkey, iup.isCtrlXkey, iup.isShiftXkey and iup.isXkey in Lua.
- Changed: the function iup.key_open is now obsolete and not necessary anymore.
- Changed: improved transparency for 8bpp images on Windows.
- Changed: in IupMatrix since the selection is made only using the mouse, by pressing a key will NOT clear the selection anymore. You can still do that setting MARKED=NULL in the K_ANY callback. Improved MARKL:C to be more flexible for other MARKMODE options.
- Changed: updated the IupTreeUtil contributed utility.
- Changed: CHANGEVALUE_CB callback renamed to VALUECHANGED_CB in IupVal.
- Changed: internal reorganization of the abstract layout methods of the Ihandle class to allow more flexibility and control of the layout process.
- Changed: LAYERED and LAYERALPHA attributes are now condensed in the OPACITY attribute. The OPACITY is available on Windows and GTK.
- Fixed: the functions IupPreviousField and IupNextField to respect the dialog hierarchy order.
- Fixed: NUMCOL and NUMLIN when set to 0 in IupMatrix. Double click in a title cell was entering in edit mode at the focus cell. Marks were processed after ENTERCELL_CB when the user single click a cell. Enter key processed also for the next cell when MULTIPLE=YES after editing ended.
- Fixed: STARTFOCUS on Motif and Win32 for IupDialog where not working. Now STARTFOCUS is set only if SHOW_CB did not changed the current focus.
- Fixed: DLGBGCOLOR on Motif where incorrectly set.
- Fixed: IupToggle redraw inside an IupFrame on Windows XP where disapearing.
- Fixed: background color of the edit box of IupTree on Windows XP where black.
- Fixed: release of stock images in IupClose caused the application to crash.
- Fixed: auxiliar function iup.TreeSetUserId in Lua when releasing the previous reference.
- Fixed: ACTION callback of IupButton on Windows when FOCUSONCLICK=NO was not being called.
- Fixed: return value of IupSaveImage was inverted.
- Fixed: export of image in Lua at the IupView application.
- Fixed: IupGetParam when specifying full intervals without the step parameter.
- Fixed: DEFAULTENTER and DEFAULTESC on Windows when focus is inside an IupTabs. Also on Windows they were processed before K_ANY, so K_ANY could not abort them by returning IUP_IGNORE.
- Fixed: K_ANY called twice for K_CR when IupText has multiple lines on Windows.
- Fixed: on Windows when a pre-defined system dialog was closed with Enter or Esc, the key was propagated to the dialog that open it.
- Fixed: keyboard navigation in the dialog now respects the order of IupNextField and IupPreviousField for all drivers. Those functions were also improved.
- Fixed: on GTK the VISIBLE attribute returned invalid result when child is hidden by its parent.
- Fixed: on Windows the text color of a selected item of an IupTree was not inverted.
- Fixed: on Windows the VALUE attribute of a inactive IupItem was always OFF.
- Fixed: ENTERWINDOW_CB and LEAVEWINDOW_CB for IupCanvas on Windows were not being called.
- Fixed: HELP_CB was not working for IupVal, IupTabs and IupTree on Motif.
- Fixed: USETITLESIZE attribute logic in IupMatrix.
- Fixed: DELNODE attribute when value is CHILDREN in IupTree. It was not working for the root node.

### Version 3.0 RC 2 (18/Jul/2009)

- New: MONITORSINFO and VIRTUALSCREEN global attributes now also available on GTK.
- New: USETITLESIZE attribute for IupMatrix.
- New: DEFAULTFONTSIZE global attribute.
- New: IupSetAtt auxiliar function.
- Changed: the default alignment for IupButton (Text and Image) and IupToggle (Image) to "ACENTER:ACENTER".
- Changed: improved decoration size computation for IupDialog on GTK.
- Fixed: IupItem on GTK when compiled in versions older than 2.14, but run in newer versions.
- Fixed: alignment of buttons in IupAlarm.
- Fixed: IupZbox visible child management and VISILBE attribute update after mapping an element.
- Fixed: X and Y attributes for GTK.
- Fixed: IupTree TITLE with non UTF-8 characters.
- Fixed: IupClose in loop when removing names.
- Fixed: CONTEXT and VISUAL in IupGLCanvas.
- Fixed: SHOWTICKS in IupVal.
- Fixed: in IupMatrix. default cell alignment. BGCOLOR and FGCOLOR to use the global default colors instead of "255 255 255" and "0 0 0". drawing details. misbehavior of the scrollbar on GTK. improved IUP 2 compatibility when calling VALUE_CB and when consulting titles to compute cell size.
- Fixed: VALUE management in IupZbox.
- Fixed: removed "cannot add non scrollable widget" warning message when creating a IupCanvas on GTK.
- Fixed: ADDEXPANDED in IupTree.
- Fixed: SIZE consideration in layout computation for IupDialog.
- Fixed: DIALOGTYPE=MESSAGE for IupMessageDlg on GTK.
- Fixed: IupButton with no text and no image, but with BGCOLOR defined will properly show the color.

### Version 3.0 RC 1 (26/Jun/2009)

#### General

- New: checked for memory leaks using VLD on Windows and Valgrind in Linux.
- New: PREVIEWGLCANVAS attribute for IupFileDlg.
- New: auxiliary functions IupTextConvertLinColToPos and IupTextConvertPosToLinCol for IupText.
- New: basic tutorial for IupLua. (Thanks to Steve D.)
- New: IupTree now uses native controls and was moved to the standard controls. The old implementation is not available. Images for nodes are not limited to 16x16 anymore. BGCOLOR now follows the same default as IupText and IupList, and can be changed. New TITLEFONT, FGCOLOR, USERDATA, FINDUSERID, COUNT, CHILDCOUNT, EXPANDALL, INDENTATION, HIDEBUTTONS, HIDELINES, COPYNODE, MOVENODE, SPACING, TOPITEM, INSERTLEAF and INSERTBRANCH attributes. New BUTTON_CB, MOTION_CB and DROPFILES_CB callbacks. Attributes SCROLLBAR and REDRAW are not supported anymore. VALUE attribute split in VALUE and MARK attributes, set MARK using VALUE is still possible fro backward compatibility. STARTING renamed to MARKSTART, and CTRL/SHIFT attributes replaced by MARKMODE (old names kept working for compatibility). Now if DRAGDROP_CB returns IUP_CONTINUE or if it is not defined but SHOWDRAGDROP=Yes then the node will be automatically moved to the new position. ATTENTION - DEPTH is now a read-only attribute, use the INSERT* attributes to properly add nodes. NAMEid attribute renamed to TITLE, old attribute still works but will be removed in future versions since it conflicts with the common NAME attribute. The SELECTION_CB and MULTISELECTION_CB callbacks now ignore their return value. The rename action is now activated by two clicks instead of a double click.
- Changed: removed "lua5.1.so" dependency in UNIX.
- Changed: In IupLua the Lua function iup.TreeSetValue now also accepts node decoration in the initialization table and can add a subtree to any node. (Thanks to Tomas G.)
- Changed: In IupLua attributes that are pointers to Ihandle are now returned as ihandle instead of userdata.
- Changed: replaced "[]" in function declarations by a simple "*". None of those functions needed it.
- Changed: the default value of the Windows attribute COMPOSITED is back to NO to improve backward compatibility and to avoid side effects of the attribute.
- Changed: the auxiliary functions IupTextConvertXYToChar and IupListConvertXYToItem where replaced by IupConvertXYToPos, that also works for IupTree.
- Changed: added support for WHEEL_CB on GTK for IupCanvas.
- Fixed: IupLua initialization when retrieving the argc/argv arguments for IupOpen. (Thanks to Ross B.)
- Fixed: Arg initialization for all controls on Motif driver.
- Fixed: update of the POSX and POSY attributes for the IupCanvas.
- Fixed: FONT size round when converting from pixels to points on Windows. (Thanks to Devin S.)
- Fixed: button disappearing after mouse over on Windows XP.
- Fixed: IupMatrix when NUMCOL/NUMLIN were less than NUMCOL_VISIBLE/NUMLIN_VISIBLE. Also fixed when NUMCOL/NUMLIN were 0 and changed to 1, and when removed 1. CURSOR attribute when RESIZEMATRIX=Yes. (Thanks to Jeremy C.)
- Fixed: action callback return value in Lua for the IupGetParam dialog. (Thanks to Zhiwei)
- Fixed: EXPAND attribute for IupCanvas.

### Version 3.0 BETA 3 (04/Apr/2009)

- New: MARKL:C, READONLY, NUMLIN_VISIBLE_LAST, NUMCOL_VISIBLE_LAST, and SHOW attributes for IupMatrix. When scrolling the matrix using the scrollbar the focus is not changed anymore. The last cells at right and bottom are now drawn as incomplete cells if they do not fit in the visible area. New FONT_CB callback. CHECKFRAMECOLOR is not necessary anymore, just set FRAMEVERTCOLOR or FRAMEHORIZCOLOR. Internal code reorganization. AREA and MULTIPLE renamed to MARKAREA and MARKMULTIPLE, old names as still supported. New MULTILINE attribute to edit text in multiple lines, valid only before mapped.
- New: IupRedraw and IupSetClassDefaultAttribute functions.
- Changed: Added package registration code to IupLua that allows it to be statically linked and require"iuplua" does not abort if the iuplua_open function was called.
- Changed: the IupOleControl in Lua will not automatically initialize LuaCOM anymore. The application must manually call "elem:CreateLuaCOM()". The previous initialization was incorrect (thanks to Ross B.).
- Changed: the declaration of function IupGetClassAttributes to use the class name instead of a control handle.
- Fixed: Fixed button, toggle and list sizes for GTK driver when using the Hildon Framework. (Thanks to Otfried C.)
- Fixed: some IupLua dynamic libraries in Linux where incorrectly linking with Motif (libiuplua + pplot, cd, controls, gl, im and imglib + 51.so)
- Fixed: HOMOGENEOUS attribute for IupVbox and IupHbox.
- Fixed: CARET attribute on GTK driver was not correctly scrolling the multiline text when not visible.
- Fixed: parameter checking and the return value in Lua for IupListDialog when type=2.
- Fixed: the return value for IupGetText when the user canceled. (Thanks to Xu W.)
- Fixed: IupGetClassAttributes and IupGetAllAttributes were not implemented in IupLua.
- Fixed: The 32 bits version of the IupLua console on Windows XP64 was not working.
- Fixed: CARET_CB and IupTextConvertXYToChar in IupText when MULTILINE=YES and FORMATTING=NO.

### Version 3.0 BETA 2 (26/Dec/2008)

- Changed: ATTENTION - the following headers were deprecated iupcb.h, iupcells.h, iupcolorbar.h, iupdial.h, iupgauge.h, iupmatrix.h, iuptree.h - use iupcontrols.h only
- Changed: ATTENTION - the following headers were deprecated iupgetparam.h, iupspin.h, iuptabs.h, iupval.h - use iup.h only
- Fixed: set VALUE attribute for IupText on Windows when formatting is used.
- Fixed: IupHide when dialog was maximized on Windows.
- Fixed: get VALUE attribute for IupText in all drivers, after the element is mapped it must return the empty string "" when there is no text.
- Fixed: IupGetParam when specifying partial intervals.
- Fixed: K_Esc key callback processing on Windows.
- Fixed: PLACEMENT and FULLSCREEN for IupPopup.

### Version 3.0 BETA 1 (15/Dec/2008)

#### General

- New: GTK driver, available in UNIX and Windows.
- New: internal code reorganization. More clear and simple to create controls and drivers. All comments are now in English.
- New: internal documentation and Guide to create new controls. Now all the controls use the same architecture using the same base class.
- New: IUP_ASSERT compile flag.
- New: IupMainLoopLevel function.
- New: support for the HILDON framework that runs on top of GTK on the Maemo platform used by the Nokia Internet Tablets. (Thanks to Otfried C.)
- Changed: all dialogs, and all elements that have names, are now automatically destroyed in IupClose.
- Changed: ATTENTION - the following headers were deprecated iupcbox.h, iupsbox.h - use iup.h only
- Changed: ATTENTION - the headers iupcompat.h and iupcpi.h were removed. They are not supported anymore.

#### Common Attributes

- New: CHARSIZE convertion factor used by the SIZE attribute.
- New: NAME used by IupGetDialogChild.
- New: font face name mappings for Courier, Times and Helvetica.
- New: functions IupGetClassAttributes, IupGetIntInt.
- New: CLIENTSIZE returns the size of containers excluding their decoration.
- New: TIP additional attributes (Motif and Windows): TIPFONT, TIPDELAY, TIPBGCOLOR, TIPFGCOLOR, TIPBALLON (Windows Only), TIPBALLONTITLE (Windows Only), TIPBALLONTITLEICON (Windows Only), TIPVISIBLE. Not available on GTK.
- New: TIPRECT auxiliary attribute for the TIP common attribute.
- Changed: attribute FONT now uses a common a more flexible definition for all drivers, old format is still supported. The default FONT on Motif is now "Fixed, 10".
- Changed: ATTENTION - Now attributes are stored in the internal hash table only if not processed or allowed by the element class implementation.
- Changed: IupGetAttribute, IupSetAttribute and IupStoreAttribute can also be used to access global attributes using NULL as element.
- Changed: TIP and ZORDER attributes are now non inheritable.
- Changed: ATTENTION - the BGCOLOR is now ignored in IupLabel, IupFrame, IupToggle (for the text) and IupVal. They will use the background color of the native parent.

#### Global Attributes

- New: APPSHELL, XDISPLAY, XSCREEN, XSERVERVENDOR, XVENDORRELEASE on Motif.
- New: VIRTUALSCREEN and MONITORSINFO on Windows.
- Changed: LANGUAGE default from PORTUGUESE to ENGLISH.
- Changed: TRUECOLORCANVAS and SYSTEMLANGUAGE are now available in all drivers.

#### Common Callbacks

- New: IUP_IGNORE return code accepted for IDLE_ACTION callback to automatically remove the callback.
- New: UNMAP_CB for all controls
- Changed: MAP_CB, ENTERWINDOW_CB, LEAVEWINDOW_CB for all controls.

#### Layout

- New: functions IupGetDialogChild, IupUnmap, IupReparent, IupInsert, IupUpdateChildren, IupGetClassType, IupGetChildPos and IupGetChildCount..
- New: FLOATING attribute to control the inclusion of the element in layout processing for IupHbox, IupVbox and IupZbox.
- New: HOMOGENEOUS attribute to control the spacing in layout processing for IupHbox and IupVbox.
- New: EXPANDCHILDREN attribute to control the expansion in layout processing for IupHbox and IupVbox.
- New: NORMALIZESIZE attribute to control the natural size in layout processing for IupHbox and IupVbox.
- New: element IupNormalizer.
- New: CGAP and CMARGIN for IupVbox and IupHbox that use SIZE units.
- New: VALUEPOS and VALUE_HANDLE attributes for IupZbox.
- Changed: default value for ALIGNMENT in IupZbox is now "NW".
- Changed: IupAppend and IupDetach can now be used for dynamic creation of menus or containers, even after the element is mapped.
- Changed: IupDetach will now automatically unmap the element.
- Changed: IupAppend will now return the actual parent.
- Changed: IupUpdate now only mark the control to be redraw instead of redrawing at the function call.

#### Dialogs

- New: MINSIZE and MAXSIZE attributes. on Windows MINSIZE is ignored for systems with multiple monitors. The Windowing system may impose a minimum default limit for the dialog that includes the title bar with all it buttons.
- New: DROPFILES_CB and RESIZE_CB callbacks.
- New: IUP_CURRENT and IUP_CENTERPARENT positions for IupShowXY and IupPopup.
- New: IUP_HIDE and IUP_MAXIMIZE flags for SHOW_CB callback.
- New: MODAL attribute to check if the dialog was shown with IupShow or IupPopup.
- New: IupColorDlg, IupFontDlg and IupMessageDlg native pre-defined dialog as elements.
- New: SHOWHIDDEN attribute for IupFileDLg. Preview canvas support for the Motif driver.
- New: tip string for each param in IupGetParam. And a new "c" param to show a RGB color string with extra controls to show the color and open the color selection dialog.
- Changed: SAVEUNDER dialog attribute now is also available on Motif.
- Changed: DROPFILES_CB callback is now available for all controls. It is only activated using DRAGDROP attribute. It is active by default only for IupCanvas and IupDialog.
- Changed: the default value of the Windows attribute COMPOSITED is now YES, except on Windows Vista.
- Changed: IupDestroy is now automatically called for child dialogs when the parent is destroyed.

#### Canvas

- New: LINEX, LINEY, XAUTOHIDE and YAUTOHIDE attributes for the scrollbar.
- New: CLIPRECT attribute, a rectangle that has its region invalidated for paiting.
- Changed: if ACTION is defined nothing is painted in the canvas, now also on Motif.
- Changed: BORDER is now also supported on Motif.
- Changed: ATTENTION - now scrollbar parameters min, max, page size and line size are updated when DX/DY are updated. POSX and POSY will only update the position of the scrollbar. Automatic hide of the scrollbar now works also on Motif.

#### Label, Button and Toggle

- New: attributes PADDING, ELLIPSIS, WORDWRAP and MARKUP for IupLabel.
- New: IMPRESSBORDER, PADDING, MARKUP, FOCUSONCLICK and ALIGNMENT attributes for IupButton.
- New: support for image and text simultaneous in IupButton.
- New: support for mnemonics in IupLabel, IupButton and IupToggle.
- New: RADIO attribute for IupToggle.
- Changed: ALIGNMENT attribute now includes vertical alignment values.
- Changed: IupButton now supports text with more than one line.

#### Text and Multiline

- New: APPENDNEWLINE and PADDING attributes. CUEBANNER and FILTER attributes on Windows.
- New: MASK attribute for IupText, IupMultiline, IupList and IupMatrix. The iupmask functions are now obsolete, autofill option and MATCH_CB callback are not supported anymore.
- New: text formatting using FORMATTING and ADDFORMATTAG attributes on Windows and GTK. New attribute OVERWRITE when using text formatting.
- New: ALL and NONE values for SELECTION attribute.
- New: SCROLLTO attribute. New attributes SCROLLTOPOS, CARETPOS and SELECTIONPOS using 0 based character position. New function IupTextConvertXYToChar to convert (x,y) coordinates in (lin, col, pos) character positioning.
- New: SPIN, SPINVALUE, SPINMIN, SPINMAX, SPININC, SPINALIGN and SPINWRAP attributes. New SPIN_CB callback. The IupSpin control is now obsolete.
- New: VISIBLECOLUMNS, VISIBLELINES attributes gives much better control over size than the SIZE attribute.
- Changed: IupMultiline is now implemented as IupText with MULTILINE=YES.
- Changed: ATTENTION - VERY IMPORTANT - the ACTION callback in IupText now does NOT process extended keys anymore. It is called only if the text is edited, and key=0 if it is not a valid character. The callback now is called before the text is updated on screen.
- Changed: the SELECTION and CARET attribute on Windows do NOT change the focus anymore. The NC attribute now only restricts keyboard input.
- Changed: added support for BUTTON_CB and MOTION_CB callbacks. BUTON_CB can return IUP_IGNORE so the default processing will be ignored.
- Changed: CARET_CB now includes 0 based character position.
- Changed: ATTENTION - the Natural Size does not uses the text contents anymore. To control the Natural Size use the SIZE/RASTERSIZE attributes, or VISIBLECOLUMNS/VISIBLELINES attributes, or EXPAND.

#### List

- New: APPENDVALUE, CANFOCUS, COUNT, DRAGDROP, INSERTITEMn, REMOVEITEM, TOPITEM, SPACING, VISIBLECOLUMNS, VISIBLELINES attributes.
- New: BUTTON_CB, DBLCLICK_CB, DROPDOWN_CB, DROPFILES_CB, MOTION_CB callbacks.
- New: IupListConvertXYToItem function.

#### Other Standard Controls

- New: INVERTED and TICKSPOS attributes for IupVal.
- New: PADDING, VALUE_HANDLE, VALUEPOS, MULTILINE and TABIMAGE attributes for IupTabs.
- New: control IupProgressBar, similar to IupGauge but with the text.
- Changed: IupFrames now are native parents of their children.
- Changed: IupVal implemented as a native control. Attributes HANDLER_IMAGE and HANDLER_IMAGE_INACTIVE are not supported anymore.
- Changed: IupCbox is not based on IupCanvas anymore.
- Changed: IupTabs implemented as a native control. Attributes ALIGNMENT, FONT_ACTIVE, FONT_INACTIVE, TABSIZE and REPAINT are not supported anymore.

#### Additional Controls

- New: focus feedback and keyboard control for IupColorbar.
- Changed: IupControlsClose is now deprecated. Declaration still remains for compatibility, actual function does nothing.
- Changed: the NO_COLOR attribute is deprecated, now it simply sets the BGCOLOR attribute in IupCells.
- Changed: in IupColorBrowser moved from HLS to HSI, added support for resize, anti-aliasing, support for BGCOLOR attribute, feedback for ACTIVE attribute, and feedback for focus. New HSI attribute. New support for mouse wheel to change Hue. New support for PgDn and PgUp keys to change Hue.
- Changed: IupTabs and IupVal are NOT part of the additional controls anymore. They are now standard controls using native elements.
- Changed: renamed MARGIN attribute to PADDING in IupGauge. IupGauge is deprecated in favor of IupProgressBar.
- Changed: An IupGLCanvas when inside an IupFrame in Win32 will now work normally. But the dialog COMPOSITE attribute must be NO for hardware acceleration on Windows.

#### Menus

- New: HIDEMARK, AUTOTOGGLE and TITLEIMAGE attributes for IupItem.
- New: BGCOLOR support for IupMenu.
- New: Submenu now supports the IMAGE attribute.
- New: RADIO attribute for IupMenu.
- Changed: on GTK to have a menu item that can be marked you must set the VALUE attribute to ON or OFF, or set HIDEMARK=NO, before mapping the control.
- Changed: The HIGHLIGHT_CB, OPEN_CB and MENUCLOSE_CB callbacks now work normally for popup menus. HIGHLIGHT_CB is called for items and submenus.
- Changed: OPEN_CB and MENUCLOSE_CB are defined for menus, but it is checked at the parent submenu for backward compatibility with IUP 2.x.
- Changed: TITLE for submenus can now be changed after the element is mapped.
- Changed: Children can be added or removed from menus even after the menu is mapped.
- Changed: menus can now be dynamically changed even after mapped.

#### Images

- New: support for 24 and 32 bpp images using IupImageRGB and IupImageRGBA constructors.
- New: "UPARROW" cursor on Motif. New cursors "RESIZE_NS" and "RESIZE_WE". Updated cursor documentation with pictures of all pre-defined cursors.
- Changed: the automatic generation of inactive images for a more smooth one, still using a modified version of the background color to create the disabled effect.
- Changed: IupImageLibOpen will now only register names, but will not load the images. New 32bpp images for Windows. GTK aliases are also available. Many new images. IupImageLib Close removed, loaded images will now be automatically unloaded.

#### Keyboard

- New: MODKEYSTATE global attribute in all drivers.
- New: key definitions: K_acute, K_ccedilla, K_Print, K_Menu.
- New: key definitions for the system key modifier K_y*. on Windows this is the Windows key and in Mac this is the Apple key.
- New: CANFOCUS attribute for IupButton, IupTogle, IupText, IupCanvas and IupVal.
- Changed: SHIFTKEY and CONTROLKEY are now available in all drivers.
- Changed: Removed the conflicts: K_BS=K_cH, K_TAB=K_cI and K_CR=K_cM. New key code macros iup_isShiftXkey, iup_isCtrlXkey, iup_isAltXkey and iup_isSysXkey.

### History of Version 2.x