#!/usr/local/bin/perl use Tk; use Tk ':variables'; use strict; use warnings; # Main Window my $mw = new MainWindow; #GUI Building Area my $frm_name = $mw -> Frame(); #Text Area my $textarea = $mw -> Frame(); my $txt = $textarea -> Text(-width=>40, -height=>10); my $srl_y = $textarea -> Scrollbar(-orient=>'v',-command=>[yview => $txt]); my $srl_x = $textarea -> Scrollbar(-orient=>'h',-command=>[xview => $txt]); $txt -> configure(-yscrollcommand=>['set', $srl_y], -xscrollcommand=>['set',$srl_x]); my $log = $textarea -> Text(-width=>40, -height=>2); #Geometry Management $frm_name -> grid(-row=>1,-column=>1,-columnspan=>2); $txt -> grid(-row=>1,-column=>1); $log -> grid(-row=>6,-column=>1); $srl_y -> grid(-row=>1,-column=>2,-sticky=>"ns"); $srl_x -> grid(-row=>2,-column=>1,-sticky=>"ew"); $textarea -> grid(-row=>5,-column=>1,-columnspan=>2); $txt->bind('', [\&OnKeyPress, $txt]); my @dictionary = qw/rewelation reduction renowation reckonesance revaluation reply/; $txt->focus; MainLoop; sub OnKeyPress { my $txtBox = $_[0]; # print 'Keysym=', $Tk::event->K, ', numeric=', $Tk::event->N, "\n"; my @r = $txtBox->tagRanges('sel'); if(@r) { my $str = $txtBox->get(); my $sel = substr $str, $r[0], $r[1]-$r[0]; print 'selected: ', $sel; } } =the rest sub OnKeyPressed { if(key is ) { accept_auto_complete_version() } elsif(matches_first_char_in_autocompletion_version()) { unselect this char; } else { unselect this char; find_other_autocompletion; } } =cut