&xcenter;
di WPS.
Pu• esserci solo una vista aperta per ogni &xcenter;, cosŤ che
un'istanza di &xcenter; Š identica a una vista di &xcenter;
quando questo Š aperto, ma possono esserci parecchie istanze di &xcenter;
nel sistema (una per ogni bordo dello schermo).
Anche se lo &xcenter; stesso Š ovviamente un oggetto della Scrivania, esso isola completamente gli elementi dal materiale della WPS internamente. Questo Š il motivo per cui non Š necessaria una conoscenza della programmazione SOM/WPS per scrivere una nuova classe elemento, ma Š comunque possibile fare programmazione WPS se lo si desidera.
Per spiegarsi meglio: un elemento Š una finestra di PM interna allo &xcenter;.
XCENTERWIDGETCLASS
).
Questa struttura contiene il nome di una classe di finestre PM usata dallo &xcenter;
per creare le finestre PM degli elementi. In dipendenza dagli attributi della classe dell'elemento,
possono esserci una o pi— istanze di una classe elemento.
Volendo un elemento differente nello &xcenter;
Š necessario scrivere una classe elemento.
Scrivere una classe elemento significa fondamentalmente scrivere una classe di finestre PM (si veda oltre), con alcune regole addizionali da seguire. Per semplificare le cose, molte classi elemento possono condividere la stessa classe PM.
Alcune classi elemento sono interne allo stesso &xcenter; (risiedono in
XFLDR.DLL
), ma lo &xcenter; pu• ovviamente caricare DLL plug-in.
Parecchie delle classi elemento fornite con &xwp; sono state create come plug-in per
mostrare come sono fatte. Avendo a diposizione il
codice sorgente di &xwp;e,
basta cercare la directory src\widgets
.
Fondamentalmente, PM organizza le finestre in classi. Per esempio, se si crea
un bottone PM si invoca WinCreateWindow
con il nome della classe di
finestre dei bottoni (WC_BUTTON
), che Š una classe predefinita su
ogni sistema &os2;.
Ô possibile per• creare nuove classi di finestre. Lo &xcenter; usa appunto questa funzione, per implementare classi elemento. Ancora, una classe elemento Š una classe di finestre di PM con alcuni dati extra, per fornire allo &xcenter; informazioni a riguardo degli elementi di quella classe che possono essere creati.
Il vantaggio di usare classi separate Š che un elemento Š essenzialmente libero di fare qualunque cosa voglia. Pu• stampare la scritta "Ciao mondo", ma pu• anche scegliere di lanciare una dozzina di sottoprocessi con la riproduzione di video.
Lo svantaggio Š che scrivere una classe di finestre di PM da zero Š un po' pi— complesso che usare controlli standard. Ma proprio per questo c'Š abbondanza di esempi da studiare.
Quando viene creato un elemento (perch‚ viene aggiunto a uno &xcenter; aperto
o quando uno &xcenter; viene aperto per primo e quindi bisogna creare tutti gli elementi),
esso chiama WinCreateWindow
con il nome della classe di finestre di PM
specificato nella classe elemento. Per cui, non c'Š niente di spettacolare.
plugins\xcenter
della directory di installazione di &xwp;.
Questa DLL deve contenere una o pi— classi elemento. Ci sono tre procedure
che una DLL plug-in deve esportare, perch‚ lo &xcenter; possa vedere le classi elemento. Nelle prossime
pagine saranno date spiegazioni dettagliate.