james28909 has asked for the wisdom of the Perl Monks concerning the following question:
use File::Slurp; use Digest::MD5; use Wx; use Wx qw(:everything); use Wx::Event qw(EVT_DROP_FILES); use Wx::DND qw(FileDropTarget); ###################################################################### +######## my $app = Wx::SimpleApp->new; my $frame = Wx::Frame->new( undef, -1, 'test tool', [150,600], Wx::Size->new(700,400), wxDEFAULT_DIALOG_STYLE|wxSTAY_ON_TOP ); ###################################################################### +######### tool($frame); sub tool { my ($self) = @_; $frame->DragAcceptFiles(1); EVT_DROP_FILES( $frame, \&ondrop ); sub ondrop { my ($self, $this) = @_; $lb->Clear(); Wx::DropFilesEvent::GetFiles($this); our $dropfile = $this->GetFiles(); \&file($dropfile); } my $noteBook = Wx::Notebook->new($frame, -1, wxDefaultPosition, wx +DefaultSize); my $window1 = Wx::Panel->new($noteBook, wxID_ANY); my $window2 = Wx::Panel->new($noteBook, wxID_ANY); my $window3 = Wx::Panel->new($noteBook, wxID_ANY); $noteBook->AddPage($window1, "First", 1, 0); $noteBook->AddPage($window2, "Second", 0, 1); $noteBook->AddPage($window3, "Third", 0, 2); our $lb = $window1->{my_listbox} = Wx::ListBox->new($window1, wxID_ANY, [350 , 10] +, Wx::Size-> +new(300,330 )); sub file { my $dirname = "extracted/"; my @md5s = read_file("md5"); my $md5s = join( '', @md5s ); my $filesize = ''; open( my $buf1, '<', "extracted/sdk_version" ) or die "cannot open sdk +_version: $!"; seek( $buf1, 0x00, 0 ); read( $buf1, my $sdk, 0x03 ); foreach my $file (<$dirname/*>) { next if -d $file; open( my $FILE, $file ); binmode($FILE); $filesize = -s $FILE; $file =~ s{.*/}{}; $md5 = Digest::MD5->new->addfile($FILE)->hexdigest; if ( $md5s =~ $md5 ) { $lb->SetFont( Wx::Font->new( 7, wxDEFAULT, wxNORMAL, wxBOLD, # would like to set color somewhere in these properties 0, "Comic Sans MS" ) ); $lb->Append(" Match! | $sdk | $file | $filesize"); } else { $lb->SetFont( Wx::Font->new( 7, wxDEFAULT, wxNORMAL, wxBOLD, # would like to set color somewhere in these properties 0, "Comic Sans MS" ) ); $lb->Append(" Warning! | $sdk | $file | $filesize"); } } } } $frame->Show(1); $app->SetTopWindow($frame); $app->MainLoop;
|
|---|