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

The most important XFolder class replacements are:

  1. XFolder for regular folders, which contains the main functionality of XFolder,
  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. Refer to the "WPS classes" page in the "Introduction" section for more on this.

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 OS/2 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 "OS/2 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.