EPak 3.0 Release Notes

Overview

ICS Products

This document provides release information pertaining to the following ICS products:

  • EPak PRO 3.0
  • EnhancementPak 3.0
  • ChartObject 3.2
  • EditTable 3.2
  • View3D 1.2

 

EPak PRO Product Groups

These products are available in the arrangements illustrated in Figure 1 :

 

Documentation

 

Your documentation set depends upon the product you purchased. The following table lists the documentation set included with each product:

Document

EPak PRO 3.0

EPak 
3.0

ChartObject

EditTable

View3D

EPak 3.0 CD-ROM Mounting Instructions

yes

yes

yes

yes

yes

EPak PRO 3.0 
Installation Notes

yes

yes

yes

yes

yes

EPak PRO 3.0 
Release Notes

yes

yes

yes

yes

yes

EnhancementPak 3.0 Programmers Reference

yes

yes

no

no

no

GraphPak 
Programmer's Reference

yes

yes

no

no

no

ChartObject 
Programming Guide

yes

no

yes

no

no

EditTable 
Programming Guide

yes

no

no

yes

no

View3D
Programming Guide

no

no

no

no

yes

 

HTML Documentation on the CD-ROM

HTML versions of the documents listed in the previous table are available on the EPak PRO CD-ROM in the following directory:

/html/index.htm   or   /HTML/INDEX.HTM (UNIX only)

 

HTML Documentation on the Website

HTML versions of the documents listed in the previous table are available here.

The following sections describe information related specifically to the EnhancementPak distribution included with EPak PRO 3.0 and EnhancementPak 3.0.

 

EnhancementPak Widgets Libraries and Headers

Libraries


EnhancementPak Widgets library names are as follows:

    • libEPak.a
    • libEPak_d.a

where _d indicates that the library includes debugging symbols. When debugging your application, link your application with the _dversion of the EnhancementPak library.

Header files


The header files are located in the <include-path>/Xi directory.

In addition, on many systems shared libraries are now supported, offering the ability to build smaller, upgradable binaries. ICS has a commitment to future binary compatibility of the EPak libraries.

Changes Since EnhancementPak 2.5

Visual Changes

Several widgets now have resources that cause them to more closely resemble user-interface objects from certain other popular graphical environments.

XiCombinationBox


The XmNnewVisualStyle resource (True by default) changes the shadowing and layout of the widget, so that the text area and the arrow button are more closely integrated.

XiExtended18List


The XmNnewVisualStyle resource (True by default) changes the shadowing that the widget uses for its column titles.

XiOutline


The XiOutline widget now supports a resource XmNconnectNodes (False by default) which causes the XiOutline to draw lines connecting a parent to each of its children nodes.

XiTree


The XiTree widget now supports an XmNorientation resource, allowing for vertical as well as horizontal layout.

New Widgets

This release includes the following new widgets:

    • XiColumn
    • XiDataField
    • ToolTips library

Refer the EnhancementPak Programmer's Reference manual for more information on these widgets.

New Functions

The library and widgets offer several new functions, including the following:

    • Access functions on the XiCombinationBox to retrieve its children
    • Access functions on the XiHierarchy/XiTree/XiOutline to retrieve children nodes for a given node

New Resources

The widgets support several new resources, including the resources on the XiHierarchy/XiTree/XiOutline for greater control of line visuals, pixmap visuals, layout, and spacing.

In addition, the widgets are now consistent and complete in their handling of resource converters for new data types. Refer to theEnhancementPak Programmer's Reference manual for information on the conventions for these string-to-data-type conversions.

Strings, XmStrings, String Tables, and Memory Management

In previous releases of EPak, certain string and compound string resources were documented as having access values of "CG", meaning that they could be set at creation (initialization) time and later retrieved via XtGetValues(), but not set via XtSetValues() ("S") while the widget was being used. In fact, both these resources and others which were documented as "CSG" were really "C". The XmString resources of the XiColorSelector, XiFontSelector, and XiPixmapEditor widgets are most obviously affected, but in general, all XmString resources are now CSG. Your program can now fetch these resources from the widget rather than maintaining a copy.

