&xwp; registers and/or replaces a whole number of WPS classes. Take a look at the INSTALL.CMD script in the &xwp; installation directory to find out more about this.

The most important &xwp; class replacements are:

  1. XFolder for regular folders, which contains the main functionality of &xwp;,
  2. XFldDisk for "disk" objects, which appear in the "Drives" folder,
  3. XFldObject, the WPS root class, for being able to access a whole number of WPS internals, and
  4. XFldDesktop for the new Desktop features, especially the eXtended Shutdown procedure.
All these classes replace the original WPS classes.

In the sense described on the previous page, the XFolder class is a descendant of the WPFolder class. This way, it can do everything that a regular folder can. As a new function, it adds new context menu items to all folders, allows for folder hotkeys, changes the folder window titles, etc.

By using polymorphism, XFolder redefines certain WPFolder methods, as described below.

However, XFolder is then registered with the WPS as a WPFolder replacement, meaning that the WPS will use the XFolder class as its standard folder class, instead of WPFolder. In doing so, the WPFolder class is not any more used directly, but only through its replacement (and descendant) class, XFolder.

Some of the WPFolder methods that the XFolder class overrides are (this will probably only of interest for programmers):

The XFldDisk class, which replaces the WPDisk class, does not do much, aside from routing its methods to the XFolder method counterparts, so that drive views act just like normal (X)folders. IBM has, for some reason, chosen not to make disk objects regular folders, but implemented a different class for them (called WPRootFolder), so XFolder needs a separate class too.

XFldObject doesn't do much visibly either, except for suppressing &os2; default menu items and adding the "Copy filename" feature. It is however required by other XFolder parts internally in order to be notified of some internal WPS events, especially the &xshutdown; feature, which is described in detail on the next page.

The XFldDesktop class is implemented to allow changing the Desktop menu items and for &xshutdown;, which is described in detail on the next page.

While previous versions also replaced the WPSystem class so that the "System" object in the "System setup" folder contained more notebook pages to access XFolder's Global Settings, with V0.80 this behavior has changed. Instead, XFolder registers two new classes derived from WPSystem without replacing it. These two classes are XFldSystem and XFldWPS for the "&os2; Kernel" and "Workplace Shell" objects, respectively. The settings that you specify here are (mostly) stored in OS2.INI and evaluated every time XFolder needs them (e.g. when you open a context menu). In contrast, the "local" XFolder settings for an individual folder are stored in its .CLASSINFO Extended Attributes, where the WPS also stores the other folder settings. This is then done by the XFolder class.

Please note that all the XFolder classes are designed to interact. Do not try to remove only SOME of them, or XFolder might behave in a funny way (if you're lucky). All of XFolder's features have been made fairly configurable, so you should be able to get rid of what you don't like -- or to get rid of XFolder altogether.