SKYN.XML : Come funziona

mmark

Vu+ User+++
Ho ricevuto alcuni messaggi PVT riguardo a spiegazioni sulle interfacce dei decoder, o se preferite sulle skin, non e' un argomento da trattare con messaggi privati, quindi vi apro questa sezione, se siete incuriositi riguardo la composizione dei files che compongono la skin, sopratutto relativamente al cuore della skin stessa, il file SKIN.XML, postate qui le vostre domande. Nel limite del possibile e delle conoscenze, cercheremo di rispondere ai vostri quesiti.

saluti
 

thx333

Vu+ User
Un PVT era mio,quindi ti ringrazio per avere aperto il post

Voglio iniziare a capire questi comandi che penso siano i principali:

</widget>
<convert
<eLabel
</screen>
<ePixmap

e questi valori

position
zposition
source
valign


Inoltre posto una riga di codice completa

</widget>
<widget source="session.Event_Next" render="Label" position="210,594" size="90,30" zPosition="2" halign="left" font="Regular;24" foregroundColor="grey" backgroundColor="darkgrey" transparent="1" >
<convert type="EventTime">StartTime</convert>
<convert type="ClockToText">Default</convert>

Grazie a coloro che continuino il post:)
 

mmark

Vu+ User+++
Premetto che non sono un esperto di XML, detto cio

Il primo consiglio che posso darti e', poni le domande una per volta, postare 100 domande insieme costringe chi ti risponde a sintetizzare e spesso la risposta non e' soddisfacente.

Da quello che chiedi, sembra che tu non conosca bene la struttura di un file XML, quindi il secondo consiglio e' quello di studiare lo schema e la composizione dei files XML
facendolo, la prima cosa che scoprirai e' che tutto cio che termina con una barra "/" seguita da un tag ne indica la chiusura
cosi ad esempio <widget> ..... avra come termine il tag </widget>, cosi vale per convert... /convert ecc..

Riguardo i tag che hai segnalato fermo restando l'attinenza al codice per skin

Il Tag Widget segnala il richiamo di un oggetto reso disponibile dal codice in quella sezione (o anche in altre, questo dipende da altri fattori che dipendono dalla visibilita che il programmatore da a quell'oggetto)
Il Tag eLabel richiama un'etichetta, o se preferisci un testo
Il Tag ePixmap richiama un'immagine
Il Tag Screen.../Screen Richiamano una sezione a video, all'interno di questi tag, il codice compone tutto cio che ti verra mostrato nella schermata relativa

Relativamente alle parole chiave

Position lo dice la parola stessa, e' la posizione di partenza dell'oggetto espressa in assi X-Y (orizzontale/verticale)
zPosizion determina l'ordine di apparizione dell'oggetto, cosi zPosition=1 verra mostrato in primo piano rispetto ad un oggetto che ha come ordine di apparizione zPosition=0
Source e' in genere legato al richiamo di un widget e ne identifica la classe
valign ovviamente e' riferito all'allineamento, in questo caso verticale

ciao
 

thx333

Vu+ User
Hai ragione,prima e' meglio conoscere la struttura e sto leggendo qualcosa qui:
http://it.wikipedia.org/wiki/XML

Non ho capito bene il valore position espresso in X-Y,dato che solitamente e' associato un solo numero
Inoltre puoi farmi un esempio di zposition?
 

mmark

Vu+ User+++
Position ha 2 numeri associati (non uno) Position ="100,120" dice che l'oggetto verra posizionato a partire dall'incrocio dei pixel n.100 orizzontale e 120 verticale, segue il size che invece indica le dimensioni che avra l'oggetto
zPosition ho gia fatto l'esempio leggi bene, prendi 2 immagini ad una assegni zPosition=1, all'altra zPosition=2, quella n.2 verra posizionata letteralmente 'sopra' quella n.1 cioe in primo piano.

ciao
 

thx333

Vu+ User
Ora inizio a capire meglio,pensavo che 100,120 fosse un numero con la virgola...invece sono 2 distinti
Per lo zposition faccio l'esempio dell'infobar che avra' posizione "0" mentre il service name avra' posizione "1" in quanto lo ricopre,dico giusto?
 

thx333

Vu+ User
Esempio di questa riga

<widget source="session.CurrentService" render="Label" position="240,586" size="800,32" zPosition="2" font="Regular;26" halign="center" noWrap="1" backgroundColor="transpBlack" foregroundColor="white" transparent="1" >
<convert type="ServiceName">Name</convert>
</widget>

Vorrei capire i valori rossi
Session.currentService viene richiamato e convertito in ServiceName?

Sto facendo delle prove,per vedere i cambiamenti l'unico modo e' riavviare enigma?
 

mmark

Vu+ User+++
Cerco di buttarla come ipotesi su come abbia agito il coder, non ti assicuro che la spiegazione sia calzante ma e' quella che posso immaginare
Nel caso che usi come esempio, session.currentservices sarebbe una classe che puo esporre metodi e proprieta, Servicename in questo caso e' un metodo di session.currentservice ed ha alcune proprieta, una di queste e' name, potrebbero essercene altre come servicename ecc.. quindi...

Nell'XML definisci la classe (session.currentservice), la 'trasformi' in una stringa (label) richiami uno dei suoi metodi (ServiceName) e fai riferimento ad una sua proprieta (Name)

non giurerei sulla gerarchia, ma potrei scommetterci una piccola somma :)

Questo aspetto del file XML non ha nulla a che fare con l'xml in se, e' un 'richiamo' ad una parte di codice che il coder ha creato per dar modo a chi sviluppa l'interfaccia di poter utilizzare determinati oggetti all'interno della skin,
In sostanza, il coder, che passa tutte le informazioni che riguardano questi spezzoni di codice, tu puoi solo gestirne il contenuto.

ciao
 

thx333

Vu+ User
Ok,sto gia' modificando una skin di Army,se mi becca :chair:

Come chiesto in precedenza per una preview del lavoro occorre sempre riavviare enigma2?
Al decoder stanno venendo le vertigini a forza di riavviare :D
 

mmark

Vu+ User+++
L'importante e' che qualsiasi modifica venga fatta unicamente sulla skin che sta sul tuo decoder, non postare mai skin appartenenti a componenti di questo team modificate da te o da terze persone, ne su questo forum ne su altri, inutile che ti dica quali sarebbero le conseguenze, puoi facilmente immaginarlo :lamo:

Per l'ultima domanda, la risposta e' si, qualsiasi modifica apporti al file XML necessita del riavvio per essere letta.
 

supertommy

Vu+ Newbie
stò cercando di fare la stessa cosa ossia adattare un immagine per VTI su blackhole.... ma l'impresa è alquanto ardua per ora sono in alto mare... ma perchè c'è tutta sta problematica con le skin??? In fondo non si ammazza mica nessuno, si tratta di poter usare la GUI piu adatta alle proprie esigenze... come immagine blackhole non si batte ma le gui su VTI sono molte di piu e ci sono anche le mie preferite quelle di KERNI... UFF
 
Top