NAME
wptk - a poor man's windowing shell (wish) for Perl/Tk
SYNOPSIS
- wptk pTk-program-file [ Tk options ]
-
Run the Perl/Tk program contained in the file pTk-program-file, passing it optional Tk options.
- pTk-program-file [ Tk options ]
-
Run an executable Perl/Tk program file as above with its first line in standard "shebang" format:
#!/usr/local/bin/wptk -perlargs
DESCRIPTION
wptk obviates the need to write standard perl/Tk boiler-plate code. Every pTk program starts with:
use Tk;
...
$mw = Mainwindow->new;
...
MainLoop;
wptk provides this template code for you automatically, then sources your pTk code just before the MainLoop statement.
By default, -w is enabled. You can change this in wptk.c.template.
The default Perl/Tk template is this:
use Carp;
use Tk;
use vars qw/ $mw /;
use strict;
$mw = MainWindow->new;
if ( $ARGV[0] eq '-' ) {
my $stdin = "/tmp/wptk.$$";
open F, ">$stdin" or die "wptk.template: cannot write '$stdin': !";
while ( $_ = <STDIN> ) {
print F $_;
}
close F or die "wptk.template: cannot close $stdin: $!";
$ARGV[0] = $stdin;
}
my $stat = do $ARGV[0];
if ( not defined $stat ) {
print $@ if $@;
print $! if $!;
$mw->destroy;
exit 1;
};
MainLoop;
By default the MainWindow is $mw, which can be changed in the above template.
EXAMPLE
#!/usr/local/bin/wptk
use Tk::widgets qw/Trace TraceText/;
use strict;
my $tt = $mw->Scrolled( 'TraceText', -textvariable => \my $frog )->grid;
$tt->focus;
$mw->traceVariable( \$frog, 'wu', [ \&tracefrog, $mw, \$frog ] );
$frog = "Frogs lacking lipophores are blue.";
my $d = $mw->Button( -text => 'Destroy', -command => [ destroy => $tt ] );
my $q = $mw->Button( -text => 'Quit', -command => \&exit );
$d->grid( $q );
sub tracefrog {
my( $index, $value, $op ) = @_;
print "Final " if $op eq 'u';
print "User trace: $value";
return $value;
}
BUGS
. Doesn't search PATH for the Perl/Tk input file.
. Leaves scratch files in /tmp IFF input is standard input.
AUTHOR
sol0@Lehigh.EDU
Copyright (C) 2003 - 2003, Steve Lidie. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
KEYWORDS
wish, Perl/Tk, Tcl/Tk, windowing shell