#!/usr/local/bin/perl -w eval 'exec /usr/local/bin/perl -w -S $0 ${1+"$@"}' if 0; # not running under some shell =head1 NAME tkweb - rough and ready web browser =head1 SYNOPSIS tkweb =head1 DESCRIPTION Uses a derivative of Tk::Text and libwww package to produce a web browser. =head1 BUGS Lots... =cut use Tk; require Tk::Web; # require Tk::ErrorDialog; require Tk::LabEntry; require URI::URL; require Tk::Menubar; my $pwd = `pwd`; chomp($pwd); my $urltxt; my $showlink; my $mw = MainWindow->new(); my $mb = $mw->Menubar->pack(-fill => 'x'); my $fm = $mb->Menubutton(-text => 'File', -underline => 0)->pack(-side => 'left');; my $em = $mb->Menubutton(-text => 'Edit', -underline => 0)->pack(-side => 'left');; my $vm = $mb->Menubutton(-text => 'View', -underline => 0)->pack(-side => 'left');; my $hm = $mb->Menubutton(-text => 'Help', -underline => 0)->pack(-side => 'right');; my $but = $mw->Frame->pack(-fill => 'x'); my $w = Tk::Web->new($mw,-showlink => sub { $showlink = shift }, -urlcommand => sub { $urltxt = shift} ); my $e = $mw->LabEntry(-label => 'Location:',-labelPack => [-side => 'left',-anchor => 'e'],-textvariable => \$urltxt )->pack(-fill => 'x'); $e->bind('',[$w,'url',Tk::Ev(['get'])]); $w->{'-header'} = {'Accept' => join(',','text/html', 'text/plain', 'image/gif', 'image/x-xbitmap', 'image/x-pixmap', '*/*'), 'User-Agent' => 'tkweb/.xx'}; $w->pack(-expand => 1, -fill => 'both'); $fm->command(-label => 'Open...',-underline => 0, -command => [$w,'Open']); $fm->command(-label => 'Save as...',-underline => 0, -command => [$w,'SaveAs']); $fm->command(-label => 'Exit',-underline => 1, -command => [$mw,'destroy']); $vm->command(-label => 'Reload',-underline => 0, -command => [$w,'Reload']); $vm->command(-label => 'Source...',-underline => 0, -command => [$w,'ShowSource']); $vm->command(-label => 'HTML...',-underline => 0, -command => [$w,'ShowHTML']); $but->Button(-text => 'Back', -command => [$w,'Back'])->pack(-side => 'left'); $but->Button(-text => 'Forward', -command => [$w,'Forward'])->pack(-side => 'left'); $but->Button(-text => 'Home', -command => [$w,'Home'])->pack(-side => 'left'); $but->Button(-text => 'Reload', -command => [$w,'Reload'])->pack(-side => 'left'); $but->Button(-text => 'Images', -command => [$w,'Images'], -state => 'disabled')->pack(-side => 'left'); $but->Button(-text => 'Open', -command => [$w,'Open'])->pack(-side => 'left'); $but->Button(-text => 'Print', -command => [$w,'Print'])->pack(-side => 'left'); $but->Button(-text => 'Find', -command => [$w,'Find'])->pack(-side => 'left'); $but->Button(-text => 'Stop', -command => [$w,'Stop'])->pack(-side => 'left'); $mw->AddScrollbars($w); my $show = $mw->Frame(-label => 'URL : ',-labelPack => [-side => 'left'])->pack(-fill => 'x'); $show->Label(-textvariable => \$showlink, -anchor => 'w')->pack(-fill => 'y',-anchor => 'w', -expand => 1, -side => 'left'); $show->Frame(-height => '3m', -width => '60m', -borderwidth => 3, -background => 'cyan', -relief => 'sunken') ->pack(-side => 'right', -padx => '3m'); my %args = (-scrollbars => 'w'); $mw->ConfigDefault(\%args); $mw->configure(%args); $w->url($ARGV[0]) if (@ARGV); $w->focus; MainLoop;