On Monday 18 April 2005 11:51, Aristidas Vilkaitis wrote: > Since i'm quite new to both C and Gtk, i met a problem which i am not > able to solve. The base of the problem is that i have a task, which > should fetch several files from the internet. When a button is pressed, > a new window with a progress bar opens and indicates the progress of the > task. Basicly, since i thought C is a linear language, i just added > several system() calls and added gtk_progress_bar_set_fraction between > them like so: > > ... > system("wget file.a"); > gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(pb1), 0.3); > system("wget file.b"); > gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(pb1), 0.6); ... > > and so on. > > The result was that the program first executed the system calls, and > only afterwards did it paint something or tampered with the progress bar. > > Why? How to go around this? What to read?
Check out g_spawn_async() in connection with GIOChannel and g_io_add_watch(). You can find an example (which uses wget, even) here: http://scentric.net/tmp/spawn-async-with-pipes-gtk.c (Don't use threads for this kind of stuff, it's completely unnecessary and will cause you more problems than it solves). Cheers -Tim _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list