pvbrowser manual - Flussi liberi informatici
pvbrowser manual - Flussi liberi informatici
pvbrowser manual - Flussi liberi informatici
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
26 CAPITOLO 5. PROGRAMMAZIONE<br />
La funzione slotNullEvent() viene richiamata ciclicamente nell’intervallo definito in (PARAM *) p− >millisecondi<br />
di attesa(sleep). È possibile inserire le operazioni che devono essere eseguite continuamente all’interno di questa<br />
funzione come l’aggiornamento di un valore numerico della maschera.<br />
Le altre ’slot function’ vengono richiamate quando l’utente attiva un evento nel <strong>pvbrowser</strong>. Ad esempio quando<br />
si clicca su di un pulsante.<br />
Esempio di una slot function<br />
typedef struct // (todo: define your data structure here)<br />
{<br />
rlSvgAnimator svgAnimator;<br />
}<br />
DATA;<br />
static int drawSVG1(PARAM *p, int id, DATA *d)<br />
{<br />
if(d == NULL) return -1;<br />
if(d->svgAnimator.isModified == 0) return 0;<br />
gBeginDraw(p,id);<br />
d->svgAnimator.writeSocket();<br />
gEndDraw(p);<br />
return 0;<br />
}<br />
static int slotInit(PARAM *p, DATA *d)<br />
{<br />
if(p == NULL || d == NULL) return -1;<br />
//memset(d,0,sizeof(DATA));<br />
// load HTML<br />
pvDownloadFile(p,"upperWidget.html");<br />
pvDownloadFile(p,"leftWidget.html");<br />
pvSetSource(p,upperWidget,"upperWidget.html");<br />
pvSetSource(p,leftWidget,"leftWidget.html");<br />
// load SVG<br />
d->svgAnimator.setSocket(&p->s);<br />
d->svgAnimator.setId(centerWidget);<br />
d->svgAnimator.read("test.svg");<br />
// keep aspect ratio of SVG<br />
pvSetZoomX(p, centerWidget, -1.0f);<br />
pvSetZoomY(p, centerWidget, -1.0f);<br />
// draw SVG<br />
drawSVG1(p,centerWidget,d);<br />
// download icons<br />
pvDownloadFile(p,"1center.png");<br />
pvDownloadFile(p,"1uparrow.png");<br />
pvDownloadFile(p,"1downarrow.png");<br />
pvDownloadFile(p,"1leftarrow.png");<br />
pvDownloadFile(p,"1rightarrow.png");<br />
pvDownloadFile(p,"1center2.png");<br />
pvDownloadFile(p,"1uparrow2.png");<br />
pvDownloadFile(p,"1downarrow2.png");<br />
pvDownloadFile(p,"1leftarrow2.png");<br />
pvDownloadFile(p,"1rightarrow2.png");<br />
// set sliderZoom to 100 percent<br />
pvSetValue(p,sliderZoom,100);<br />
return 0;<br />
}