#!/usr/bin/perl -- 

use strict;
use warnings;
use Compress::Zlib;
use Wx 0.26;

die "For Windows Only\n" unless Wx::wxMSW();


$MyApp::TITLE = 'My Lame Application';

$MyApp::VERSION = '0.00';

$MyApp::LOGO = Wx::Bitmap->new(
    Wx::Image->new( 150, 100,
        uncompress( unpack('u',
<<'__END_OF_IMAGE_DATA__'
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
$I+<[A0``
__END_OF_IMAGE_DATA__
        ))
    ),
);


##############################################################################

package MyAboutBox;

use strict;
use warnings;

use base qw( Wx::Dialog );
use Wx qw( :everything );
use Wx::Event qw( EVT_BUTTON EVT_CLOSE );


sub new {
    my ($class, $parent, $id, $title, $pos, $size, $style, $name) = @_;

    $parent = undef                   unless defined $parent;
    $id     = -1                      unless defined $id;
    $title  = "About $MyApp::TITLE"   unless defined $title;
    $pos    = wxDefaultPosition       unless defined $pos;
    $size   = [350, 160]              unless defined $size;
    $style  = wxDEFAULT_DIALOG_STYLE  unless defined $style;
    $name   = ''                      unless defined $name;

    my $self = $class->SUPER::new(
        $parent, $id, $title, $pos, $size, $style, $name,
    );

    Wx::StaticBitmap->new( $self, -1, $MyApp::LOGO, [10, 10] )
        if $MyApp::LOGO->Ok();

    my $label = Wx::StaticText->new( $self, -1,
        "$MyApp::TITLE v$MyApp::VERSION\n"
        . "\n"
        . "(C) 2007 My Lame Company\n"
        . "All Rights Reserved.",
        [170, 10], [165, 55], wxALIGN_CENTER
    );

    $self->{button_1} = Wx::Button->new( $self, -1, '&OK', [260, 100] );

    EVT_CLOSE( $self, \&OnClose );
    EVT_BUTTON( $self, $self->{button_1}, \&OnClose );

    return $self;
}


sub OnClose {
   my ($self, $event) = @_;

    $self->EndModal( 1 );
    $self->Destroy();
}


1;

# End of class AboutBox

##############################################################################

package MyApp;

use strict;
use warnings;
use base qw( Wx::App );

sub OnInit {
    my ($self) = @_;

    Wx::InitAllImageHandlers();

    my $dialog = MyAboutBox->new( undef, -1, );
    $self->SetTopWindow( $dialog );
    $dialog->CentreOnScreen();
    $dialog->Show( 1 );

    return 1;
}

1;

# End of class MyApp

##############################################################################

package main;

MyApp->new()->MainLoop();

exit;

# End of package main

##############################################################################


__END__



