On 15 May 2002 at 18:26, Pier Luigi Fiorini wrote:
> > Cioè? non passano esattamente delay*1000 millisecondi o succede tutto
> > in un millisecondo?
> Passa un secondo o un millisecondo (non ho il cronometro :), ad ogni
> modo non passa il tempo che l'utente specifica.
Adesso è OK vero?
> > Passeresti tutto il codice della funzione di call back?
> Non c'e' piu' bisogno, un altro gnomaro mi ha aiutato.
> In pratica il codice ora e' questo (lo scrivo perche' in futuro possa
> aiutare altre persone):
Per esempio me, che è la prima volta che caccio naso in gtk+ :))
> gtk_widget_show_now (toplevel); // hack che mi ha suggerito l'altro
> gnomaro
Che dici imparo gtk anche io?
Solo che sono nauseato dalle API per le GUI... l'esperienza con le MFC
e le OWL è stata traumatica.
> return FALSE; // come suggerisci tu esco in questo modo e ho tolto il
> codice di gtk_timeout_remove, anche se ho notato che il funzionamento
> *sembrava* uguale }
E' meglio. Il return è li apposta per togliere dalla coda degli event
il timeout.
Usando gtk_timeout_remove (timeout) rischi di seccare dalla coda più
eventi di quelli che ci hai messo... mi sa di stack underrun... e come
lo snipplet di spiegazione che ti ho passato rischi che si chiodi.
> void
> on_delay_response (GtkWidget *dialog, gint response_id, gpointer data) {
> switch (response_id) {
> case GTK_RESPONSE_YES:
> gtk_widget_destroy (dialog); // distruggo la dialog delle impostazioni
> timeout = gtk_timeout_add ((delay * 1000), (GtkFunction)
> delay_callback, NULL);
> break;
> }
> }
a naso ci metterei un
case else
gtk_widget_destroy (dialog);
Oppure per essere pignoli ci piazzi il codice dell event dell'
"Annulla"...
Do you want to install XYZ?
Yes, No, Maybe
--
Salve
Ivan Sergio Borgonovo
http://www.webthatworks.it/
uniq life || sleep 24h
|