Extending Builder Xcessory

You can customize and extend Builder Xcessory to handle new widgets and component classes, different resource editors, and your own callback functions. This capacity for extensibility makes Builder Xcessory a premier part of your development environment, one that you can use with all objects you are working with.

Steps for customizing Builder Xcessory

Extending Builder Xcessory involves the following two steps:

  • Ensuring that the extra data is available to the Builder Xcessory binary.
  • Telling Builder Xcessory how to handle that data.

Ensuring Availability of Data to Builder Xcessory

Types of data include the following functions that Builder Xcessory can call:

  • Widget class data describing new widgets
  • C++ classes describing new components.

Regardless of the type of data, making the data available to the Builder Xcessory binary is accomplished in the same way. On most systems, you can make a shared library of the classes or functions and place it in a location that Builder Xcessory searches when the library is needed, so that the library is dynamically loaded.

Using an object file

On other systems, where creation of a shared library is not feasible1, the widgets or functions are instead linked with object file bx.o to produce a new Builder Xcessory binary.

Telling Builder Xcessory How to Handle Data

You can tell Builder Xcessory how to handle the data in several ways, depending on the type of customization.In general, however, the following two primary mechanisms are used in combination:

  • Providing extra files that Builder Xcessory reads on start-up.
  • Providing functions that Builder Xcessory calls, and having those functions make special calls to Builder Xcessory to handle the customization.

On most systems these functions and calls can be in a library that Builder Xcessory loads when it first needs to call the function. However, on systems running SunOS 4, the functions and calls are linked instead with the object file bx.o to produce a new Builder Xcessory binary.

Builder Xcessory Object Packager

For certain kinds of customization, such as adding new widgets or components, or editing a catalog control file, Builder Xcessory provides the Builder Xcessory Object Packager tool. You can use the Object Packager to make these customizations whether or not you are using a system that handles dynamically loading shared libraries. The Object Packager helps you set up the control files that Builder Xcessory requires on all systems. For more detailed information, refer to
Chapter 7--Using the BX Object Packager.