19 Version A.05.02.d
19.1 Important Changes
- The distribution of the IDM for UNIX platforms has been changed. In the future, the distribution will take place in the form of tar/gzip archives. A serial number is necessary to install the IDM (see chapter “Installation Guidelines Unix”).
- The XML IDM interface is now available for UNIX platforms beginning with this version. Here, the libxml2 and libxslt libraries are necessary.
- The document object (XML Document) now contains the new attributes version[enum] and real_version[enum]. With .version the XML toolkit version can be specified under MS Windows. With .real_version[enum] the actual loaded version of the XML toolkit can be accessed. When querying real_version the system will try to load the toolkit that is stated in .version.
- The USW interface is now available under Microsoft Windows. The User Supplied Widgets (USW) can be integrated in the IDM via this interface. As a result, a few changes were made to the USW interface.
- In connection with the USW interface two new attributes were implemented for all objects: external and external[I]. .external is a Boolean type and indicates if the object in question is a USW. On the other hand, .external[I] delivers the registered USW object class at position I.
-
As a result of the implementation of the USW interface under Windows, two additional elements were added to the DM_Value structure, which caused the static initialization to be changed as seen below:
Old:
DM_Value valVoid = { FALSE, FALSE, DT_void };
New:
DM_Value valVoid = { FALSE, FALSE, FALSE, 0, DT_void };
In addition, signatures in the C++ interface were changed.
19.2 Windows
- Gnats 10587: Changing the size of MDI child windows works correctly again. When child windows are maximized in size the title and menu bars are no longer covered by the client area.
- Gnats 10520: The interactive docking of toolbar objects when they are dragged at their title bar now also works correctly under Windows Vista.
- Gnats 10497: The window object falsely recognized the child object of a toolbar object as a focused object, when at the time the child object was made visible it did not posses a focused object. This no longer occurs.
- Gnats 10489: When an image object was deleted while at the same time the left mouse button was pressed (e.g. in a focus rule), then no more select events were created for other image objects. This problem has been corrected.
- Gnats 10470: A scrollbar object is no longer implicitly disabled when both arrows are set to be disabled in this area in question. Now the scrollbar object once again accepts the focus. Furthermore, the keyboard navigation no longer remains stuck on the scrollbar object. (This problem only arose under the Windows 2000/NT version of the IDM.)
- Gnats 10451: When a messagebox is closed, then the object that had the focus before the messagebox was opened in the window owning the messagebox receives the focus again. The window is no longer set to insensitive when opening the messagebox which prevented the focus from being returned.
- Gnats 10440: When triggering the mnemonics of an insensitive statictext, the system menu is no longer erroneously opened.
- Gnats 10413: The forwarding of an explicit set-up of an edittext in a tablefield is now carried out correctly. Now it is avoided that an edittext object in a tablefield is made visible after a parent object of the same tablefield is switched to invisible. This could happen when transferring parent objects. In the trace file this problem is documented by the following message: [IM] Cannot create <object>, because it was destroyed.
- Gnats 10401: The changing of the.sensitive attribute of a window object to a visible status is now communicated correctly to the toolbars and statusbar of the window.
- Gnats 10373: The icons of a window are now correctly set so that the dialog for switching between applications (key combination Alt + Tab) under Windows XP no longer shows the standard icons in the window classes (
IDM Eye
) and under Windows Vista no longer shows an enlargement of the small icon (from the title bar). - Gnats 10363: Starting the IDM editor via the button in the start menu (created during installation) sometimes caused an error to occur when the installation path of the IDM contained blanks. This error message no longer occurs. Now, when installing the IDM, the paths for the start menu entries are set correctly even when the path contains blanks.
- Gnats 10362: The problem that resulted from a different error correction, namely that context menus (pop-up menus) without the on open rule did not open as they should have, has been corrected.
-
Gnats 10361: Since each version of the MSXML control object is different with respect to the supported standards, the document object now has a new attribute .version for specifying the necessary version of the MSXML control. For example, the MSXML control (starting in version 4) supports the validation of an XML Document against an XSD (XML Schema Definition).
The setting of the attribute .version does not necessarily lead to the loading of the required MSXML control version. When querying the attribute the set value is returned. To test dynamically if the desired MSXML control can be loaded, the other new attribute .real_version must be queried.
- Gnats 10356: A memory leak when accessing the .xml attribute of a document or cursor object has been corrected. This was caused when text, that was stored in a temporary buffer, was not released.
-
Gnats 10347: Crashes sometimes occurred (mostly an assfail in an object/slot) when an IDM window was opened or manipulated on a Citrix system with multiple monitors. The reason for this is that Citrix intercepts the Windows messages WM_GETMINMAXINFO. This brought the IDM into an endless loop. The crashes are now avoided but the problem remains in principle.
The ISA Dialog Manager needs these WM_GETMINMAXINFO messages in order to display the window in its correct size. When these are intercepted the correct display of these windows can not be guaranteed. Windows without raster defined and fastened at top/left cause the least problems.
- Gnats 10338: Now an edittext object is correctly assigned to a tablefield when a hierarchical model in a visible state is dynamically instantiated. This problem occurred when an edittext object was created after a tablefield object and the setting of the attribute .edittext on the tablefield was not relayed to the window system.
- New (Gnats 10136): The image object can automatically create an image that is displayed in an insensitive state. If the new option .options[opt_sim_insensitive] is set to true for an image without a picture for the insensitive presentation (.picture[tile_insensitive] = null), then a faded version of the image object is shown. Note: This function is not available for Windows versions before Windows 2000 or Windows 98.
- Gnats 10104: The OLE control (.mode = mode_client) follows the optimal OLEMISC_SETCLIENTSITEFIRST. Through this the depiction problem of a Java Bean OLE object within the control object has been solved.
-
Gnats 10032: The set minimal height of a window was relatively high when many menubox objects existed. This was due to the fact that the calculation of the minimal height of the window was set to the minimal width, whereby most every menubox object demanded its own line. In addition to this, the window was not able to be dragged to the maximal height when it possessed the minimal width. This problem came about because in order to calculate the maximal height of a window, the maximal width was also used in the calculation, whereby the menu line was usually a single line. The same was true when a window possessed multiple toolbar objects, whereby the problem arose not only in connection with the calculation of the height but also with the width of the window. The calculation of minimal and maximal sizes happens dynamically so that all sizes can be attained. In the calculation, the window is brought to the desired size (when possible) and then from this state the minimal and maximal height is calculated.
With respect to docked toolbar objects it is possible that the minimal and maximal height and width cannot be interactively attained. This problem arose when a further adjustment to the width or the height was made which caused the toolbar objects to become completely rearranged that in turn led to a violation of the minimal and maximal height and width. In this case, it is enough to just change the height and width (please note the transposition).
- New (Gnats 9534): By using the start option -IDMno_yi_monitoring the activation of monitoring functions, which are installed with YiRegisterUserEventMonitor, can be suppressed or stopped. This option can be of help when looking for errors that are suspected of being caused by monitoring functions. In place of the start option also the environment variable IDM_NO_YI_MONITORING can be specified or the option .options[opt_yi_monitoring] of the setup object can be set to false. If monitoring functions were switched off via start options or environment variables, they cannot be turned on again by setting .options[opt_yi_monitoring] = true.
- Corrected: Inactive notepage objects were in some cases not adjusted to the size of the surrounding notebook objects. This problem arose in notebook objects that were tied to their parents using .xauto or .yauto = 0.
- Corrected: A docked toolbar object with an active raster reacted to changes made to .xleft or .ytop when a raster was active. In addition, a docked toolbar object displaced by the raster offset.
- New: The OLE interface now analyzes type information. As a result, OLE controls can be called with the data types expected by them and the IDM interface is no longer depending on them to convert the data (as usually required).
19.3 Motif
- Gnats 10536: When a window only contains a single focusable object (no grouping object) and a grouping object with navigable children, then an endless loop occurred when the only focusable object was made invisible. This problem has been corrected.
- Change (Gnats 10466): Grouping objects on which only one virtual size (width and height) is set now behave analog to the Windows version. This means the size that is not set results dynamically from the size of the grouping object and is no longer constant with regard to the original size.
- Gnats 10465: When setting .yorigin on groupboxes or windows ,whose size is virtual, then the value for the vertical scrollbar is now correctly set.
- Gnats 10408: Setting the size of windows with menus no longer leads to constant resize events.
-
New: The poptext object under Motif 2.x supports the attributes .xmarginand .ymargin in influencing the horizontal and vertical distance between the text and the outside frames.
Since the poptext under Motif is a compound object, the attributes influence the distance between the text and the textfield frames and therefore only have an indirect affect on the distance between the textfield and the outside frames. The .ymargin attribute influences the height of the poptext when no height is specified (.height = 0 and .yauto <> 0). Too high of values can lead to the text not being visible by predetermined heights. The .ymargin attribute counteracts this when a width is specified which in turn adjusts the displayed text area and distance between the frames. For negative attribute values, the standard values of the system are used.
Noteworthy under Motif
- The use of .xmargin is not recommended because Motif displays the cursor within the frame area when it is left or right of the text.
- The textfield frame under Motif is normally only visible for the styles edittext and listbox.
- The value -2 for .xmargin/.ymargin is a compatibility mode to the precedent version which had a slightly different height calculation and text positioning for .height = 0.
- The default value is 5 and therefore different from the Windows platforms.
-
New: On the Motif platforms beginning with version 2.1 the tile resources now also loads images via the XmGetPixmap() function. Through this predefined pixmaps and the loading of images in XPM format are now possible. Under OpenMotif 2.3 the Motif library also supports the image formats JPEG and PNG.
Note
The \(..|..\) pattern only functions under the LINUX platforms for which an extended pattern was set with *.\(gif\|png\|...).
- Change: The calculation of the width of a poptext, whereby .width = 0, was corrected so that the longest text in the poptext is now completely visible.
- Change: The attributes .xmargin and .ymargin of the editext object are only set by the IDM when values are >=0. Otherwise the system standard values are used.
19.4 Core
- Gnats 10615: The optional parameter (boolean destroy input) of the stop() function is now treated correctly again.
- Gnats 10563: Default values of static variables are once again written out correctly (e.g. from the editor).
- Gnats 10592: The blocking of input when setting .startsel or .endsel of an edittext containing a number format is now avoided.
- Gnats 10549: An error that occurred when saving or reverting the temporary memory for a string parameter has been corrected. This error happened only under certain circumstances, for example, when exactly the limit of a page (64 KB) was reached.
- Change (Gnats 10458): WSI error messages that occur when setting invalid attribute values are now only emitted in the development version because these are regarded by the user as disturbing and not seen as an error in the dialog script.
- Gnats 10522: An inconsistency between the allocation and transferring of strings (without a reference to a text resource) in comparison to the use of local variables has been corrected. These are now transferred as pure strings.
- Gnats 10494: The C interface functions DM_GetValueIndex(), DM_SetValueIndex() and DM_ResetValueIndex() now carry out a code page conversion of the index parameters where necessary.
- Gnats 10487: In the Windows 2000/NT version no more negative results occur when using the function random().
- Gnats 10462: When saving dialogs and modules, blank spaces in local event rules and inheritable objects without an identifier are now avoided.
- Gnats 10452: Regarding the administration of identifiers within modules, the previous limit of 256KB for the identifier space has been raised. Now it is possible to have at least 65,500 identifiers with random lengths (max. 31 characters).
- Gnats 10420: When a parameter return value (e.g. from a method call) cannot be saved because the term is not an LVALUE, a clear error message is sent.
- Gnats 10395: Annotations on static attributes with indexed strings are now correctly written out and stored.
- Gnats 10382: The create method now correctly identifies object IDs that may have become available after the error message no more free object ID for module occurred.
- Gnats 9466: The trampoline generation now better supports the re-use of common parameter records. The generated header files can now be easily included as long as there is no redefinition of records having a different structure. As was before, please note that module and function identifiers used during the generation must be unique.
19.5 Editor
- Gnats 10419: The copying and pasting of child objects in the object browser as well as changes in the code window no longer lead to a syntax error *** Error in line 1: syntax error at or near >child<.
- Gnats 10233: The execution of the delete method of an object no longer leads to the attribute .visible being set to true for the window to which the object belongs.
- Gnats 9731, Gnats 9545 Gnats 9060: In the object section within the properties area it is now possible to assign and make multiple changes in the attribute groups at the same time. By user actions, which lead to an actualization of the object area, the user is specifically asked if these changes should be made or not. This is not true for interactions within the design area.
- Corrected: A defaults file is now also found under MS Windos when the PATH environment variable is analyzed at start-up of the editor.
19.6 Java
- Gnats 10346: When a dialogbox (window with .dialogbox = true) is open, dialog events are now created.
- Gnats 10345: Visible objects can once again dynamically be made invisible.
- Gnats 10343: Examples for the Java interface are now also installed during installation.
19.7 Installation Guidelines Unix
The following installation guidelines can also be found in the README.txt file.
The Dialog Manager comes packed in archives which where themselves crypted or contain crypted files. Your licensed options will automatically install and decrypt the necessary files when using the serial number with the delivered installation script.
Archives required for installation:
<architecture>.tar.gz | for each supported architecture |
doc-de.tar.gz.crypt | german documentation |
doc-en.tar.gz.crypt | english documentation |
IDM.EXAMPLES.tar.gz.crypt | C and IDM dialog examples |
COBDEMO.tar.gz.crypt | COBOL examples |
For a successful installation the utilities tar and gzip are required.
To install IDM follow steps 1 to 3:
-
Extracting the architecture dependent files:
Extract the architecture archive under a non-superuser (root) account with tar&gzip utility. You may create an empty directory first, for example with the commands
mkdir new
cd new
gzip -d < <path to architecture.tar.gz> | tar xf -
Copy the *.crypt files in the same directory. These files have to match the extracted architecture directory.
-
Installing the ISA DIALOG MANAGER software:
Change to the directory for the binary machine type, e.g.
cd sparc.solaris-100.motif-21
In that directory you will find the shell script install.sh which provides easy installation.
In case you want to install the DIALOG MANAGER software under an account different from root/bin, use the option -uid <username> or -gid <groupname>.
To install the Dialog Manager in the system, type as root sh ./install.sh.
In this case you do not need to modify the $PATH variable and you do not have to give any special include and link flags for compilation.
The script request the serial number. For an installation without interaction use the -serial <serial-number> option.
In order to keep the system tree clean from additional software or if you want to install more than one DIALOG MANAGER version at the same time, type as root:
sh ./install.sh -homedir "/directory_you_want_for_idm"
To skip the installation of the documentation or the examples use the -nodoc or -nosamples option.
-
Setting the environment for using DIALOG MANAGER:
For csh Users
Put in your ~/.cshrc file the following lines:
setenv IDM_HOMEDIR "/directory_you_installed_idm"
set path=($IDM_HOMEDIR/bin $path)
source $IDM_HOMEDIR/lib/IDM/idmenv
For sh and ksh Users
Put in your $HOME/.profile file the following lines:
IDM_HOMEDIR="/directory_you_installed_idm"
export IDM_HOMEDIR
PATH="$IDM_HOMEDIR/bin:$PATH"
export PATH
. $IDM_HOMEDIR/lib/IDM/idmenv.sh
It is necessary to set IDM_HOMEDIR to the home directory of Dialog Manager, which normally is done in the .profile or .cshrc file (see step 3).
Online documentation is available in english or german.
To read the online documentation after installation open the start page doc-de/html/IDM.htm or doc-en/html/IDM.htm in a HTML browser or press the help key F1 inside the editor "idmed".
If you have any problems with the installation, please call +49-711-22769-24 or send e-mail to idm-support@isa.de
Explanation of the Installed Files
? stands for the installation directory
?/bin/idd Dialog Manager Dialog Documentator for Motif
?/bin/idm Dialog Manager Simulator for Motif
?/bin/idmdbg Dialog Manager Debugger for Motif
?/bin/idmhelp Script to start the reader of the IDM documentation
?/bin/idmnet Dialog Manager Simulator for Network application side Motif
?/bin/idmndx Dialog Manager Simulator for Network display side Motif
?/bin/idmed Dialog Manager Editor
?/include/IDMco*.cob Include file for COBOL-applications
?/include/IDMuser.h Include file for C-applications
?/include/IDMmcard.h Include file for the mcard option
?/lib/libIDMinit.a Dialog Manager base library (not shared)
?/lib/libIDM.* Dialog Manager development library for Motif
?/lib/libIDMrt.* Dialog Manager runtime library for Motif
?/lib/libIDMnet.* Dialog Manager network library application side
?/lib/libIDMndx.* Dialog Manager network library display side
?/lib/libIDMusw.* User supplied widget support library (USW)
?/lib/*cob*.o COBOL modules
?/lib/IDM/* Directory containing configuration and dialog files
?/lib/IDM/Version Version file
?/lib/IDM/MakeDefs Include file for the Make utility
?/lib/IDM/idmed Editor specific files
?/lib/IDM/startup.c Startup module containing main routine (C source)
?/lib/IDM/*startup.o Startup object modules (normal/net/unicode) containing main
?/lib/IDM/idmenv.sh Environment setup file for sh and ksh
?/lib/IDM/idmenv Environment setup file for csh and tcsh
?/lib/IDM/gencobfx Program to build COBOL functioncall-module
?/lib/IDM/idd Dialog Documentator specific files
?/lib/IDM/idd/idd.sty LaTeX style file for the Dialog Documentator
?/lib/IDM/idmdbg Directory for specific files of the Dialog Debugger
?/lib/IDM/doc/* Directory containing documentation
?/lib/IDM/edextra Files of the edextra option
?/lib/IDM/usw USW specific files
?/lib/IDM/main.o main card object file
?/lib/IDM/mcard.o mcard object file
?/IDM.EXAMPLES Directory with dialog and C examples
?/COBDEMO Directory containing cobol samples