Holas...
Estoy teniendo un problema; bueno si se le puede llamar asi que al utilizar el mismo codigo PERO al compilarlo de forma diferente el comportamiento no es IGUAL.
:mrgreen: :mrgreen: :mrgreen:
---
Formas de compilacion :
- gcc -fPIC -Wall -g `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0` `pkg-config --libs gthread-2.0` interface.c
- gcc -fPIC -Wall -g `gnome-config --cflags --libs gnome` `gnome-config --cflags --libs gnomeui` interface.c
---
Codigo fuente : [creado por el GLADE y adaptado por mi ]
---
#include <gnome.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <glib.h>
#include <dlfcn.h>
#include <stdlib.h>
#include <stdio.h>
void
on_combo_entry1_changed (GtkEditable *editable,
gpointer user_data)
{
printf ("non_combo_entry1_changednn");
}
GtkWidget*
create_window1 (void)
{
GtkWidget *window1;
GtkWidget *fixed1;
GtkWidget *Combo1;
GList *Combo1_items = NULL;
GtkWidget *combo_entry1;
window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_object_set_data (GTK_OBJECT (window1), "window1", window1);
gtk_window_set_title (GTK_WINDOW (window1), "window1");
fixed1 = gtk_fixed_new ();
gtk_widget_ref (fixed1);
gtk_object_set_data_full (GTK_OBJECT (window1), "fixed1", fixed1,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (fixed1);
gtk_container_add (GTK_CONTAINER (window1), fixed1);
Combo1 = gtk_combo_new ();
gtk_widget_ref (Combo1);
gtk_object_set_data_full (GTK_OBJECT (window1), "Combo1", Combo1,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (Combo1);
gtk_fixed_put (GTK_FIXED (fixed1), Combo1, 56, 184);
gtk_widget_set_uposition (Combo1, 56, 184);
gtk_widget_set_usize (Combo1, 175, 22);
Combo1_items = g_list_append (Combo1_items, (gpointer) "item1");
Combo1_items = g_list_append (Combo1_items, (gpointer) "item2");
Combo1_items = g_list_append (Combo1_items, (gpointer) "item3");
gtk_combo_set_popdown_strings (GTK_COMBO (Combo1), Combo1_items);
g_list_free (Combo1_items);
combo_entry1 = GTK_COMBO (Combo1)->entry;
gtk_widget_ref (combo_entry1);
gtk_object_set_data_full (GTK_OBJECT (window1), "combo_entry1", combo_entry1,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (combo_entry1);
gtk_entry_set_text (GTK_ENTRY (combo_entry1), "item1");
gtk_signal_connect (GTK_OBJECT (combo_entry1), "changed",
GTK_SIGNAL_FUNC (on_combo_entry1_changed),
NULL);
return window1;
}
int
main (int argc, char *argv[])
{
GtkWidget *window1;
// gtk_init (&argc, &argv);
gnome_init ("proyecto1", "0.0", argc, argv);
window1 = create_window1 ();
gtk_widget_show (window1);
gtk_main ();
return 0;
}
---
Bueno.
--
Con la 1º orden de compilacion entra dos veces en la funcion cuando captura [ocurre] el evento "changed"
es decir que en pantalla veo 2 lineas :
on_combo_entry1_changed
on_combo_entry1_changed
--
--
Con la 2 obtengo el resultado esperado.
on_combo_entry1_changed
--
la segunda orden [viendo el _Makefile_ del galde] esta utilizando las librerias de gnome-1 y gtk+-1...
Alguna luz, idea....??