Re: Consulta GTK+



On Wed, 2005-08-17 at 17:15 -0400, Mario Gonzalez wrote:
> gboolean button_clicked( GtkWidget *windget, gpointer *data)
> {
>         g_print ("Button clicked \n");
>         return TRUE;
> }
> 
>  [.....]
> 
>         button1         = gtk_button_new_from_stock(GTK_STOCK_OK);
>         g_signal_connect(G_OBJECT(button1), "clicked",
>                         G_CALLBACK(button_clicked), NULL);
> 
>         button2         = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
>         g_signal_connect(G_OBJECT(button2), "clicked",
>                         G_CALLBACK(button_clicked), NULL);
> 
>        Entonces, como saber si fue el button1 o el button2 el cual
> activo el "clicked"??

Pregunta por el widget *widget que pasas al callback :)
(nota : antes, ponle un nombre al widget y de ahi puedes preguntar por
el).

un peque�odigo de ejemplo


        button1         = gtk_button_new_from_stock(GTK_STOCK_OK);
        g_signal_connect(G_OBJECT(button1), "clicked",
                        G_CALLBACK(button_clicked), NULL);
	gtk_widget_set_name(button1, "boton1");

        button2         = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
        g_signal_connect(G_OBJECT(button2), "clicked",
                        G_CALLBACK(button_clicked), NULL);
	gtk_widget_set_name(button2, "boton2");

Y luego, en la funcion de callback

static void
button_clicked(GtkWidget * widget,
		gpointer data)
{
	printf("Boton : %s\n", gtk_widget_get_name(widget));
	
}

Nota : 

"clicked"   void        user_function      (GtkButton *button,
                                            gpointer user_data);

la se�"clicked" acepta una funcion de tipo void solamente. 

Saludos,
-- 
Juan Carlos Inostroza
jci codemonkey cl
"The world will end in 5 minutes. Please logoff now"
	




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