I "Skrivbord" objektet finns en sida "Skrivbordsklasser", där du kan påverka Skrivbordsklasslistan.

För att kunna använda denna sida, krävs förståelse för vad Skrivbordklasser faktiskt gör. Följande information hjälper dig med detta.

Du har säkert hört att OS/2 Skrivbordet är "objektorienterat". Denna term innebär  -- i motsats till andra användargränssnitt, såsom Windows 3.1 -- att allt Skrivbordet hanterar är  "objekt": det gäller, till exempel för filer, mappar, skrivare, enheter etc. Alla dessa objekt har vissa gemensamma karaktäristika, som menyer och inställningsblock, men skiljer sig i vissa andra t.ex. vad du ser i en meny skiljer sig mellan olika objekt.

För att kunna hantera dessa gemensamma och olika karaktäristika bättre använder Skrivbordet "klasser". Denna term har tagits från objektorienterad programmering; en klass är ett abstrakt beskrivning på ett objekt. En klass är därför inte synlig på Skrivbordet och den "existerar" inte på det sätt som ett objekt gör, utan den innehåller all information om egenskaper och förmågor hos ett objekt.

Varje objekt på Skrivbordet är en "instans" av en klass. Namnen på de flesta Skrivbordsklasser börjar med "WP"; till exempel en skrivare är en instans av "WPPrinter" klassen, en mapp är en instans av klassen "WPFolder", en datafil av "WPDataFile" etc.

Källan till kraften och flexibiliteten för klasskonceptet är att olika klasser kan härstamma från andra. En klass som härstammar från en annan klass ärver sina egenskaper och förmågor. Det är därför möjligt att göra vissa funktioner av användargränssnittet mer abstrakta, enligt den gamla principen: det bästa sättet att hantera komplexitet är abstraktion.

Klasskonceptet kan tillämpas på saker i den "verkliga" världen för att klargöra det: till exempel, tänk på klasserna "Djur", "Däggdjur", "Hund" och "Katt". Klasserna "Däggdjur" härstammar från "Djur" klassen, medan "Hund" och "Katt" härstammar från "Däggdjur". Din egen hund är då en instans av "Hund" klassen. Dess beteende bestäms av klasserna "Djur", "Däggdjur" och "Hund" tillsammans.

Skrivbordet innehåller många klasser, som bildar en mycket genomtänkt arvshierarki. Följande utdrag från Skrivbordsklasslistan kan klargöra den allmänna strukturen (där linjerna betyder arv):

   WPObject
     ├── WPAbstract
     │     ├── WPPrinter
     │     ├── WPProgram
     │     └── WPShadow
     ├── WPFileSystem
     │     ├── WPDataFile
     │     │      ├── WPIcon
     │     │      └── WPProgramFile
     │     └── WPFolder
     │            ├── WPDesktop
     │            └── WPStartup
     └── WPTransient

Du ser att alla klasser är avkomlingar till WPObject. Det är en så kallad "rotklass" för alla Skrivbordsklasser och innehåller alla funktioner som är gemensamma för alla Skrivbordsobjekt, t.ex. menyer och inställningsblock. WPObject klassen är dock för abstrakt för att ha instanser av sig: den är bara skapad för att ärvas av andra klasser. Objekt av abstrakta klasser kommer inte att fungera.

WPObject har bara tre avkomlingsklasser. Alla dessa klasser är -- i likhet med WPObject -- bara tänkta att vara abstrakta förälderklasser av vilka inga objekt direkt skall existera.

Skrivbordet har också en exceptionell mekanism kallad klassöverlagring. Den utnyttjas mycket av XFolder för att haka alla dess funktioner in i Skrivbordet genom att ersätta ett antal Skrivbordsklasser. Till exempel, XFolderklassen ersätter WPFolderklassen för nya mappfunktionerna. En sådan klass måste alltid ärva den klass den skall ersätta av XFolder. "Att ersätta" klassen innebär att Skrivbordet alltid använder ersättningsklassen istället för den ursprungliga klassen. Om du har XFolder installerat är alla mapparna i ditt system inte längre instanser av WPFolder utan av XFolder. Men eftersom XFolder är arvinge till WPFolder, så ändras bara de egenskaper som XFolder påverkar eller lägger till.

Alla Skrivbordsklasser ligger i dynamic link bibliotek (filändelse .DLL). Till exempel, de flesta av Skrivbordets standardklasser ligger i den stora PMWP.DLL filen i \OS2\DLL katalogen. Alla XFolderklasser ligger i XFLDR.DLL i XFolder installationskatalog.

Med denna teknik kan programmerare lägga till nya funktioner till en klass utan i detalj behöva veta hur en viss klass internt fungerar. Det är ett enastående och kraftfullt koncept som fortfarande bara OS/2 erbjuder.

Notera om du försöker att avregistrera vissa OS/2 systemklasser (som du normalt ändå inte skall göra), kommer det förmodligen att inte ha effekt om DLL:n innehållande den klassen inrymmer andra Skrivbordsklasser som fortfarande är registrerade. Det gäller speciellt för OS/2 Warp 4 Multimediaklasser: alla dessa finns i MMPARTS.DLL och så länge en av dessa klasser fortfarande är registrerad, laddas alla multimediaklasser fortfarande, även om de inte finns i Skrivbordsklasslistan.

Detta är bara en kortfattad introduktion till Skrivbordsklasslistan. Om du öppnar "Skrivbordklasser" sidan i "Skrivbord" objektet, kommer alla klasser installerade i ditt system att visas. Vanligen syns mer än 100 klasser i trädstruktur. Med menyer kan du registrera, ersätta och avregistrera klasser samt ångra klassöverlagringar.

Notera att du skall vara mycket noggrann när du ändrar Skrivbordsklasslistan. Med denna sida kan du göra ditt OS/2 system oanvändbart på sekunder!

Tryck på "Hjälp" knappen på sidan för att få mer detaljer.