Re: Problem to open a new window using libglade
- From: patrick <thunar24 gmail com>
- To: gtk-app-devel-list gnome org
- Cc: "Karl H. Beckers" <karl h beckers gmx net>
- Subject: Re: Problem to open a new window using libglade
- Date: Wed, 7 Mar 2007 23:45:14 +0100
Hello,
if I use g_idle_add, then when the function from g_idle_add is
executed, it blocks the 'update_pbar' function.
So I probably must make it with threads but by now I think it's to
early for me to work with threads. It's easier if I add the
progressbar into the main window, and update it with:
while (gtk_events_pending())
gtk_main_iteration();
Later I would probably try it with threads.
Thanks for the help.
2007/3/6, Karl H. Beckers <karl h beckers gmx net>:
Am Montag, den 05.03.2007, 17:03 +0100 schrieb patrick:
> Great! Thank you very much, this works.
> But how can I make something during gtk_dialog_run?
> I'd like to do somthing like this.
>
> g_timeout_add(1000, update_pbar, dialog);
> result = gtk_dialog_run(GTK_DIALOG(dialog));
> ...my process which progressbar should show
> g_spawn...
> progress = 0.2
> ....other work
> gtk_widget_destroy(dialog);
> dialog = NULL;
>
>
> update_pbar (gpointer dialog)
> {
> ...
> gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(probar), progress);
> ...
> }
Well,
you either need another scheduled function (prolly g_idle_add) or start
a separate thread when entering your callback and join it before ending.
You prolly want to avoid multi-threading for such a rather limited
use-case.
Also, I've noted a flaw in my pseudo-code around setting dialog to NULL
which does not change the pointer that has already been passed to
update_pbar ... a static global would prolly do here or smth. similar.
HTH,
Karl.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]