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

Reply via email to