Re: Is it possible to stop a signal callback?

2007-08-06 Thread Emmanuele Bassi
On Mon, 2007-08-06 at 10:00 +0800, Ye Wenbin wrote:
 On Mon, 06 Aug 2007 01:35:41 +0800, zentara [EMAIL PROTECTED] wrote:
 
  Have you looked at
  http://forgeftp.novell.com/gtk2-perl-study/download/
  it will answer alot of questions.
 
 I have read this document. It is really helpful.
 
  Don't use while(1) or sleep in a gui script, they cause malfunctions.
 
 I did not use sleep to do some work periodly. I was trying to show the  
 signal
 callback will take a long time to finish. Maybe it need fork or using  
 thread. But
 the problem is I don't know how to communicate with subprocess. I will try
 to find it.

you should look at the Gtk2-Perl FAQ:

  http://live.gnome.org/GTK2-Perl/FrequentlyAskedQuestions

especially the 'How do I keep my GUI updating while doing a long file
read?' question.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi,
W: http://www.emmanuelebassi.net
B: http://log.emmanuelebassi.net

___
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list


Is it possible to stop a signal callback?

2007-08-05 Thread Ye Wenbin
Hi,
In my application, there is a callback which may take a long time to  
finish.
Is it possible to return from the callback when user really need? For  
example,
code as following, can I press the button 'cancel' to stop the counting?
Is there any document about thread in Gtk2?

use Gtk2 '-init';
use Glib qw(TRUE FALSE);
my $window = Gtk2::Window-new('toplevel');
$window-signal_connect('delete_event' = sub { Gtk2-main_quit; });

my $hbox= Gtk2::HBox-new(FALSE, 0);
my $but;
$but = Gtk2::Button-new('start');
$but-signal_connect(
 'clicked' = sub {
 my $i = 0;
 while ($i  10) {
 sleep( 1 );
 $i++;
 print I'm working\n;
 }
 return FALSE;
 }
);
$hbox-pack_start($but, TRUE, TRUE, 5);
$but = Gtk2::Button-new('Cancel');
$but-signal_connect(
 'clicked' = sub {
 die Stop it\n;
 }
);
$hbox-pack_start($but, TRUE, TRUE, 5);
$window-add($hbox);
$window-show_all();
Gtk2-main;


-- 
Best regards,
Ye Wenbin
___
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list


Re: Is it possible to stop a signal callback?

2007-08-05 Thread Ye Wenbin
On Mon, 06 Aug 2007 01:35:41 +0800, zentara [EMAIL PROTECTED] wrote:

 Have you looked at
 http://forgeftp.novell.com/gtk2-perl-study/download/
 it will answer alot of questions.

I have read this document. It is really helpful.

 Don't use while(1) or sleep in a gui script, they cause malfunctions.

I did not use sleep to do some work periodly. I was trying to show the  
signal
callback will take a long time to finish. Maybe it need fork or using  
thread. But
the problem is I don't know how to communicate with subprocess. I will try
to find it.

-- 
Best regards,
Ye Wenbin
___
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list