I gadget della sidebar di Windows Vista

4 pagine in totale: <<Indietro 1 2 [3] 4 Avanti >>

Il tema dei gadget

Perchè i gadget abbiano un'apparenza simile, ci sono delle regole da tenere a mente. La prima è che spesso è necessario fargli avere delle trasparenze e questo può essere possibile attraverso l'uso di un apposito controllo, che si chiama g:background, le cui specifiche sono a questo indirizzo. L'accesso a questo oggetto è possible attraverso il namespace g, da codice, in questo modo:

document.body.g.background.src = "background.png";

C'è anche il supporto per g:image e g:text, perchè questi 3 oggetti hanno la caratteristica di poter essere manipolati un po' come se non fossero elementi HTML, contando su luminosità e rotazione.
In genere, inoltre, spesso viene aggiunta un'header in modo che il browser sappia che quello che sta visualizzando è un gadget:

...<head> <meta http-equiv="MSThemeCompatible" CONTENT="yes">
...
</head>...

Per quanto riguarda le trasparenze nello sfondo, sono supportate solo ai margini, attraverso una PNG dove la trasparenza sia impostata al 100%. Non sono supportate trasparenze in mezzo all'immagine di sfondo, nè con sfumature, perchè ci pensa la sidebar a farlo in automatico intorno ai bordi dell'immagine.

Gadget WinFXItalia.com ancorato alla SideBar

Il "namespace" System.Gadget

Per rendere possibile l'accesso alle informazioni di sistema, è stato aggiunto il supporto per un namespace Javascript particolare, che si chiama System.Gadget ed il cui modello ad oggetti è disponibile su MSDN.
Fornisce l'accesso alle principali funzionalità di Windows, come le variabili di ambiente, piuttosto che i contatti, il calendario, l'ora corrente, lo stato delle rete, etc.
La maggior parte di queste funzionalità sono implementate nei gadget disponibili insieme a Windows Vista ed installati di default.

Particolarmente interessante, perchè i gadget in fin dei conti sono mini applicazioni web, è l'oggetto System.Gadget.Settings, che mette a disposizione i metodi read e write, rispettivamente per leggere e scrivere informazioni associate al gadget stesso.
La modifica delle impostazione è fatta attraverso una pagina ad hoc, che è specificata nel file principale attraverso la seguente proprietà:

System.Gadget.settingsUI = "settings.html";

Tendenzialmente questa impostazione viene fatta nell'onload della prima pagina, così che poi la sidebar mostri un menu "Settings" associato al menu contestuale visibile con il pulsante destro sul gadget. Successivamente è necessario salvare esplicitamente i valori, inseriti dentro normali textbox o controlli simili, intercettando l'evento onSettingsClosing, così:

System.Gadget.onSettingsClosing = SettingsClosing;
function SettingsClosing(event)
{
    // intercetto solo il click su "OK"
    if (event.closeAction == event.Action.commit)
    {
        System.Gadget.Settings.write("username", username.Text);
        System.Gadget.Settings.write("password", password.Text);
    }

    event.cancel = false;
}

Configurazione del Gadget

Contestualmente, nella pagina principale bisogna associare un event handler per l'evento SettingsClosed, così:

System.Gadget.onSettingsClosed = SettingsClosed;
function SettingsClosed()
{
username = System.Gadget.Settings.read("username");
...
}

Il codice associato si occupa ovviamente di aggiornare la visualizzazione utilizzando le nuove impostazioni. E' utile sottolineare che lo storage è relativo a quella particolare istanza del gadget, per cui se si vuole far sopravvivere o condividere con altri gadget dello stesso tipo, è necessario utilizzare un meno esotico cookie come contenitore delle informazioni.
Generalmente, infatti, la lettura delle informazioni è demandata ad XmlHttp, da remoto, dato che non c'è possibilità di utilizzare pagine remote senza non qualche difficoltà, dovuta ai meccanismi di sicurezza della sandbox che gestisce il gadget.
Per il resto, il modello ad oggetti è abbastanza chiaro e consente di implementare qualsiasi funzionalità sia necessaria.

4 pagine in totale: <<Indietro 1 2 [3] 4 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.



TUTORIALS


IN EVIDENZA
MISC