Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / t / 05_timer.t
1 #!/usr/bin/perl -w
2
3 use strict;
4 use Wx;
5 use lib './t';
6 use Test::More Wx::wxMAC() ? ( 'skip_all' => 'Hangs on wxMac' ) :
7                              ( 'tests'    => 2 );
8 use Tests_Helper qw(test_app);
9
10 # test with Notify
11
12 package MyTimer;
13
14 use vars qw(@ISA); @ISA = qw(Wx::Timer);
15
16 sub Notify {
17   main::ok( 1, "Overriding Notify works" );
18 }
19
20 package main;
21
22 # test with owner
23
24 package MyHandler;
25
26 use base qw(Wx::EvtHandler);
27 use Wx::Event qw(EVT_TIMER);
28
29 sub new {
30   my $class = shift;
31   my $this = $class->SUPER::new( @_ );
32
33   EVT_TIMER( $this, -1, \&OnTimer );
34
35   return $this;
36 }
37
38 sub OnTimer {
39   main::ok( 1, "EVT_TIMER works" );
40   my $frame = Wx::wxTheApp()->GetTopWindow;
41   $frame->{T1}->Destroy;
42   $frame->{T2}->Destroy;
43   $frame->Destroy;
44   Wx::WakeUpIdle;
45 }
46
47 package MyFrame;
48
49 use base qw(Wx::Frame);
50
51 sub new {
52   my $class = shift;
53   my $this = $class->SUPER::new( @_ );
54
55   my $timer2 = Wx::Timer->new( MyHandler->new );
56   $timer2->Start( 800, 1 );
57
58   my $timer1 = MyTimer->new;
59   $timer1->Start( 100, 1 );
60
61   $this->{T1} = $timer1;
62   $this->{T2} = $timer2;
63
64   return $this;
65 }
66
67 package main;
68
69 my $app = test_app( sub {
70                       MyFrame->new( undef, -1, 'boo' )->Show( 1 );
71                     } );
72
73 $app->MainLoop;
74
75 # Local variables: #
76 # mode: cperl #
77 # End: #
78