History of Changes
Version 2.3 (16/Mar/2005)
General
-
Download, Discussion List, Submission of Bugs, Support Requests and Feature Requests, are now available thanks to LuaForge site.
-
New organization of the documentation.
-
New MacOS X libraries using OpenMotif and gcc.
-
New CARET_CB callback for the IupText, IupMultiline and IupList controls. It is called every time the caret changes its position.
Windows
- IMPORTANT: Now the canvas background color is only redrawn if the ACTION callback is not defined. When defined the application must draw all the canvas contents. This will optimize the redraw of canvas based controls and application canvases. The TRANSPARENT value for the BGCOLOR is not supported anymore.
- New attribute IMMARGIN to control the spacing between the border and the image in IupButton.
- Optimized the IupButton and IupLabel drawing when IMAGE is specified.
- Fixed incorrect stop for the IupTimer. Improved start and stop control.
- Flicker now is significantly reduced. CLIPCHILDREN=YES is now default. IupFrame background drawing optimized.
- New dialog attribute "CONTROL" that enable the embedding of the dialog inside another window. Used by LuaCOM to create OLE (ActiveX) controls implemented in Lua.
- New IupText attribute "PASSWORD" to hide the typed character.
- IUP is now compatible with Windows XP Visual Styles. See the Win32 driver documentation.
Motif
-
Fixed invalid return value when retreiving the FONT attribute.
-
Added backward compatibility code for Motif 1.2. Must edit makefile to add the file "src/mot/ComboBox1.c".
IupControls
-
Missing support for IupList with EDITBOX=YES in iupMask.
-
BGCOLOR for images were ignored in the IupTree.
-
Now some matrix cell attributes are not inherited from parent. Like "L:C", "ALIGNMENT*", "FGCOLOR*", "BGCOLOR*", "FONT*", "WIDTH*" and "HEIGHT*", for optimization reasons.
-
IupTree now uses double buffer for optimal drawing.
To avoid flicker during resize in Windows, do not use it inside a IupFrame, and use CLIPCHILDREN=YES. -
New utility functions: IupTreeSetAttribute, IupTreeStoreAttribute IupTreeGetFloat, IupTreeSetfAttribute, IupTreeGetAttribute, IupTreeGetInt.
-
New IupMatrix callback DRAW_CB to allow a custom drawing of the cell contents.
-
New IupTree DRAGDROP_CB callback.
-
New IupSpin and IupSpinbox utility functions.
IupLua
- Fixed ihandle_gettable in iuplua.lua when iupGetTable is nil when object
is created in C.
This affected the object returned by iup.LoadImage. - Fixed Zbox children names initialization.
- Missing DROPFILES_CB callback management.
- Missing FGCOLOR_CB and BGCOLOR_CB callback management for the IupMatrix. The returned values order was inverted.
- Missing MAP_CB callback management for IupCanvas in IupLua3.
Version 2.2.2 (07/Oct/2004)
General
-
Fixed bug in IupGetFile FILTER initialization.
-
Improved IMINACTIVE automatic generation algorithm.
-
New zip package for download with iup images in LED format.
-
New application IupView to load and display LED files.
-
Fixed some attribute storage in iupMask and IupGetParam. Fixed bug when several masks are used in the same dialog.
-
Replaced the internal Lua4 code for a smaller hash table module. Thanks to Danny Reinhold.
-
Fixed IupGetParam invalid memory access.
-
IupNextField and IupPreviousField now only changes the focus for the checked toggle inside a radio.
-
IupGetAttributes now returns the pointer address if attribute is a known internal pointer data.
-
Now pressing Enter over a button activates it, even if it is not the DEFAULTENTER button.
-
Esc and Backspace keys now will be translated even if CapsLock is active.
Windows
-
New ENTERWINDOW_CB and LEAVEWINDOW_CB for buttons.
-
Fixed double click for button, toggle and list were not being considered as two clicks.
-
removed FLAT style from toggles with IMPRESS image. Fixed size of toggle with image.
-
New attribute SHOWDROPDOWN to open the dropdown list programmatically.
-
Removed a black border around IupMultiline and IupText.
-
Removed the TABSTOP for non marked Toggles inside a Radio.
-
Fixed invalid memory access when menu item is activated and all dialog controls are disabled.
-
Fixed IupFileDlg ignored the x,y parameters of IupPopup.
Motif
-
Enter in IupMultiline activated the DEFAULTENTER button instead of adding a new line.
-
Fixed invalid memory access when set FONT to NULL.
-
Fixed ACTION callback called for IupList when list contents were cleared.
IupControls
-
IupTree and IupTabs did not propagate to the parent the K_ANY callback for non used keys.
IupMatrix
-
The TITLEs, BGCOLORs, FGCOLORs and FONTs attributes were incorrectly set after a DELLIN, ADDLIN, DELCOL or ADDCOL.
-
In Windows when the user double click a dropdown list now will start opened.
-
The user callback scroll_cb was incorrectly registered.
-
New "HIDEFOCUS" attribute to hide the focus mark when drawing.
-
Now in MARK_MODE=CELL and MULTIPLE=YES you can click on the title area to mark a full line or collumn at once.
-
New BGCOLOR_CB and FGCOLOR_CB callbacks.
-
Fixed when MARKMODE=LIN/COL/LINCOL if the first cell in the line/column is selected the click in the title area was ignored.
IupLua
-
Removed "print" debug calls in internal code.
-
IupGetAttribute/iup.GetAttribute now returns an user data if attribute is a known internal pointer data.
-
New IupGetAttributeData/iup.GetAttributeData that returns the data always as an used data.
-
Fixed incomplete initialization of image object returned by IupLoadImage.
Version 2.2.1 (25/Aug/2004)
General
-
Fixed some minor bugs introduced in version 2.2.
-
Fixed HTML help navigation.
- For disabled buttons and toggles when the IMINACTIVE is not defined by IMAGE is defined, we replace the non transparent colors by a darker version of the background color creating the disabled effect.
- New key K_PAUSE.
Windows
-
Fixed dynamic cursor creation.
-
Toggle with inactive image could be enabled/disabled only once.
-
Fixed toggle in Radio behavior.
-
Some keys were not being treated correctly.
-
Improved key codes management.
Motif
-
Fixed IupList setattribute VALUE and list items activated the ACTION callback.
Controls
-
Circular IupDial now uses abssolute angle.
-
CARET did not work when set inside EDITION_CB in IupMatrix.
-
Check for double initialization of IupControls.
-
Better resize management for IupVal and IupDial.
-
IupControls now depends on the CD library version 4.3.3 in Motif.
IupLua
-
Wrong implementation of DROPCHECK_CB.
Version 2.2 (11/Aug/2004)
INCOMPATIBILITIES
-
Definition of K_parenleft changed to K_parentleft in C and all Lua bindings.
-
Major IupLua5 change (see IupLua section bellow).
-
IupLua4 is not supported.
-
Motif 1.x is not supported.
General
-
Documentation in Portuguese removed from the manual.
-
Changed and documented the default palette used in IupImage.
-
IupImage can now have up to 256 colors.
-
New mouse wheel callback "WHEEL_CB" for Windows and Motif. If not defined the wheel will automatically scroll the canvas vertically.
-
Changes on global attributes:
"COMPUTERNAME", "USERNAME" - now implemented also in Motif.
"COPYRIGHT" - not documented
"SCREENDEPTH", "SYSTEMVERSION" - new for Windows and Motif
"SYSTEM" - Implementation were different from the documentation
"CURSORPOS" was documented as if it was only for Windows.
"LOCKLOOP" now implemented also in Motif.. -
The definitions IUP_SBDRAGV and IUP_SBDRAGH were not documented.
- Callback MENUSELECT_CB changed to HIGHLIGHT_CB. Now implemented also in Motif.
- New menu callback MENUCLOSE_CB.
- New utility functions IupMessagef and IupGetInt2.
- Improved visual appearance of IupScanf, IupAlarm and IupListDialog.
- New creation attribute "SEPARATOR" for IupLabel so you can create vertical or horizontal line separators.
- New IupGetText predefined dialog.
- Now all the predefined dialogs consult the global attribute IUP_PARENTDIALOG.
- New "HELP_CB" callback for all interactive controls.
- The "KEYPRESS_CB" callback now will be called repeatedly if the key is pressed and held.
- IupList can now have an edit box associated.
- The OLD newfocus parameter of the KILLFOCUS_CB is now NULL always, in Windows and Motif.
- The BGCOLOR color for IupImage transparency was not according to the
documentation.
It was using the default background color of the dialog.
Now it uses the BGCOLOR of the control where it is inserted.
Windows
-
Menus for notification icons (system tray) were not working correctly.
-
Cursors in Windows now accept more than 2 colors and can have size different from 32x32.
-
IupImage was rewritten in Windows to be more simple and flexible. This also solved some weird button backgrounds in gcc3.
-
New global attributes "SHIFTKEY" and "CONTROLKEY" can be "ON" or "OFF", return the the key state (windows only).
-
The default size for buttons in Windows was increased by 2 characters.
-
Returning IUP_CLOSE in a SHOW_CB of an IupPopup wasn't closing dialog.
-
IupOpen instead of initializing OLE, now only initializes COM (CoInitialize).
-
The border of buttons are now drawn by a system function instead of simulated.
-
New attribute "PLACEMENT" to show the dialog maximized or minimized.
-
In IupFileDlg when browsing for folder it will use a new interface, with a resizable dialog and other features.
Also in IupFileDlg fixed start position for IupPopup. New file selection callback and preview area. IupFileDlg was not using the IUP_PARENTDIALOG attribute. Default value for IUP_NOOVERWRITEPROMPT was wrong. ALLOW_NEW was inconsistent with the documentation. -
The button callback now is called only when the button is released inside the button area.
-
WOM callback renamed to WOM_CB.
-
New "HELPBUTTON" attribute for the dialog.
-
The menu item now accepts auxiliary bitmaps.
-
When the dialog has a multiline and the user press ESC the window was improperly closed.
-
Fixed comboox resize feedback. When resizing the dialog the combobox was temporarily opened.
-
IupCanvas was not receiving arrow keys events correctly in keypress_cb.
-
IupHide now can close popup dialogs.
-
Attribute TABSIZE for IupMultiline in Windows was not documented.
-
Default value for attribute BGCOLOR for IupCanvas in Windows was not documented.
-
Direction keys now are processed by the ACTION callback for IupText.
-
The GETFOCUS_CB and KILLFOCUS_CB management for the controls was reviewed and optimized.
GETFOCUS_CB now works for toggle and button. -
First RESIZE_CB of the canvas received a wrong canvas size.
-
Label alignment for images was always center.
Motif
-
New global attribute: "MOTIFVERSION".
-
IUP_SBDRAGV and IUP_SBDRAGH were not implemented.
-
HIGHLIGHT_CB menu item callback.
-
"COMPUTERNAME", "USERNAME" and "LOCKLOOP" global attributes.
-
IupMessage now uses native XmMessageBox.
-
The overwrite confirmation dialog was closing the file open if the user answered "No".
-
Implemented the IUP_NOOVERWRITEPROMPT attribute for IupFileDlg.
-
The dropdown list now uses the Motif 2 combobox widget. So IUP is not compatible with Motif 1.x anymore.
-
Now the GETFOCUS callback is also invoked when the list is dropdown.
-
KEYPRESS_CB is now called only for IupCanvas.
Controls
-
DEFAULTESC and DEFAULTENTER were missing in IupGetColor.
-
New function IupLoadImage that uses the library IM to load an image file (implemented in an additional library).
-
New dialog IupGetParam, similar to IupScanf but uses variable controls for fields.
-
IupTabs now uses the FGCOLOR for the text color.
-
ICTL_DASHED was missing in the documentation of IupGauge.
The control now has the attributes MIN and MAX just like the valuator. -
For IupVal and IupDial, new keyboard and mouse wheel support.
New attribute "SHOWTICKS" to show tick marks around the valuator.
New attribute "UNIT" to change the angle unit to degrees in the dial.
Completely changed visual of the controls.
The controls can now be deactivated and it displays focus feedback. -
Updated visual for the IupGauge and IupTabs controls.
-
In IupTabs the popup menu to select a tab sometimes did not set the new tab.
Matrix
- Documentation reviewed and reorganized.
-
Returning IUP_CLOSE in CLICK_CB was not closing application.
-
The scrollbar drag will now simultaneously scroll the matrix.
-
New callback "DROPCHECK_CB" to aid the dropdown feedback in the cell.
-
New utility functions: IupMatSetAttribute, IupMatStoreAttribute IupMatGetFloat, IupMatSetfAttribute, IupMatGetAttribute, IupMatGetInt.
-
Fixed some display erros in Windows because of an error in the size of the scrollbar.
-
In Windows pressing a key in a menu activates the k_any of the last active element. In the matrix this turns into an infinit loop. The matrix now uses the keypress_cb instead of the k_any callback.
-
Fixed empty selection in the dropdown list if the user press a regular key to start editing the cell.
-
Fixed invalid dropdown value if the user changed focus to the scrollbars.
-
CLICK_CB was called twice in a double click (press+release).
-
In Motif, the textbox and the dropdown did not open when you double click a cell. But now the user still needs to click again in the control to put it into focus.
-
After editing the cell in the last line, now the focus goes to the column on the right at the last line, instead of the first line.
-
BGCOLOR now works also for titles.
-
FONT attribute now can be set/get just like BGCOLOR and FGCOLOR. But the cell size is calculated always from the matrix attribute IUP_FONT.
Tree
- Documentation reviewed and reorganized.
- CTRL and SHIFT accepts only values IUP_YES and IUP_NO.
Default value of SHIFT and CONTROL is NO, it was NULL. - Pressing Space without Control now activates the RENAMENODE_CB callback.
IupLua
- The selection callback wasn't working in Lua 5 binding.
- MOUSEMOVE_CB in Dial control was receiving wrong angle parameter in Lua 5 binding.
- IupGLCanvas wasn't working in Lua 5 binding.
- Major IupLua5 change.
It now complies to LTN7 (namespaces). All exported functions are accessed only through iup.FunctionName (no Iup prefix anymore)
All callbacks in Lua are now access through their exact name in the C API. Mostly add sufix "_cb" to name (most common callbacks renamed for ex: getfocus_cb, killfocus_cb). Also some names were fix: valuecb >> value_cb and mapcb >> map_cb.
Numeric definitions also changed: IUP_DEFAULT >> iup.DEFAULT
String definitions for values are no longer supported, use "YES", "NO", etc.
iupcb changed to iup.colorbrowser. - Use LoadLibrary to load IUP from Lua.
- There was no stack pop in color processing loop fo IupImage in IupLua5.
- IupLua4 is not supported anymore.
LEDC
- Added support for IupTree and IupSbox.
- Fixed include for IupColorBrowser.
- Fixed small invalid memory access.
Version 2.1 (18/Feb/2004)
General
-
New split-panel control: IupSbox
-
IupTree and IupMatrix libraries are now part of iupcontrols
- New functions to traverse IUP controls: IupGetNextChild, IupGetBrother, IupGetParent
- IupAppend accepts elements other than predefined internal controls (allowing CPI containers)
- Focus now may go to CPI controls
- Attribute IUP_X, IUP_Y are now valid for every control that has a native representation (returns the position of the control in screen coordinates)
- CURSORPOS global attribute is now returned from the driver
- IupGetFile was not allowing new files and should not change user directories
- IupGetFile was not accepting long directories
- IupAlarm does not take [ENTER] as button1 click anymore
- IupScanf does not accept "," when option is float
- Windows 95 is no longer supported
IupTree
-
Trying to get attribute NAME for and invalid ID returns NULL
-
Fixed attributes IUP_CTRL e IUP_SHIFT for mouse interaction
IupMatrix
- Special keys such as backspace, control+c, etc. are now ignored when not in edit mode
- leaveitem/enteritem were not being generated when the focus was leaving or entering the matrix
- leaveitem/enteritem should not being called when the cell enters edition mode through the mouse
Windows
-
IupOpen/IupClose now initializes OLE (OleInitialize/OleUninitialize)
-
ENTERWINDOW/LEAVEWINDOW reimplementation. LEAVEWINDOW does not fail anymore
-
Mouse hook removed. Better performace
-
New attributes TRAY, TRAYTIP and TRAYIMAGE and new callback TRAYCLICK_CB which allows a dialog to be put in the tray
-
Action in IupText now responds to the [ENTER] key
Some keys were not working with keypress callback: \ ] [ ' ; / . , - New attribute NATIVEPARENT, which makes any dialog in Windows able to be parent of a IUP dialog (even from other toolkits)
-
Better protection dealing with other processes messages
- IupFileDialog when used to get directory was not updating STATUS attribute correctly
- IUP_APPEND small memory problem fix
- atexit removed
-
KILLFOCUS_CB and GETFOCUS_CB were not being called when focus goes to the menu
-
MAP_CB in a canvas is now called before RESIZE_CB (like the Motif driver)
-
ALT-F4 was not working to close application
-
Images sometimes show black using Visual C: do not use option in Visual C 6.0 /NODEFAULTLIB:libcd
- IUP_TIP does not show when the fade effect is on: MS fixed the problem, use autoupdate
IupLua 3.2, 4.0, 5.0
- Functions exported to Lua: IupGetType, IupGetParent, IupGetNextChild, IupGetBrother
- IupTimer, IupSbox binding
- IupTreeGetTable, IupTreeSetTableId, IupTreeGetTableId functions created
- Several bug fixes in IupLua 5.0
- New function iuplua_pushihandle, iuplua_dofile and iuplua_dostring, IupGetFromC
- If iuplua_dofile and iuplua_dostring are used errors are reported through _ERRORMESSAGE function
- Default _ERRORMESSAGE function shows a dialog with the error
- IupLua5: Removed Lua redefinitions of dofile and dostring
- Minor bug in IupTree function TreeSetValue
- IupListDialog was not returning a table as it should when in multiple mode
IupVal
-
Attribute IUP_VALUE wasn't taking effect when set before mapping
-
CD canvas was being altered during mouse movement event
Manual
-
CPI manual revision
- IupLua manual revision
-
Several examples revised
-
Controls section rearranged
Distribution
- README on how to compile IUP with tecmake
Version 2.0.1 (31/Jul/2003)
General
- Attribute IUP_TYPENAME replaced by IupGetType function
- minor bugs introduced in 2.0 because of internal old misuse of the hash table.
- Following controls were not working with LED: val, dial, gl, matrix, tree.
- New canvas attribute "DRAWSIZE" that returns the drawing area of the canvas (in Windows we may have an addicional border included in "RASTERSIZE").
Windows
- Memory invasion when eliminating an item from an IupList with multiple items.
- Callback IUP_OPEN_CB sometimes was not being called.
- New dialog attribute "BRINGFRONT" which forces dialog to be the window in the front. Useful for multithreaded applications.
- Attribute ACTIVE was not working with radio control.
- Now folder selection in IupFileDlg uses IUP_DIRECTORY as a start path.
- Now when ESC or ENTER is pressed KEYPRESS_CB is generated
Motif
- Dropdown were becoming unstable when VALUE attribute is set after IupMap.
- Dropdown were not being positioned accordingly.
- IupList was not selecting the first item.
- IupTimer callback were called only once.
- The value "BGCOLOR" in a value of an image color table index appeared with erroneous color.
- keyboard and mouse callbacks were not being called when in full screen.
LEDC
- Updated to reflect 2.0 changes like "iupmatrx" to "iupmatrix".
- Now tests if name is not NULL before using IupSetHandle.
IupLua
- New binding for Lua 5. This is beta version since uses old notation "iuplabel" instead of "iup.label".
Version 2.0 (23/Jun/2003)
General
- IUP has undergone a large internal reorganization, but no structural or algorithmic changes have occurred. The purpose of this reorganization was to standardize function, variable and module nomenclature. This process is not yet complete, but the few remaining details will be solved in the next version.
- Table Hash was completely replaced with a modified version of Lua 4. This version is internal of IUP and does not affect applications. This has brought us a better management of the memory used by attributes.
- The CPI was changed to allow the creation of native controls, as well as controls based on IupCanvas. The internal controls were not yet rewritten over the new CPI - this will be done progressively in the next versions.
- The Ihandle definition changed from "void" to "typedef struct Ihandle_ Ihandle;". This has direct implications on C++ applications that did not do pointer typecast. In C++, code errors might occur and, in C, there might be warnings.
- New control IupTimer. Allows creating timers in Windows and Motif.
- New callback "KEYPRESS_CB". Allows intercepting any key and replacing all callbacks "K_xxx".
- IupHelp was rewritten in a simpler way. In Windows, it simply uses the system's configuration to open a URL and, in UNIX, it directly runs Netscape or another executable configured by an environment variable.
- New attribute "FULLSCREEN", allows creating a dialog that occupies exactly the whole screen.
- Dialog IupGetFile was rewritten using IupFileDlg.
Windows
- New attribute "CURSORPOS", allows programmatically changing the cursor's position on the screen.
- New attribute "NOOVERWRITEPROMPT" for IupFileDlg. It prevents IupFileDlg in Save mode from asking the user if s/he really wishes to overwrite a file.
- Problem corrected in the file list in the use of attribute "MULTIPLE_FILES" for IupFileDlg. When only a folder was selected, it was not setting the "STATUS" attribute in a cancelled action.
- Greater driver stability - Ihandle is no longer dependant on the native handle (HWND).
- New global attributes "HINSTANCE", "SYSTEMLANGUAGE", "COMPUTERNAME", "USERNAME".
- Global attribute IUP_SYSTEM now returns a more complete string.
- Cursor now changes instantly - it only changed before returning to IUP.
- In an inactive IupToggle, the IMINACTIVE image is now correct.
Motif
- The iupmot library no longer exists. Tecmake has been updated, but those who use their own metafiles must remove this file from the list of libraries in the application.
- New attribute "AUTOREPEAT" allows turning on and off the automatic repetition mode of pressed keys.
IupLua
- [4/5] IupListDialog when selection type is 1 (single) was not returning any value.
- [4/5] Callbacks mapcb and showcb had their names wrong: map_cb and show_cb
- [3] Callback action in IupMultiline was not passing the parameter "after".
- [4/5] In IupTree, callbacks "afterselection" and "beforeselection" were replaced with the callback "selection".
IupControls
- We have joined seven libraries in one: dial, gauge, cb, gc, mask, tabs and val. But neither the initialization functions nor each control's inclusion files were changed. The source code does not need to be altered, except for the makefiles. Tecmake was given a flag USE_IUPCONTROLS to automatically include this library.
IupMatrix
- The name of the library was changed from "iupmatrx" to "iupmatrix". The same for the inclusion files. Therefore, all applications that use IupMatrix must change the source code and the makefile to reflect these changes.
IupTree
- In one case, the active CD canvas was not being returned to the old canvas before drawing.
IupGL
- In Linux, the additional GLw library was added to the control library.
- New attributes for query in UNIX: CONTEXT (GLXContext), VISUAL (XVisualInfo*) , COLORMAP (Colormap).