Refer to the EnhancementPak Programmer's Reference for more information on memory management.

Internal Changes

The following internal changes have an impact on application developers:

    • Most symbols which did not need to be made public are now made private or are renamed with "Xi" prefixes. This results in less name-space pollution and in a reduced chance of name conflicts with applications.
    • Widgets now support shared libraries.
    • Widgets now follow the Motif guidelines for writing subclasses using the XmResolvePartOffsets() mechanism. That is, applications using the widgets can be compiled with all CDE or Open Group versions of Motif. Also, subclasses of the EPak widgets themselves can be modified using these guidelines to be equally portable.

Bug Fixes

Several problems are fixed in this release, including the following:

    • Various memory leaks have been fixed.
    • XiCombinationBox handling of XmNvisibleItemCount is now more reasonable. Please see the reference manual for more information on dealing with the resources of children of compound widgets.
    • Several offset values are now resolution-independent, rather than being dealt with only as pixel values.

Demos


The demos directory contains several examples which illustrate some common uses of the EnhancementPak widgets, as well as the code that manipulates these widgets.

Copying the Source Tree

Before you build the demos, copy the source tree into a specific location. For example, to build the demos in /tmp you enter the following:

% cd /tmp
% cp -r <install-tree>/demos ./demos

where <install-tree> is the directory in which EnhancementPak actually resides.

Building the Demos

You may build the demos by hand, or you may use the following commands to build Makefiles for the demos:

 
1. Go to the top of the demos source tree, or to the tree you created for a copy.
% cd demos
 
If you installed the EnhancementPak in a non-standard location, or if you did not create links from the installation to a standard location, you may need to edit the file /tmp/demos/demos.cf. See this file for details about the modification.
 
Generate all the Makefiles.
% xmkmf
% make Makefiles
 
Build the demo tree:
% make
 
If you do not want to build all the demos, you may build them individually. For example, to build the Button Box demo, enter:
% cd ButtonBox
% make

For further information on Imakefiles, see the X11R5 man pages and documentation on imake.

Troubleshooting Demo Building


If you encounter problems when building the demos, consult the following sections.

Verify That imake or xmkmf Can Be Found

You cannot build the demos if the imake and xmkmf utilities are not found. To ensure that they are found, put /usr/bin/X11 in yourPATH.

Use the which command to verify that imake and xmkmf can be found. For example, enter:

% which xmkmf

The following verification is displayed:

/usr/bin/X11/xmkmf

Verify That make Can Be Found

You cannot build the demos if the make utility is not found. To ensure that it is found, put /usr/ccs/bin in your PATH.

Use the which command to verify that make can be found. For example, enter:

% which make

The directory containing the make utility is displayed.

 

Known Problems


The following sections describe known problems in EnhancementPak 3.0.

Combination Box

    • The resource XmNcomboTranslations is not implemented.
    • When using a private colormap, the colormap is reverted to the default colormap when the Combination Box list is displayed. This bug is dependent on the X server and Window Manager being used.

Toolbar

Setting resources that effect geometry on unmanaged toolbar items can cause the toolbar to increase the width of these items.

Tree

Setting the label associated with a tree node can cause its placement in the tree to be shifted.

Undefined Symbols

When compiling with EnhancementPak using non-vendor supplied compilers, undefined symbols may be found; in particular __huge_val. If this occurs, add the following lines to your main file.

#include <math.h>
double __huge_val = HUGE_VAL;

Axis

The XmNlabelFunction resource is documented as a function that returns a String (char *). This resource should return an XmString.

GraphPak Documentation Errata

In the GraphPak documentation, all references to the resource XmNlinennn are incorrect. The resource should be XmNsegmentnnn.

 

Documentation: