lunedì 30 giugno 2014

Incorporare i font

Quando si scrive un programma può essere necessario specificare i font che debbono essere utilizzati. Ci possono essere necessità grafiche, di spazi o di caratteri speciali da dover utilizzare.
Per fortuna Livecode permette di scegliere i font in maniera molto semplice con un'interfaccia grafica intuitiva:

Quando inserite un elemento con del testo, potete modificare le sue proprietà con il Property Inspector. Selezionate la voce Text Formatting dal menu a tendina e avrete la seguente finestra a disposizione:

Se lasciate in bianco la voce Font saranno usati i font del sistema, altrimenti verranno caricati quelli che selezionerete.
Alla voce Size potete scegliere la dimensione che preferite, se non c'è tra quelle del menu a tendina, potete digitarla a mano.
I pulsanti della voce Style vi permetto di impostare lo stile di tutto il paragrafo tra:
  • normale
  • grassetto (bold)
  • corsivo (italic)
  • sottolineato (underlined)
  • con una cornice attorno
  • con una cornice ad effetto 3D
  • colorato e sottolineato come un link
  • sbarrato
I pulsanti alla voce Align permettono di scegliere se allineato a sinistra, centro o destra.
La voce Margins si riferisce al rettangolo dell'oggetto con i quadratini per allargarlo o restringerlo che appare in modalità Edit; non ha a che fare con il box che appare attorno al testo.
Esistono molte altri proprietà che potete impostare solo attraverso il codice, ma la più importante per me è htmltext. Questa proprietà vi permette di inserire in un singolo testo più stili contemporaneamente, come se allo stesso modo di una pagina HTML, e vale per qualsiasi oggetto, anche i campi editabili dall'utente.
Per esempio se mettete in una finestra del testo ("label1") e un pulsante con il seguente codice:

on mouseUp
   put "<h1>Titolo 1</h1>" after temp
   put "<h2>Titolo 2</h2>" after temp   
   put "Questo e' un esempio di testo con piu' stili contemporaneamente. Ecco un elenco puntato:" after temp
   put "<ul>" after temp
   put "<li>primo elemento</li>" after temp
   put "<li>secondo elemento</li>" after temp
   put "</ul>" after temp
   put "Ecco un link: <a >www.livecode.com</a>" after temp
   set the htmltext of field "label1" to temp
end mouseUp


Premendo il pulsante otterrete questo:

Come vedete è attivo anche il link, ma solo dalla proprietà htmlText non è possibile impostare l'azione che succede cliccandoci sopra. Per fortuna il codice da aggiungere al campo di testo per ottenere dei link funzionanti cliccandoci sopra è piccolissimo, eccolo:

on linkClicked pLink
   launch url pLink
end linkClicked


Come vedete il messaggio linkClicked prende in automatico come argomento il testo del link, quindi nello stesso testo è possibile mettere molti link e per ognuno di essi cliccandoci sopra si andrà sulla rispettiva pagina.