#!/usr/bin/env python

import gtk
import threading

def do_heavy_stuff():
    for i in range(1, 100):
        print `i+1` + '%'
        k = 0
        for j in range (1, 100000):
            k += 1

def timerfunc(crap):
    if not thread.isAlive():
        window.remove(pbar)
        window.add(label)
        window.show_all()
    pbar.pulse()
    return thread.isAlive()

def destroy_handler(window):
    gtk.main_quit()

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
pbar = gtk.ProgressBar()
label = gtk.Label('Ready.')

window.connect('destroy', destroy_handler)
window.add(pbar)
window.set_default_size(200, 20)
window.show_all()

timer = gtk.timeout_add(100, timerfunc, pbar)
thread = threading.Thread(target=do_heavy_stuff)
thread.start()

gtk.main()
