De viktigaste XFolder klass”verlagringarna „r:
I den betydelse som beskrevs p† f”reg†ende sida, „r XFolderklass en avkomling till WPFolderklassen. D„rf”r kan den g”ra allting en vanlig mapp kan. Som en ny funktion adderas f”r mappar, menyalternativ, snabbkommandon, namn i f”nster etc.
Genom att anv„nda polymorfism redefinierar XFolder vissa WPFolder metoder, som beskrivs nedan.
Emellertid, XFolder „r d† registrerad hos Skrivbordet som en WPFolder ers„ttning, vilket inneb„r att Skrivbordet anv„nder XFolderklassen som sin standard mappklass ist„llet f”r WPFolder. N„r detta sker, „r WPFolder klassen inte l„ngre anv„nd direkt utan bara genom sin ers„ttnings (och avkomlings) klass XFolder. Titta i "Skrivbordsklasser" i "Introduktion" sektionen f”r mer.
N†gra av WPFolder metoderna som XFolderklassen ”verskuggar „r (detta kommer f”rmodligen bara intressera programmerare):
Eftersom XFolder p†verkar menyer mycket, „r detta en av de viktigaste metoder som XFolder ”verskuggar. I denna metod anropar XFolder f”rst f”r„ldraklassens (WPFolderïs) wpModifyPopupMenu f”r att f† alla standard menyalternativ adderade till objektmenyn.
Den s”ker sedan efter XFolders Konfigurationsmapp (som m†ste ha objekt ID <XFOLDER_CONFIG>) och fyller den osynligt. Den g†r igenom alla objekt d„r, adderar undermenyer och menyalternativ till menyn. Om konfigurationsmappen inte hittas, visas ett meddelande och en tom mapp med den nyss n„mnda ID:n skapas p† Skrivbordet.
Samma sak g”rs f”r "Mappinneh†ll" funktionerna och "favorit" mapparna. Dessa undermenyer fylls bara med objekt efter de har ”ppnats av anv„ndaren; det g”rs genom att f†nga upp WM_INITMENU meddelandet i den underklassade mappramf”nsterproceduren (se nedan). XFolder underklassar ocks† dessa undermenyf”nster (och bara dessa) f”r att kunna m†la ikoner och f”r att f†nga upp musknapp 2 f”r att ”ppna en mapp.
(Notera att "underklassning" h„r har ingenting att g”ra med Skrivbordsklasser, utan det „r Presentation Manager terminologi f”r att anv„nda en annan meddelandeprocedur f”r ett existerande f”nster f”r att kunna f†nga upp vissa PM meddelanden f”r det f”nstret. Dessa g”rs genom att anv„nda WinSubclassWindow API.)
XFolder modifierar ocks† olika andra menyer (som "Sortera" undermenyn)
med denna metod, om de Globala Inst„llningarna till†ter detta
och adderar andra menyalternativ, om dessa „r valda i de Globala Inst„llningarna.
wpMenuItemSelected: Denna anropas av Skrivbordet n„rhelst
ett menyalternativ „r valt av anv„ndaren.
XFolder kontrollerar om en av dess egna (variabla) menyalternativ har valts; om s† „r fallet, finner den det motsvarande objektet i Konfigurationsmappen och ”ppnar det. Om detta objekt „r av WPProgram klass utf”rs tidigare beskrivna trick. Om objektet „r en mall, oavsett Skrivbordsklass, s† ”ppnas den inte utan XFolder skapar ett nytt objekt fr†n den i nuvarande mappen (via wpCreateFromTemplate).
Om det valda alternativet „r ett fr†n "mappinneh†ll" undermenyn, s† ”ppnas helt enkelt motsvarande objekt.
Om n†got av de andra menyalternativen som XFolder adderar till menyn „r valt, s† kommer XFolder sj„lvt utf”ra respektive handling internt.
Om inget av XFolders menyalternativ var valt, anropas f”r„lderklassens
(WPFolders) wpMenuItemSelected metod (f”r att inte f”rhindra
standard menyalternativen fr†n att fungera).
F”rst anropas f”r„lder metoden f”r att f† mappen ”ppnad. Skrivbordet kommer att skapa ett f”nster med beh†llarkontroll och visa detta.
XFolder f†ngar sedan in ramf”nsterhandtaget, med vilket den kan modifiera mappens f”nsternamn och sedan „ndra det till mappens kompletta s”kv„g (om f”rvalt i Globala Inst„llningar). Detta „r helt enkelt ett WinSetWindowText anrop med enbart ett f†tal ber„kningar f”r att om n”dv„ndigt f”rkorta namnet.
I denna metod subklassar XFolder ocks† mappramf”nstret f”r att kunna hantera WM_CHAR meddelanden f”r mappsnabbkommandon och massor av andra saker. F”r underklassning f”ref”ll denna metod b„st, d† all n”dv„ndig Skrivbords initiering har gjorts genom att anropa f”r„lder metoden, men anv„ndaren kan inte interagera med mappen „nnu, d„rf”r den kommer att fyllas med objekt f”rst i en senare tr†d.
I den nya f”nsterproceduren f†ngar XFolder in alla WM_CHAR meddelanden (som bara f”rs vidare till ramf”nsterproceduren om de inte har redan blivit processerade av beh†llaren redan, s†som markeringstangenter) och utv„rderar dem enligt sin interna snabbkommandolista, som kan „ndras i Globala Inst„llningar.
Subklassning kr„vs ocks† f”r att introducera mappstatusf„lt; WM_QUERYFRAMECTLCOUNT, WM_FORMATFRAME, och WM_CALCFRAMERECT meddelanden f†ngas in f”r att „ndra storleken p† mappramen och dess nya beh†llaref”nster i enlighet med det utrymme som kr„vs f”r mappens statusf„lt.
XFolder f†ngar ocks† in underr„ttelsemeddelanden fr†n ett n†gra beh†llare f”r att tillhandah†lla "Auto-bl„ddring i Tr„d" funktionen och uppdatera statusf„lttexten om objektvalen har „ndrats av anv„ndaren.
XFolder f†ngar dessutom in olika menymeddelanden, som WM_INITMENU och WM_MENUSELECT, f”r att kunna hantera n†gra menyfunktioner som „r inte tillg„ngliga genom vanliga Skrivbordsmetoder.
Alla meddelanden som inte har n†gon inneb”rd f”r XFolder forts„tter till den ursprungliga f”nsterproceduren.
wpOpen metoden kr„vs ocks† f”r att till„mpa
XFolders ut”kade sorteringsfunktion. XFolder uppdaterar beh†llarinst„llningarna
i enlighet med de sorteringskriteria, som du har specifierat.
XFldObject g”r inte mycket synligt heller, utom att undertrycka OS/2:s standard menyalternativ och addera "Kopiera filnamn" funktionen. Den „r dock n”dv„ndig f”r att andra XFolder delar internt underr„ttas om n†gra interna Skrivbords h„ndelser, s„rskilt XSt„ng av, som beskrivs i detalj p† n„sta sida.
XFldDesktop klassen till†ter „ndring av Skrivbordets menyalternativ och XSt„ng av.
Tidigare versioner ersatte ocks† WPSystem klassen s† att "System" objektet i "Systemkonfiguration" mappen inneh”ll fler inst„llningsblocksidor f”r XFolderïs Globala Inst„llningar. Med V0.80 har detta „ndrats och nu registrerar XFolder tv† nya klasser som h„rstammar fr†n WPSystem utan att ers„tta dem. De tv† klasserna „r XFldSystem och XFldWPS f”r respektive "OS/2 K„rna" och "Skrivbord" objekten. Inst„llningarna som du specifierar h„r „r (vanligen) lagrad i OS2.INI och utv„rderad varje g†ng XFolder beh”ver dem (t.ex. n„r du ”ppnar en meny). I motsats lagras de "lokala" XFolder inst„llningarna f”r en individuell mapp i dess .CLASSINFO Ut”kade Attribut, d„r Skrivbordet ocks† lagrar andra mappinst„llningar. Det g”rs efter XFolder klass.
Notera att alla XFolder klasser „r gjorda f”r att interagera. F”rs”k inte att avl„gsna bara n†gra av dem, f”r XFolder kan d† upptr„da underligt (om du har tur). Alla XFolderïs funktioner har gjorts ganska konfigurerbara, s† du skall kunna bli av med det du inte gillar -- eller s† du kan g”ra dig av med XFolder sj„lvt.