&xwp; registra e/o sostituisce molte delle classi WPS. Per saperne di pi— si pu• studiare lo script INSTALL.CMD, nella cartella di installazione di &xwp;.

Le sostituzioni di classi pi— importanti che &xwp; effettua sono:

  1. XFolder, per le cartelle normali, contiene le funzionalit… principali di &xwp;,
  2. XFldDisk per gli oggetti "disco" che sono contenuti nella cartella "Unit…",
  3. XFldObject, la classe radice WPS, che permette di accedere a molte delle funzioni interne della WPS, e
  4. XFldDesktop per le nuove funzionalit… della Scrivania, in particolare la procedura di chiusura avanzata.
Tutte queste classi vanno a sostituire classi originali WPS.

Nel senso descritto nella pagina precedente, la classe XFolder Š una "derivazione" della classe WPFolder. Perci• ha tutte le funzionalit… che hanno le normali cartelle, cui aggiunge le nuove voci di menu contestuali, i tasti rapidi cartella, la possibilit… di modificare i titoli delle finestre ecc.

Grazie al polimorfismo XFolder ridefinisce alcuni dei metodi di WPFolder, come descritto pi— avanti.

Tuttavia XFolder si registra nella WPS come classe sostitutiva di WPFolder, il che significa che la WPS come normale classe per le cartelle utilizza la classe XFolder invece di quella WPFolder. Quindi la classe WPFolder non viene pi— utilizzata direttamente, ma solo attraverso la sua classe sostitutiva (e "discendente"), XFolder.

Elenco qui alcuni dei metodi WPFolder superati da quelli della classe XFolder (per la curiosit… degli sviluppatori):

La classe XFldDisk, che rimpiazza la classe WPDisk, non ha molte funzioni aggiuntive oltre all'indirizzare i propri metodi verso i metodi corrispondenti di XFolder, cosŤ da far apparire l'unit… come una normale cartella (di XFolder). IBM infatti decise per qualche motivo che gli oggetti disco non dovevano essere cartelle normali ed andavano implementati con una classe apposta (WPRootFolder); anche XFolder mantiene questa divisione ed utilizza quindi una classe separata.

Neanche XFldObject in apparenza fa molto, al di fuori dell'eliminare le voci di menu standard di &os2; ed aggiungere la funzione "Copiare nome file". Serve tuttavia internamente ad altre parti di XFolder per notificare eventi speciali interni alla WPS, in particolare la funzione &xshutdown;, descritta in dettaglio alla pagina successiva.

La classe XFldDesktop Š implementata per modificare le voci di menu della Scrivania e per la funzione &xshutdown;, descritta in dettaglio alla pagina successiva.

Mentre le versioni precedenti rimpiazzavano anche la classe WPSystem per aggiungere all'oggetto "Sistema" nella cartella "Impostazione del sistema" nuove pagine relative alle impostazioni globali XFolder, a partire dalla versione V0.80 vengono registrate due nuove classi derivate da WPSystem, che non viene pi— sostituito. Le due nuove classi sono XFldSystem e XFldWPS, rispettivamente per gli oggetti "Kernel &os2;" e "Workplace Shell". Le impostazioni specificate dall'utente sono (per la maggior parte) conservate nel file OS2.INI e valutate ogni volta che XFolder ne ha bisogno (quando, per es., si apre un menu contestuale). Le impostazioni XFolder "locali", relative alle singole cartelle, sono invece conservate nell'Attributo Esteso .CLASSINFO, dove la WPS conserva tutte le impostazioni relative a quella data cartella. Tutto ci• Š garantito dalla classe XFolder.

Si tenga ben presente che tutte le classi XFolder sono progettare per interagire tra loro. Non si cerchi di rimuoverne ALCUNE, altrimenti XFolder inizier… a funzionare in maniera imprevedibile (se siete fortunati!). Tutte le funzionalit… di XFolder sono estremamente configurabili in modo da poter disattivare tutto ci• che non si vuole usare, fino ad eliminare completamente XFolder.