The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
use Wx;
use lib './t';
use Tests_Helper qw(in_frame);
use if !defined(&Wx::Overlay::new) => 'Test::More' => skip_all => 'no Overlay';
use Test::More 'tests' => 1;

# test will crash if creation / destruction does not happen as
# we expect

sub run_overlay_tests {
    my $self = shift;
    # Wx::Overlay real usage test
    $self->{wx_overlay} = Wx::Overlay->new;
    run_mouse_captured_drawing($self);
    run_mouse_captured_drawing($self);
    run_mouse_release($self);
    ok(1, 'Test completed');
}

sub run_mouse_captured_drawing {
    my $self = shift;
    my $dc = Wx::ClientDC->new( $self );
    my $olay = Wx::DCOverlay->new($self->{wx_overlay}, $dc);
    $dc->DrawLine(1,1,10,10);
}


sub run_mouse_release {
    my $self = shift;
    {
        # dc scope MUST be narrower than Reset call to overlay
        my $dc = Wx::ClientDC->new( $self );
        my $olay = Wx::DCOverlay->new($self->{wx_overlay}, $dc);
        $olay->Clear;
    }
    $self->{wx_overlay}->Reset;
}

in_frame(\&run_overlay_tests);