Die wichtigsten XFolder Klassen-Ersetzungen sind:
Wie auf der vorhergehenden Seite beschrieben, ist die XFolder-Klasse eine Ableitung der Klasse WPFolder. So kann sie alles machen, was auch ein normaler Ordner kann. Als neue Funktion f�gt sie neue Kontextmen�-Eintr„ge zu allen Ordnern hinzu, erlaubt Ordner-Tastenk�rzel (Hotkeys), ver„ndert die Titelzeile u.v.a.
Durch Benutzung der Polymorphie definiert XFolder verschiedene WPFolder-Methoden neu, die nachstehend noch erl„utert werden.
XFolder ist jedoch dann in der WPS als ein WPFolder-Ersatz registriert, was bedeutet, daá die WPS die XFolder-Klasse anstatt WPFolder als ihre Ordner-Standard-Klasse benutzen wird. Dadurch wird WPFolder nicht mehr direkt benutzt, sondern nur noch durch ihre Ersatz-(und Ableitungs-)Klasse XFolder. F�r mehr Informationen �ber dieses Thema siehe die Seite "WPS-Klassen" im Einf�hrungs-Teil.
Hier einige der WPFolder-Methoden, die von der XFolder-Klasse ersetzt werden sind (wahrscheinlich nur f�r Programmierer von Interesse):
Da XFolder viel mit den Men�s spielt, ist dies eine der wichtigsten Methoden, die XFolder ersetzt. In dieser Methode ruft XFolder zuerst wpModifyPopupMenu von der Stammklasse (WPFolder) auf, um alle standardm„áigen Eintr„ge zum Kontextmen� hinzuzuf�gen.
Dann sucht sie nach dem XFolder-Konfigurationsordner (der die Objekt-ID <XFOLDER_CONFIG> haben muá) und f�gt ihn v”llig transparent ein. Jetzt werden alle Objekte, Untermen�s und Men�punkte durchgegangen. Wenn der Konfigurationsordner nicht gefunden wird, erscheint ein Nachrichtenfenster, und ein leerer Ordner mit der erforderlichen ID wird auf der Arbeitsoberfl„che erstellt.
Dasselbe geschieht mit den "Ordnerinhalt"-Funktionen und den "Lieblingsordnern". Jedoch werden diese Untermen�s nur dann mit Objekten gef�llt, wenn sie vom Benutzer ge”ffnet werden; dies geschieht, indem XFolder die Fensternachricht WM_INITMENU abf„ngt, und zwar in der "unterklassierten" (subclassed) Fensterprozedur f�r den Ordnerrahmen (siehe unten). XFolder "unterklassiert" ebenfalls alle Untermen�fenster (und nur diese), damit es die Symbole zeichnen und Maustaste 2 zum ™ffnen eines Ordners abfangen kann.
(Bitte beachten Sie, daá "subclassing" nichts mit WPS-Klassen zu tun hat, sondern ein Presentation Manager-Terminus f�r die Benutzung verschiedener Nachrichten-Prozeduren f�r ein existierendes Fenster ist, um bestimmte PM-Nachrichten f�r dieses Fenster abzufangen. Daf�r wird die API WinSubclassWindow benutzt.)
XFolder modifiziert mit dieser Methode auch diverse andere Men�s (wie das
"Sortieren"-Untermen�), wenn die globalen Einstellungen dies erlauben, und
f�gt andere Men�eintr„ge hinzu, wenn dies in den globalen Einstellungen
aktiviert worden ist.
XFolder �berpr�ft, ob einer seiner eigenen (variablen) Eintr„ge benutzt wird; wenn dem so ist, findet es das zugeh”rige Objekt im Konfigurationsordner. Falls es sich bei dem Objekt um eine Instanz der WPProgramm-Klasse handelt, werden die bereits vorher beschriebenen Tricks ausgef�hrt. Wenn das Objekt eine Schablone ist (egal welche WPS-Klasse), wird es nicht ge”ffnet, sondern XFolder erstellt dann davon ein neues Objekt im aktuellen Ordner (via wpCreateFromTemplate).
Falls der gew„hlte Eintrag zu den "Ordnerinhalt"-Untermen�s geh”rt, wird einfach das zugeh”rige Objekt gestartet.
Wenn irgendein anderer Men�eintrag, den XFolder zum Kontextmen� hinzugef�gt hat, benutzt wird, f�hrt XFolder intern die entsprechende Aktion aus.
Wurde allerdings kein XFolder Men�eintrag ausgew„hlt, wird die wpMenuItemSelected-Methode
der Stammklasse (WPFolder) aufgerufen, um die Standardeintr„ge nicht am Funktionieren
zu hindern.
Als erstes wird die Stammethode aufgerufen, um die Ordner-Ansicht zu ”ffnen: Die WPS erstellt ein Fenster mit einem Standard-PM-Container darin und zeigt es auch an.
XFolder f„ngt dann das Handle f�r den Fensterrahmen ab, mit dem es dann den Fenstertitel des Ordners „ndern und den kompletten Pfad dort einf�gen kann (falls aktiviert). Eigentlich ist es nur ein einfacher Aufruf von WinSetWindowText, nur mit einigen Berechnungen, um den Titel n”tigenfalls zu k�rzen.
In dieser Methode "unterklassiert" XFolder auch die Fensterprozedur f�r den Ordnerrahmen, damit WM_CHAR-Nachrichten f�r Hotkeys und viele andere Dinge verarbeitet werden k”nnen. Das Unterklassieren erschien mir die beste M”glichkeit zu sein, da der gesamte n”tige WPS-Initialisierungskram durch das Aufrufen der Stamm-Methode erledigt wird. Der Nachteil ist, daá der Benutzer nicht mit dem Ordner interagieren kann, weil er erst danach mit Objekten gef�llt ("bev”lkert" oder "populated" in WPS-Terminologie) wird.
XFolder f„ngt alle WM_CHAR-Nachrichten (die nur zur Fensterrahmen-Prozedur weitergereicht werden, wenn sie noch nicht von einem Container, wie den Pfeiltasten, bearbeitet worden sind) ab und wertet sie gem„á der Ordner-Tastenk�rzel-Liste aus, die in den globalen Einstellungen ge„ndert werden kann.
Unterklassieren wird auch f�r die Statusleisten der Ordner ben”tigt; die WM_QUERYFRAMECTLCOUNT-, WM_FORMATFRAME-, und WM_CALCFRAMERECT-Nachrichten werden abgefangen, um die Gr”áe des Ordnerrahmens und seines Container-Unterfensters entsprechend dem f�r die Statusleiste ben”tigten Platz zu „ndern.
XFolder f„ngt auch einige Container-Benachrichtigungen ab, um in der Baumansicht automatisch zu rollen und die Statusleiste zu „ndern, falls der Benutzer die Objektauswahl ge„ndert hat.
Zus„tzlich angelt sich XFolder diverse Men�-Nachrichten, wie WM_INITMENU und WM_MENUSELECT, um einige Men�-Funktionen zu benutzen, die �ber normale WPS-Methoden nicht nutzbar sind.
Alle Nachrichten, die keine Bedeutung f�r XFolder haben, werden zu ihrer urspr�nglichen Fensterprozedur weitergereicht.
Die wpOpen-Methode wird auch zur Implementation der erweiterten
Sortierfunktionen von XFolder gebraucht; XFolder aktualisiert die Container-Einstellungen
gem„á den Sortierkriterien, die Sie angegeben haben.
XFldObject arbeitet auf den ersten Blick anscheinend auch nicht so viel, auáer daá die Standard Men�-Eintr„ge unterdr�ckt werden und "Dateiname kopieren" hinzugef�gt wird. Aber diese Klasse wird von anderen XFolder-Teilen ben”tigt, um �ber einige interne WPS-Ereignisse benachrichtigt zu werden, vor allem von XShutdown, was im Detail auf der n„chsten Seite beschrieben wird.
Die XFldDesktop-Klasse wurde f�r die Žnderung der Desktop-Men�eintr„ge implementiert sowie f�r XShutdown, das im Detail auf der n„chsten Seite beschrieben wird, implementiert.
W„hrend fr�here Versionen auch die WPSystem-Klasse ersetzten, so daá das "System"-Objekt in der Systemkonfiguration einige Reiter f�r XFolders globale Einstellungen enthielt, hat sich dieses Verhalten mit V0.80 ge„ndert. Stattdessen registriert XFolder zwei neue Klassen, die sich zwar von WPSystem ableiten, diese Klasse aber nicht ersetzen. Diese zwei Klassen sind XFldSystem und XFldWPS f�r das Objekt "OS/2 Kernel" bzw. "Workplace Shell". Die Einstellungen werden gr”átenteils in der OS2.INI gespeichert und jedesmal dann ausgewertet, wenn XFolder sie braucht (z.B. wenn Sie ein Kontextmen� ”ffnen). Dagegen werden die "lokalen" XFolder-Einstellungen f�r einen einzelnen Ordner in seinen .CLASSINFO-EAs gespeichert, wo die WPS auch die anderen Ordner-Einstellungen sichert. Dies wird dann von der XFolder-Klasse erledigt.
Bitte beachten Sie, daá die XFolder-Klassen entworfen wurden, um
zu interagieren. Versuchen Sie nicht einfach nur einige der Klassen zu entfernen, da
sich XFolder komisch benehmen k”nnte (wenn Sie Gl�ck haben). Alle M”glichkeiten
von XFolder sind individuell einstellbar, so daá Sie nur das einsetzen m�ssen, was
Sie brauchen -- Sie k”nnen XFolder auch ganz schnell loswerden, falls Sie wollen.