Callbacks para botão so funciona 1 vez

1. Callbacks para botão so funciona 1 vez

Lucas Martinho
Lucas Martinho

(usa Ubuntu)

Enviado em 09/12/2010 - 20:06h

Olá gente eu fiz uma app em gtk e glade , ta tudo belezinha , so falta o botao funcionar cada vez que clico , não somente uma vez e depois nao funcionar mais....

O que ocorre é que o botao so funciona uma vez , somente.

Codigo >>

#include <gtk/gtk.h>
#include <glade/glade.h>

// Váriaveis globais ->
// Declara JanelaPrincipal como do tipo GtkWidget
GtkWidget *JanelaPrincipal;
GtkWidget *MusicPlayer;
GtkWidget *btmusica;
GtkWidget *ImageView;
GtkWidget *TextView;

//Função de chamada
static void on_button1_clicked( GtkWidget *btmusica,
gpointer data )
{
gtk_widget_show(MusicPlayer);
}


int main(int argc, char *argv[])
{
// Váriaveis locais ->
// Declara ArquivoGlade como do tipo GladeXML
GladeXML *ArquivoGlade;

// Inicia GTK -> Apartir de aqui vai o desenvolvimento da app
gtk_init(&argc,&argv);

// ArquivoGlade recebe o arquivo .glade
ArquivoGlade = glade_xml_new("GContrix.ui", NULL, NULL);

// "GtkWidget" obtem pelo ArquivoGlade o objeto "window_name"
JanelaPrincipal = glade_xml_get_widget(ArquivoGlade, "JanelaPrincipal");
MusicPlayer = glade_xml_get_widget(ArquivoGlade, "MusicPlayer");
btmusica = glade_xml_get_widget(ArquivoGlade, "button1");
ImageView = glade_xml_get_widget(ArquivoGlade, "ImageView");
TextView = glade_xml_get_widget(ArquivoGlade, "TextView");



// Definição de sinais e callbacks
gtk_signal_connect(GTK_OBJECT (btmusica), "clicked", GTK_SIGNAL_FUNC (on_button1_clicked), NULL);

//
glade_xml_signal_autoconnect(ArquivoGlade);

// Mostrar tudo
gtk_widget_show_all(JanelaPrincipal);

// Loop do GTK
gtk_main ();
return 0;
}