Para crearla uso esto:
Código PHP:
<?php
$ventana2 = &new GtkWindow();
$ventana2->connect('destroy', 'shutdown');
$ventana2->set_title("GTK.LimpiaRepetidos 0.1");
$ventana2->set_position("GTK_WIN_POS_CENTER_ALWAYS");
$ventana2->set_policy(0, 1, 0); // Esto es igual que lo predeterminado pero despues lo cambio
$ventana2->set_border_width(10);
$frame = &new GtkFrame();
$frame->set_label("Por favor espere. Calculando...");
$ventana2->add($frame);
$frame->show();
$boxv = &new GtkvBox(0, 10);
$boxv->set_border_width(5);
$frame->add($boxv);
$boxv->show();
$adjustment = &new GtkAdjustment(0.0, 0.0, 100.0, 0.0, 0.0, 0.0);
//$adjustment = &new GtkAdjustment(0.5, 100.0, 200.0, 0.0, 0.0, 0.0);
$value = $adjustment->value;
$progreso = &new GtkProgressBar($adjustment);
$progreso->set_show_text(true);
$progreso->set_usize(gdk::screen_width()/1.2, 35);
$boxv->pack_start($progreso);
$ventana2->add($progreso);
$progreso->show();
$boton = &new GtkButton("Cancelar");
$boton->connect('clicked', 'PreguntaCancelar', $ventana2);
$boxv->pack_end($boton);
$boton->show();
$ventana2->show_all();
Calcula($entry, $progreso);
?>
La funcion Calcula es + o - asi:
Código PHP:
<?php
function Calcula($entry, $progreso) {
$lineas = file($entry); // tiene paths de muchos archivos.
$todo = count($lineas);
$suma = 1/$todo;
$value = 0;
for(xxxxx) { //for que recorre el array de file
// Se obtienen stats de los archivos
$value += $suma;
$progreso->set_percentage($value);
}
}
?>
En el ejemplo del manual (que si anda) vi que se usa gtk::timeout_add, y ademas mi pregunta es ¿para que es eso?.
Saludos!