Hola,

parece que estas pasando los flags GTK_FILL y GTK_EXPAND en el parametro
yoptions de gtk_table_attach(), prueba a no pasar ningun flag (o solo
GTK_FILL), eso debería funcionar para que las "filas" no se expandieran
cuando hay espacio disponible

        Carlos

On Wed, 2006-11-29 at 12:24 +0100, Sergio Paracuellos wrote:
> Hola,
> 
> Tengo un problema con la anchura de celdas que se ajustan en altura al
> tamaño del widget que las contiene. El caso es que tengo una ventana con
> scroll y dentro una tabla que se genera dinamicamente con tantas filas
> como elementos tengo almacenados.
> 
> El problema es que cuando tengo pocos elementos la altura de la fila de
> la tabla ocupa todo la ventana de scroll y conforma se añaden elementos
> se van ajustando en esa proporcion (1/2, 1/4 ...)
> 
> El código es el siguiente:
> 
> .........
> 
> showtask_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
> gtk_window_set_title(GTK_WINDOW(showtask_window), _("Lista de Tareas"));
> g_signal_connect(G_OBJECT(showtask_window), "delete_event",
>                       G_CALLBACK(hide_window), NULL);
> 
> gtk_widget_set_size_request (showtask_window, 750, 400);
> scrolled_window = gtk_scrolled_window_new (NULL, NULL);
> gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);
> gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
>                       GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
> 
> vbox = gtk_vbox_new(FALSE, 1);
> gtk_container_add(GTK_CONTAINER(showtask_window), vbox);
> gtk_container_set_border_width(GTK_CONTAINER(vbox), 20);
> task_label = gtk_label_new(_("Lista de tareas pendientes:"));
> gtk_misc_set_alignment ((GtkMisc *)GTK_LABEL(task_label), 0 , 0);
> gtk_box_pack_start (GTK_BOX (vbox), task_label, FALSE, FALSE, 0);
> table = gtk_table_new(nitems, 4, TRUE);
> 
> gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0);
> gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW
> (scrolled_window), table);
> 
> for (i=0; i<nitems; i++) {
> 
>     ticks[i] = gtk_check_button_new();
>     gtk_table_attach (GTK_TABLE(table), ticks[i], 0, 1, i, i+1,
>                           (GtkAttachOptions) (GTK_FILL),
>                           (GtkAttachOptions) (GTK_FILL), 0, 0);
>     getColorForTask((unsigned char *)tasks[i], &task_color);
>     draws[i] = gtk_drawing_area_new();
>     gtk_widget_modify_bg(draws[i], GTK_STATE_NORMAL, &task_color);
>     gtk_table_attach (GTK_TABLE(table), draws[i], 1, 2, i, i+1,
>                           (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
>                           (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
> 50, 0);
>     
>     gtk_table_set_row_spacing(GTK_TABLE(table), i, 5);
>     gtk_table_set_col_spacing(GTK_TABLE(table), i, 5);
>     show_labels[i] = gtk_entry_new();
>     gtk_entry_set_text(GTK_ENTRY(show_labels[i]), (const char
> *)tasks[i]);
> 
>      /* select complete tasks */
>      done = getTaskStatus((unsigned char *)
> gtk_entry_get_text(GTK_ENTRY(show_labels[i])));
>         
>      if (done != -1) && (done == 1)
>                                               
> gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ticks[i]),
> TRUE);
> 
>     gtk_entry_set_editable(GTK_ENTRY(show_labels[i]), FALSE);
>     gtk_table_attach_defaults (GTK_TABLE(table), show_labels[i], 2, 3,
> i, i+1);
>      
>     entrys[i] = gtk_entry_new();
>     getSourceForTask((unsigned char *)tasks[i], source);
>     if (strlen((char *)source) != 0) {
>         gtk_entry_set_text(GTK_ENTRY(entrys[i]), (const gchar *)source);
>         gtk_entry_set_editable(GTK_ENTRY(entrys[i]), FALSE);
>         gtk_table_attach_defaults (GTK_TABLE(table), entrys[i], 3, 4, i,
> i+1);
>     }
> }
> 
>  
> delb = gtk_button_new_with_label(_("Eliminar tareas seleccionadas"));
> gtk_box_pack_start(GTK_BOX(vbox), delb, FALSE, TRUE, 0);
> 
> ....
> 
> Cualquier sugerencia es bienvenida.
> 
> Muchas gracias!
> 
> Un saludo,
>       Sergio Paracuellos
> 
> _______________________________________________
> Gnome-desarrollo mailing list
> Gnome-desarrollo@es.gnome.org
> https://listas.es.gnome.org/mailman/listinfo/gnome-desarrollo
_______________________________________________
Gnome-desarrollo mailing list
Gnome-desarrollo@es.gnome.org
https://listas.es.gnome.org/mailman/listinfo/gnome-desarrollo

Responder a