45 lines
1.3 KiB
Perl
45 lines
1.3 KiB
Perl
|
#!/usr/local/bin/perl -w
|
||
|
use Tk;
|
||
|
use strict;
|
||
|
|
||
|
our($filename, $info);
|
||
|
|
||
|
my $mw = MainWindow->new;
|
||
|
# Create necessary widgets
|
||
|
my $f = $mw->Frame->pack(-side => 'top', -fill => 'x');
|
||
|
$f->Label(-text => "Filename:")->pack(-side => 'left', -anchor => 'w');
|
||
|
$f->Entry(-textvariable => \$filename)->
|
||
|
pack(-side => 'left', -anchor => 'w', -fill => 'x', -expand => 1);
|
||
|
$f->Button(-text => "Exit", -command => sub { exit; } )->
|
||
|
pack(-side => 'right');
|
||
|
$f->Button(-text => "Save", -command => \&save_file)->
|
||
|
pack(-side => 'right', -anchor => 'e');
|
||
|
$f->Button(-text => "Load", -command => \&load_file)->
|
||
|
pack(-side => 'right', -anchor => 'e');
|
||
|
$mw->Label(-textvariable => \$info, -relief => 'ridge')->
|
||
|
pack(-side => 'bottom', -fill => 'x');
|
||
|
my $t = $mw->Scrolled("Text")->pack(-side => 'bottom',
|
||
|
-fill => 'both', -expand => 1);
|
||
|
|
||
|
MainLoop;
|
||
|
|
||
|
sub load_file {
|
||
|
$info = "Loading file '$filename'...";
|
||
|
$t->delete("1.0", "end");
|
||
|
if (!open(FH, "$filename")) {
|
||
|
$t->insert("end", "ERROR: Could not open $filename\n");
|
||
|
return;
|
||
|
}
|
||
|
while (<FH>) {
|
||
|
$t->insert("end", $_);
|
||
|
}
|
||
|
close (FH);
|
||
|
$info = "File '$filename' loaded";
|
||
|
}
|
||
|
|
||
|
sub save_file {
|
||
|
$info = "Saving '$filename'";
|
||
|
open (FH, ">$filename");
|
||
|
print FH $t->get("1.0", "end");
|
||
|
$info = "Saved.";
|
||
|
}
|