#!perl -w use strict; use warnings; # Show off window animation use Win32::GUI qw(CW_USEDEFAULT); use Win32::GUI::BitmapInline(); my @directions = qw(tlbr tb trbl rl brtl bt bltr lr); my $ico = arrow_icon(); my $mw = Win32::GUI::Window->new( -title => "Animation Demo", -left => CW_USEDEFAULT, -size => [180,280], ); my $aw = Win32::GUI::Window->new( -title => "Animated Window", -left => CW_USEDEFAULT, -size => [400,300], -toolwindow => 1, -onTerminate => sub { do_animation(); 0; }, ); $mw->AddTextfield( -name => 'time', -text => 200, -prompt => [ "Animation time:", 80 ], -pos => [10,10], -size => [45,20], -align => 'right', -number => 1, ); $mw->AddLabel( -text => "ms", -left => $mw->time->Left() + $mw->time->Width() + 5, -top => $mw->time_Prompt->Top(), ); $mw->AddCombobox( -name => 'animation', -dropdownlist => 1, -left => $mw->time->Left(), -top => $mw->time->Top() + $mw->time->Height() + 10, -width => 60, -height => 100, ); $mw->animation->Add('roll', 'slide', 'blend', 'center'); $mw->animation->Select(0); $mw->AddLabel( -text => "Animation Type:", -left => $mw->time_Prompt->Left(), -top => $mw->animation->Top() + 3, ); my $size = 15; my $dim = 100; my $left = 25; my $top = $mw->animation->Top() + $mw->animation->Height() + 20; $mw->AddLabel( -pos => [$left+$size+3, $top+$size+3], -size => [80,80], -icon => $ico, ); $mw->AddRadioButton( -name => $directions[0], -pos => [$left, $top], -size => [$size,$size], ); $mw->AddRadioButton( -name => $directions[1], -pos => [$left+($dim/2), $top], -size => [$size,$size], ); $mw->AddRadioButton( -name => $directions[2], -pos => [$left+$dim, $top], -size => [$size,$size], ); $mw->AddRadioButton( -name => $directions[3], -pos => [$left+$dim, $top+($dim/2)], -size => [$size,$size], ); $mw->AddRadioButton( -name => $directions[4], -pos => [$left+$dim, $top+$dim], -size => [$size,$size], ); $mw->AddRadioButton( -name => $directions[5], -pos => [$left+($dim/2), $top+$dim], -size => [$size,$size], ); $mw->AddRadioButton( -name => $directions[6], -pos => [$left, $top+$dim], -size => [$size,$size], ); $mw->AddRadioButton( -name => $directions[7], -pos => [$left, $top+($dim/2)], -size => [$size,$size], ); $mw->{$directions[7]}->Checked(1); $mw->AddButton( -text => "Show/Hide", -left => $mw->Width() - 90, -top => $mw->Height() - 60, -onClick => \&do_animation, ); $mw->Show(); Win32::GUI::Dialog(); $mw->Hide(); undef $mw; exit(0); sub do_animation { my $d; for (@directions) { $d = $_,last if $mw->{$_}->Checked(); } $aw->Animate( -show => !$aw->IsVisible(), -activate => 1, -animation => $mw->animation->Text(), -direction => $d, -time => $mw->time->Text(), ); } sub arrow_icon { newIcon Win32::GUI::BitmapInline( q( AAABAAEAUFAQAAEABACoEAAAFgAAACgAAABQAAAAoAAAAAEABAAAAAAAAAAAAEgAAABIAAAAEAAA AAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA /wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAD///AAAAAAAAAAAAH///gAAAAAAAA AAAP///wAAAAAAAAAAAf///4AAAAAAAAAAA////8AAAAAAAAAAB////+AAAAAAAAAAA////8AAAA AAAAAAAf///4AAAAAAAAAAAP///wAAAAAAAAAAAH///gAAAAAAAAAAAD///AAAAAAAAAAAAB//+A AAAAAAAAAAAA//8AAAAAAAAAAAAAf/8AAAAAAAAAAAAAf/4AAAAAAAAAAAAAP/wAAAAAAAAAAAAA H/gAAAAAAAAAAAAAD/AAAAAAAAAAAAAAB+AAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAYAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAGAAAADwAAAAAAAAAPAAAAH4AAAAAAAAAfg AAAP8AAAAAAAAA/wAAAP+AAAAAAAAB/wAAAf/AAAAAAAAD/4AAA//gAAAAAAAH/8AAB//wAAAAAA AH/+AAD//wAAAAAAAP//AAD//4AAAAAAAf//AAD//8AAAAAAA///AAD//+AAAAAAB///AAD///AA AAAAD///AAD///gAAAAAH///AAD///wAAAAAP///AAD///4AAAAAf///AAD///wAAAAAP///AAD/ //gAAAAAH///AAD///AAAAAAD///AAD//+AAAAAAB///AAD//8AAAAAAA///AAD//4AAAAAAAf// AAD//wAAAAAAAP//AAB//gAAAAAAAH/+AAA//AAAAAAAAD/8AAAf+AAAAAAAAB/4AAAP8AAAAAAA AA/wAAAH4AAAAAAAAAfgAAADwAAAAAAAAAPAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAB+AAAAAAAAAA AAAAD/AAAAAAAAAAAAAAH/gAAAAAAAAAAAAAP/wAAAAAAAAAAAAAf/4AAAAAAAAAAAAA//8AAAAA AAAAAAAB//+AAAAAAAAAAAAD///AAAAAAAAAAAAH///gAAAAAAAAAAAP///wAAAAAAAAAAAf///4 AAAAAAAAAAA////8AAAAAAAAAAB////+AAAAAAAAAAA////8AAAAAAAAAAAf///4AAAAAAAAAAAP ///wAAAAAAAAAAAH///gAAAAAAAAAAAD///AAAAAAAAAAAAB//+AAAAAAAAAAAAA//8AAAAAAAAA AAAAf/4AAAAAAAA= ) ); }