Glade <-> Gtk+ (las primeras dudas )

Buenas,

Sí, ya estoy dando el coñazo con gtk+ ,llevo un par de días parado con algunas dudas y no consigo dar con la solución...

Con glade, genero 2 ventanas: window1(la TOP_LEVEL ) y window3 (una ventana no modal que aparece al pulsar un boton de window1).


El código del botón es:
gint i;

GList * lista_opciones_combo=NULL;
GtkWidget *window3;


GtkWidget* window1 =lookup_widget(GTK_WIDGET(window1),"window1");

(....)
GtkWidget * combo = lookup_widget(GTK_WIDGET(window3),"combobox1");

.....

if (gtk_toggle_button_get_active(GTK_BUTTON (boton_2)) ){
/*If control reaches here, the toggle button is down */

window3 = create_window3 ();


lista_opciones_combo = g_list_append (lista_opciones_combo , "Madrid");
lista_opciones_combo = g_list_append (lista_opciones_combo , "Tarragona");
lista_opciones_combo = g_list_append (lista_opciones_combo , "wewe");
gtk_combo_set_popdown_strings (GTK_COMBO(combo), lista_opciones_combo);

g_list_free( lista_opciones_combo);
gtk_widget_show (window3);


Mi problema es que efectivamente la ventana aparece, pero el combobox no se rellena con los valores que le digo...

He probado además con:
gtk_combo_box_insert_text (GTK_COMBO_BOX(combo), 1, _( "Badajoz"));
gtk_combo_box_insert_text (GTK_COMBO_BOX(combo), 0, _("Sevilla"));


Y con
gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Bcn"));


Y nada oiga, no hay manera de que se rellene bien el combobox.
Y las funciones existen y tal, porque en la doc aparecen, y las compatibilidades están resueltas viendo como el glade genera el combobox:
combobox1 = gtk_combo_box_new_text ();
gtk_widget_show (combobox1);
gtk_fixed_put (GTK_FIXED (fixed3), combobox1, 40, 80);
gtk_widget_set_size_request (combobox1, 256, 46);
gtk_container_set_border_width (GTK_CONTAINER (combobox1), 5);
gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox1), TRUE);

Alguien se le ocurre en ke la estoy cagando?? en fín...

Otra.. como le digo a una ventana que se maximice por programa?? tengo que hacer alguna llamada a gdk_maximice??



1 Saludo! [sonrisa]
dykstra escribió:Otra.. como le digo a una ventana que se maximice por programa?? tengo que hacer alguna llamada a gdk_maximice??


En gtk2-perl basta con $ventana->maximize; siendo $ventana un Gtk2::Window.

Por lo que leí sobre equivalencias, en C sería algo como gtk_window_maximize(ventana) (pero no me hagas mucho caso :P ).

Saludos!
quelcom escribió:
En gtk2-perl basta con $ventana->maximize; siendo $ventana un Gtk2::Window.

Por lo que leí sobre equivalencias, en C sería algo como gtk_window_maximize(ventana) (pero no me hagas mucho caso :P ).

Saludos!


Te juro que eso ya lo había probado y no funcionaba X-D X-D

En fín, he vuelto a buscar en el API online de GtkWindow y sí que aparece y ahora sí funciona ein?

El otro error ya lo resolví también X-D , luego edito con la solución, la kagaba en el "conceto" de la función lookup_widget del GLade.

Edit: Bien, explico mi error de conceto. La función lookup_widget necesita como parametros un puntero a algún widget de la ventana donde queremos buscar y el nombre del widget a buscar... yo lo intentaba, pero al ver que no me salía haciendo conversiones GTK_WINDOW(window) empezé a intentarlo contra la vetana TOP_LEVEL.. y claro no salía..

Al fiinal funciona con:
GtkWindow * win2 =create_window2();
GtkWidget * combo = lookup_widget(win2,"combobox1");
....ops contra el combo_box.......



1 Saludo
Enas..
Me ha surgido otra duda [ayay] uso este hilo por dejar todas las dudas bien recogidas...

Estoy pensando en intentar dotar al programa de diferentes idiomas....
La idea sería poder elegir mediante un registro de configuración en un fichero (o menú o similar ) el nombre de todas las etiquetas del texto (por ejemplo recogiendolos de una plantilla xml?).

Vamos.. estilo como hace el amsn, que se pueda cambiar de idioma aunque sea reiniciando el programa.

No se si esto se puede hacer con glade ( decirle ke exporte los nombres actuales a un fichero y que las lea en tiempo de ejecución, y así cambiando el idioma y reseteando que funcione..).

El problema sería la compatibilidad con glade, ya que no parece que sea una buena estrategia ir cambiar a pelo el fichero interface.c que genera glade....

He estado buscando info por google, y sólo he encontrado info sobre la librería Pango, pero viene a ayudar en el caso de renderizado de fuentes extranjeras, como las kanji...

Por supuesto siempre podría hacer una función que se ejecutara siempre ke se creara una ventana, que leyera las etiquetas de un fichero y que cambiara el texto de los widgets.. pero me parece una idea de desarrollo lentísimo (buscar todos los widgets ke tengan texto e irlos cambiando.. ).

Vamos, que supongo que tiene que haber una manera más sencilla de resolver el asunto ...


Best Regards xD
Igual te digo una burrada porque la información que tengo es de leerme por encima algunas cosillas, pero... ¿para eso no está GetText?

Por cierto, que si no te importa ya te haré preguntillas a ti también... que en breve empiezo yo con GTK :).

¡Salu2!
Cobo escribió:Igual te digo una burrada porque la información que tengo es de leerme por encima algunas cosillas, pero... ¿para eso no está GetText?

Por cierto, que si no te importa ya te haré preguntillas a ti también... que en breve empiezo yo con GTK :).

¡Salu2!



Asias, sí gettext parace ser la solución.. arg pero no encuentro la ningún manual por google para usarlo con glade.. ¡me cago en los minges! :Ð

Y no sé si te echaré un cable cuando empieces con gtk, ke luego me llamas verdulera XD XD XD XD XD XD XD XD XD XD XD XD XD (creo que se entiende la coña :-P )

En fíns, a visitar otro raaaaaaaato a san google :D

saludossss
5 respuestas