#!/usr/bin/perl use Tk; $num=1; sub newnote { my $txt=shift; my $t=shift; my %win; $t=$num++ unless($t); return if($winlist{$t}); $win{main}=$main->Toplevel; $win{main}->geometry("240x320");$win{main}->title($t); $win{main}->protocol('WM_DELETE_WINDOW',[ sub{ my $t = shift; my $w=$winlist{$t}; $tlist{$t}=$w->{main_txt}->get("0.0","end"); $tlist{$t}=~ s/\n+$/\n/m; $w->{main}->destroy; delete $winlist{$t}; }, $t]); $win{main_txt}=$win{main}->Text(-background=>"#ffff00",-takefocus= +>1) ->pack; $win{main_txt}->insert("end",$txt); $winlist{$t}=\%win; } $main=MainWindow->new; $main_new=$main->Button(-text=>"New",-command=>'newnote', -padx=>0,-pady=>0)->pack; $main_old=$main->Button(-text=>"Saved",-command=>sub { foreach $t (keys %tlist) { newnote($tlist{$t},$t); } },-padx=>0,-pady=>0)->pack; $main->protocol('WM_DELETE_WINDOW',sub{ my $t; foreach $t (keys %winlist) { my $w=$winlist{$t}; $tlist{$t}=$w->{main_txt}->get("0.0","end"); } system "rm $v/*"; foreach $t (keys %tlist) { open(OUT,">$v/$t"); print OUT $tlist{$t}; } $main->destroy; }); $v=$ENV{HOME}."/.ptknotes"; mkdir $v unless(-e $v); opendir(DIR,$v); @n=readdir(DIR); closedir(DIR); foreach $i (@n) { next unless(-f "$v/$i"); local $/; open(IN,"<$v/$i"); $tlist{$num++}=<IN>; } MainLoop;
$main_new=$main->Button(-text=>"New",-command=>'newnote', -padx=>0,-pady=>0)->pack; [download]
$main_new=$main->Button(-text=>"New",-command=>sub{newnote;}, -padx=>0,-pady=>0)->pack; [download]
Also, and this is just my own aesthetic preference, changing the geometry size of the notes to 100x100 makes them look a little more sticky-noteish, but that's just me.
xjar
www.com | www.net | www.org
No recent polls found