17.06.2013 Views

pvbrowser manual - Flussi liberi informatici

pvbrowser manual - Flussi liberi informatici

pvbrowser manual - Flussi liberi informatici

SHOW MORE
SHOW LESS

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 />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!