Re: gtk_timeout_add problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le mercredi 14 décembre 2005 à 15:39 +0100, N@poleone a écrit :
> Hi,
> I can't compile using gtk_timeout_add (or g_timeout_add, the problem
> is the same...). I'm using C++...
> The error is:
> 
> In member function `virtual void dialogAcquisizione::on_okbutton2_clicked()':
> error: argument of type `gint (dialogAcquisizione::)(void*)' does not
> match `gboolean (*)(void*)'
> 
> The code is (all in the same class):
> 
> #include <gtk/gtk.h>
> 
> gint dialogAcquisizione::acquisisci(gpointer data)
> {
> 	std::cout << "Sto acquisendo...\n";
> 	return (TRUE);
> }
> 
> void dialogAcquisizione::on_okbutton2_clicked()
> {
> 	std::cout << "Intercettato l'evento di ok\n"
> 			<< "Inzializzo il timer\n";
> 	guint timer_id;
> 	timer_id = gtk_timeout_add(5000,(GtkFunction)dialogAcquisizione::acquisisci,NULL);
> 	//this.hide();
> }
> 
> Why???

You cannot use a C++ class method directly in gtk_timeout_add. One way
to do that is:

void cb_timeout (dialogAcquisizione *dialog)
{
	dialog->acquisici(NULL); // do you really need an argument?
}

...

	timer_id = gtk_timeout_add(5000,G_CALLBACK (cb_timeout), this);


_______________________________________________

gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list

[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux