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.
- 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 in 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 in 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 in GTK when more than one pattern is
specified for the same filter ("*.jpg;*.bmp").
- Fixed: RESIZE=NO was incorrectly forcing
MINBOX=NO for IupDialog in GTK.
- Fixed: compatibility with GTK 2.22.
- Fixed: padding warning in 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 in 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 in Windows. Memory allocation that affected NAVIGATE_CB and
NEWWINDOW_CB in Windows. Added missing Lua binding pre-compiled libraries.
- New: IupWebBrowser
control using an embedded Internet Explorer in 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 in
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 in 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:
CLIENTSIZE in IupVbox and IupHbox will not
include margins anymore. 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 Noble.
- 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 in 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 in
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
Noble.
- Fixed: IupMessageDlg
modality in Windows, when PARENTDLG is not specified then it will be modal
relative to all application dialogs.
- Fixed: mnemonic support for TABTITLE in
GTK and Motif.
- Fixed: drag&drop, move and copy of nodes
in IupTree on GTK.
- Fixed: mapping of standard font names to
Pango names in 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 in GTK if the dialog does not has the focus.
- Fixed: RESIZE_CB callback in
IupCanvas not being called after the canvas is mapped in GTK.
- Fixed: removed Scrollbar warning when
creating a multiline IupText in 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.
- New: function IupResetAttribute.
- New: MINMAX attribute for IupSplit.
- New: global attribute SINGLEINSTANCE so
the application can restrict the number of its instances in Windows.
COPYDATA_CB callback for IupDialog in Windows to receive
the command line of the secondary instances when SINGLEINSTANCE is used.
- New: attributes WMFAVAILABLE,
EMFAVAILABLE, SAVEWMF and SAVEEMF for IupClipboard in
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 in 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 in Windows.
- Fixed: IupLoopStep in
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.
- 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 Park.
- 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 in 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.
- 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 in GTK to match the sequences in 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 in 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. In 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.
- 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 Gorham)
- 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 in 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. In GTK and Motif was also not showing the node if
inside a collapsed branch.
- 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.
- 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 in
Windows.
- Changed:
Added a workaround for TITLEFONTid for IupTree when
changing only the Bold style in 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
in 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 in Windows when branch has no child.
- Fixed: invalid redraw of some controls
when dialog is resized in Windows.
- Fixed: invalid memory access for
SYSTEMVERSION global attribute in Linux. Thanks to David Given.
- 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 in 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
Gregory.
- 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 in 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.
- New: MOVE_CB callback for
IupDialog in 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 in 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 in 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 in 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 in Motif and Win32 for
IupDialog where not working. Now STARTFOCUS is set only if
SHOW_CB did not changed the current focus.
- Fixed: DLGBGCOLOR in Motif where
incorrectly set.
- Fixed: IupToggle redraw
inside an
IupFrame in Windows XP where disapearing.
- Fixed: background color of the edit box
of IupTree in 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 in 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 in Windows when focus is inside an
IupTabs. Also in 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
in Windows.
- Fixed: in
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:
in GTK the VISIBLE attribute returned invalid result when child is hidden by
its parent.
- Fixed:
in Windows the text color of a selected item of an IupTree
was not inverted.
- Fixed:
in Windows the VALUE attribute of a inactive IupItem was
always OFF.
- Fixed:
ENTERWINDOW_CB and LEAVEWINDOW_CB for IupCanvas in Windows
were not being called.
- Fixed:
HELP_CB was not working for IupVal, IupTabs
and IupTree in Motif.
- Fixed:
USETITLESIZE attribute logic in IupMatrix.
- Fixed:
DELNODE attribute when value is CHILDREN in IupTree. It was
not working for the root node.
- New:
MONITORSINFO and VIRTUALSCREEN global attributes now also available in 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 in GTK.
- Fixed: IupItem in 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 in 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 in GTK.
- Fixed: ADDEXPANDED in
IupTree.
- Fixed: SIZE
consideration in layout computation for
IupDialog.
- Fixed:
DIALOGTYPE=MESSAGE for IupMessageDlg in 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 in 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 Donovan)
- 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 Gorham)
- 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 in
GTK for IupCanvas.
- Fixed: IupLua initialization when
retrieving the argc/argv arguments for IupOpen. (Thanks to
Ross Berteig)
- Fixed: Arg initialization for all
controls in Motif driver.
- Fixed: update of the POSX and POSY
attributes for the IupCanvas.
- Fixed: FONT size round when converting
from pixels to points in Windows. (Thanks to Devin Smith)
- Fixed: button disappearing after mouse
over in 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 Cowgar)
- 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 Berteig).
- 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 Cheong.
- 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 in 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 Wang)
- Fixed: IupGetClassAttributes
and
IupGetAllAttributes
were not implemented in IupLua.
- Fixed: The 32 bits version of the IupLua
console in 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 in
Windows when formatting is used.
- Fixed:
IupHide when dialog was maximized in 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 in
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 Cheong.
- 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 in 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 in 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 in Motif.
- New:
VIRTUALSCREEN and MONITORSINFO in 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. In 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 in 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 in 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 in Motif.
- Changed:
BORDER is now also supported in 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 in 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 in
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 in 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 in 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 in 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:
In 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 in 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. IupImageLibClose
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*. In 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.