erlug
[Top] [All Lists]

Re: [Erlug] [Gtk] gtk_timeout_add

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] [Gtk] gtk_timeout_add
From: "Ivan Sergio Borgonovo" <mail@xxxxxxxxxxxxxxx>
Date: Wed, 15 May 2002 19:57:12 +0200
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



<Prev in Thread] Current Thread [Next in Thread>