Integration of XRT/graph, XRT/3d, XRT/table, XRT/field, and XRT/gear -------------------------------------------------------------------- This directory contains the files required to integrate the KL Group XRT widgets into WorkShop Visual: The integration kit will work with: Volume 9: XRT/graph 2.4.0 XRT/3d 2.1.0 XRT/table 2.2.0 XRT/field 1.0.0 XRT/gear 1.0.0 Load XRT9.xdc Volume 10: XRT/graph 2.4.0 XRT/3d 2.1.0 XRT/table 2.2.0 XRT/field 1.0.0 XRT/gear 2.0.0 Load XRT10-12.xdc Volume 11 (PDS Version 1.0.0): XRT/graph 3.0.0 XRT/3d 2.1.1 XRT/table 2.2.1 XRT/field 1.1.0 XRT/gear 2.0.1 Load XRT10-12.xdc Volume 12 (PDS Version 1.0.1): XRT/graph 3.0.3 XRT/3d 2.1.2 XRT/table 2.2.2 XRT/field 1.1.1 XRT/gear 2.0.2 Load XRT10-12.xdc Volume 13 (PDS Version 2.0.0): XRT/graph 4.0.0 XRT/3d 3.0.0 XRT/table 3.0.0 XRT/field 2.0.0 XRT/gear 3.0.0 Load XRT13.xdc Volume 14 (PDS Version 2.0.1): XRT/graph 4.0.0 XRT/3d 3.0.0 XRT/table 3.0.0 XRT/field 2.0.0 XRT/gear 3.0.0 XRT/gauge 1.1.0 Load XRT14.xdc Files contained in this directory are as follows: README - These notes. Configure - Shell script which creates a customized Makefile for your architecture based on the templates in the config directory and creates a new visu executable using that Makefile. Makefile - creates visu binary with XRT widgets integrated (this Makefile is generated by running the Configure script) XRT9.xdc - configuration file for XRT volume 9 widgets XRT10-12.xdc - configuration file for XRT volume 10-12 widgets XRT13.xdc - configuration file for XRT volume 13 widgets XRT14.xdc - configuration file for XRT volume 14 widgets XdXrtMap.h - Header file for handling XRT versioning across the various volumes of the XRT XRT_stubs.c - additional interface code for XRT integrations. app-defaults/ - Resources for widgets in WorkShop Visual integration. visu bitmaps/ - contains pixmap files used to represent the XRT/gear widgets on the visu widget palette. make_templates/ - contains Makefile Templates for building generated applications which contain XRT widgets Integrating XRT/graph, XRT/3d, XRT/table, XRT/field, Xrt/gear, and/or XRT/gauge ------------------------------------------------------------------------------- 1. Start visu_config and use the File/Open menu option to load the XRT14.xdc, XRT13.xdc, XRT10-12.xdc, or XRT9.xdc file. These families will be listed: XRT/family - contains variously XRT/graph, XRT/3d, XRT/table, XRT/gear, XRT/field, and XRT/gauge widgets. XRT/graph - contains XRT/graph widget class only. XRT/3d - contains XRT/3d widget class (includes XRT/3d text object) XRT/table - contains XRT/table widget class (includes XRT/label widget). XRT/field - contains XRT/field widgets (including XRT/ComboBox widget) XRT/gear - contains XRT/gear widgets XRT/gauge - contains XRT/gauge widgets 2. Select the 'Config file' option from the Generate menu. The Generate dialog contains a toggle button for each family. Select one or more of these families depending on the combination of widgets that are to be integrated into WorkShop Visual. Click on OK to generate the XRT_config.c file. Repeat this procedure for the 'Code file' menu option to generate XRT_code.c. 3. Build the visu binary using the Configure script. Ensure that environment variables XRTHOME and VISUROOT are set to the XRT home directory and WorkShop Visual install directories respectively. Type ./Configure (OR /bin/sh ./Configure) This will create a Makefile for your particular architecture and configured for any XRT products which you have installed. If you do not wish to configure all of your installed XRT products you can use one or more of the following options to skip an installed XRT product: -nograph - do not configure with XRT/graph -no3d - do not configure with XRT/3d -notable - do not configure with XRT/table -nofield - do not configure with XRT/field -nogear - do not configure with XRT/gear -nogauge - do not configure with XRT/gauge For example, the command ./Configure -notable will ignore XRT/table but will include XRT/graph, XRT3d, XRT/field, XRT/gear, or XRT/gauge if they are installed. You can type: ./Configure -help for a complete list of options. NOTE: Configure will include a product even if it has not yet been enabled. It will also include older releases (eg XRT/graph 2.3). These cases should be skipped using the appropriate option. If the process fails, you may need to edit the Makefile for your particular environment. If you have edited the Makefile do not rerun Configure as it will write over the Makefile. In this case just typing make will work. After the build has successfully completed an 'visu' executable incorporating the required XRT widgets will have been created in the local directory. 4. This binary may be invoked by setting the environment variable USER_WIDGETS to the name of this directory (i.e. USER_WIDGETS=XRT) and invoking WorkShop Visual as normal. 5. This widget integration can be made the default for your site by moving or copying this directory to 'local' (including any bitmap and app-defaults sub-directories). Displaying graphs inside WorkShop Visual ----------------------------------- Many resource changes made to an XRT/graph or XRT/3d widget from within WorkShop Visual are not visible unless the widget is displaying a graph. A graph can be displayed from within WorkShop Visual by specifying the path name to a suitable data file in the XRT/graph xrtData and xrtData2 or XRT/3d xrt3dSurfaceData resource fields. A number of sample data files are provided with the XRT software. Release Notes: XRT/field (PATCH REQUIRED for ComboBox and SpinBox Widgets!!!) -------------------------------------------------------------- User's integrating XRT/field 1.0.0 with WorkShop Visual require a patch to the widget in order to use ComboBoxes and SpinBoxes successfully. Without this patch, the widget creates memory problems within WorkShop Visual that may cause it to crash. The patch number is 4-100-06 and is available by anonymous ftp from ftp.klg.com in the directory ftp/patches. User's using the XrtFloatField widget may also require patch 4-100-07 as the converter for resources of type double causes a core dump on some architectures. If you have WorkShop Visual before version 5.0.2: ------------------------------------------ Using XRT/field's ComboBox or SpinBox needs some explanation. After selecting one from the palette (let's say SpinBox), WorkShop Visual will create a SpinBox with a XRT/field widget of type String. The widget tree will show a SpinBox but no XRT/field widget will appear as a child. To get at the resources of the XRT/field widget that is a child of the SpinBox or to change to a different type of field widget, set the xrtSpinFieldType to None. This removes the field widget from the SpinBox. Now with the SpinBox selected, select the type of XRT/field widget desired from the palette (you can also add more XRT/field widgets to the SpinBox in this fashion). You can now select the XRT/field widget and edit the resources as normal. WorkShop Visual 5.0.2 gives full access to abstract children of third party composite widgets, and hence the XRT/field child of the SpinBox is fully configurable inline. If you have WorkShop Visual before version 5.0.3: ------------------------------------------ The PickList resources of the Field widget set are of amorphous type, and this renders the binary unstable when handling these resources across the various widget types. These have been disabled in the configuration files for safety. You are advised to cut these from your designs, and handle via loose bindings or resource file: loading these resources from save file can immediately core dump WorkShop Visual. When generating code for resources represented by arrays of non-compond strings, WorkShop Visual 5.0.2 and earlier generated XtConvertAndStore code that allocates a pointer and calls bcopy on the address. This is unstable on many platforms. WorkShop Visual 5.0.3 is configured to generate direct casts of the correct type. If you have an earlier version than this, you are advised to generate these resources into the X resource file. The integration kit for PDS 2 turned off the generation of XtInitializeWidgetClass for the XRT/table, along with other widgets in the range. This is wrong: the initialization code is required otherwise type converters are not registered for the widget. XRT/gear -------- To use XmNxrtGearPageWidget constraint resource of TabManager first create pages. After pages are created create tabs associated with them. Then you can change order of association by specifying page widget for tab widget. PickList Resources ------------------ The code generated for PickList resources is currently wrong: WorkShop Visual fails to place the string list of items within quotes. PickList resources should therefore be generated to the X resource file until the matter can be resolved. Note that the examples/gear/gear.xd specimen design supplied by KL Group has PickList resources specified. In addition, the Aligner example assumes that the file "multicol.dat" is in the current directory. Therefore for the specimen to work properly inline, it is necessary to change directory into examples/gear before opening the design.