#!/usr/bin/perl use warnings; use strict; use Tk; package MyButton { sub new { my $classname = shift; my $self = {nr => shift}; return bless($self, $classname); } sub createButton { my $self = shift; my $main = shift; my $frame = shift; $self->{button} = $frame->Button(-text => $self->{nr}, -command => sub { $main->btnClick($self->{nr}) }); $self->{button}->pack(-side => "left", -pady => 5); } } package MyWindow { sub new { my $classname = shift; my $self = {}; return bless($self, $classname); } sub createWindow { my $self = shift; $self->{mw} = MainWindow->new(-title => "pdfRename"); $self->{mw}->optionAdd("*font", "Arial 15 normal"); $self->{mw}->geometry("+400+256"); $self->{mw}->bind("" => sub { $self->{mw}->destroy()}); my ($i, $u, $mb, $frame); my $nr = 1; for $i (0 .. 3) { $frame = $self->{mw}->Frame(); for $u (0 .. 7) { if ($i == 3 && $u == 7) { next; } $mb = MyButton->new($nr); $mb->createButton($self, $frame); $nr++; } $frame->pack(); } $self->{mw}->MainLoop(); } sub btnClick { my $self = shift; my $nr = shift; my $a = $self->getPdfFilename(); print "$a\t\t$nr\n"; } sub getPdfFilename { my $self = shift; my $a = `ps x | grep pdf`; my @b = split(/\n/, $a); my $i; my @c; for $i (@b) { if ($i =~ /grep/) { next; } push(@c, $i); } if ($#c < 0) { print "\nWarning: No pdf-process found.\n"; return "None"; } $a = $c[0]; chomp($a); @b = split(/ /, $a); for $i (@b) { if ($i =~ /\.pdf/) { return $i; } } print "\nWarning: No pdf-filename found.\n"; return "None"; } } my $app = MyWindow->new(); $app->createWindow();