1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#########################
#
# $Header: /cvsroot/gtk2-perl/gtk2-perl-xs/Gtk2/t/GtkSocket-GtkPlug.t,v 1.4 2008/03/30 19:31:33 kaffeetisch Exp $
#
#########################
# ...despite patches that have been around for a long time, no win32
use Gtk2::TestHelper tests => 4, nowin32 => 1;
SKIP: {
skip "blib can't be found", 4
unless -d "blib";
ok( my $win = Gtk2::Window->new );
ok( my $socket = Gtk2::Socket->new );
$win->add($socket);
ok( my $id = $socket->get_id );
my $str = "$^X -Mblib -e '\$id = $id;\n\n".<<EOL;
use Gtk2;
Gtk2->init;
\$plug = Gtk2::Plug->new($id);
\$plug->set_border_width(10);
\$btn = Gtk2::Button->new("gtk-quit");
\$btn->signal_connect( "clicked" => sub {
Gtk2->main_quit;
1;
} );
\$plug->add(\$btn);
\$plug->show_all;
Glib::Timeout->add( 100, sub {
\$btn->clicked;
0;
} );
Gtk2->main;'
EOL
use strict;
use warnings;
my $pid = fork;
skip 'fork failed', 1 unless defined $pid;
if( $pid < 0 )
{
die "fork failed, no use trying";
}
if( $pid == 0 )
{
exec($str);
exit 0;
}
else
{
$socket->signal_connect('plug-removed' => sub {
Gtk2->main_quit;
1;
});
$win->show_all;
Gtk2->main;
ok( waitpid($pid, 0) );
}
}
__END__
Copyright (C) 2003 by the gtk2-perl team (see the file AUTHORS for the
full list). See LICENSE for more information.
|