home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Editores / Perl5 / perl / lib / site / auto / Tk / Text / bindRdOnly.al < prev    next >
Encoding:
Text File  |  1997-08-10  |  5.6 KB  |  139 lines

  1. # NOTE: Derived from ..\blib\lib\Tk\Text.pm.  Changes made here will be lost.
  2. package Tk::Text;
  3.  
  4. sub bindRdOnly
  5. {
  6.  require Tk::Clipboard;
  7.  
  8.  my ($class,$mw) = @_;
  9.  
  10.  # Standard Motif bindings:
  11.  $mw->bind($class,"<1>",['Button1',Ev('x'),Ev('y')]);
  12.  $mw->bind($class,"<Meta-B1-Motion>",'NoOp');
  13.  $mw->bind($class,"<Meta-1>",'NoOp');
  14.  
  15.  $mw->bind($class,"<B1-Motion>",
  16.             sub
  17.             {
  18.              my $w = shift;
  19.              my $Ev = $w->XEvent;
  20.              $Tk::x = $Ev->x;
  21.              $Tk::y = $Ev->y;
  22.              $w->SelectTo($Ev->xy)
  23.             }
  24.            )
  25.  ;
  26.  $mw->bind($class,"<Double-1>",
  27.             sub
  28.             {
  29.              my $w = shift;
  30.              my $Ev = $w->XEvent;
  31.              $w->SelectTo($Ev->xy,"word");
  32.              Tk::catch { $w->mark("set","insert","sel.first") }
  33.             }
  34.            )
  35.  ;
  36.  $mw->bind($class,"<Triple-1>",
  37.             sub
  38.             {
  39.              my $w = shift;
  40.              my $Ev = $w->XEvent;
  41.              $w->SelectTo($Ev->xy,"line");
  42.              Tk::catch { $w->mark("set","insert","sel.first") };
  43.             }
  44.            )
  45.  ;
  46.  $mw->bind($class,"<Shift-1>",
  47.             sub
  48.             {
  49.              my $w = shift;
  50.              my $Ev = $w->XEvent;
  51.              $w->ResetAnchor($Ev->xy);
  52.              $w->SelectTo($Ev->xy,"char")
  53.             }
  54.            )
  55.  ;
  56.  $mw->bind($class,"<Double-Shift-1>",['SelectTo',Ev('@'),"word"]);
  57.  $mw->bind($class,"<Triple-Shift-1>",['SelectTo',Ev('@'),"line"]);
  58.  
  59.  $mw->bind($class,"<B1-Leave>",
  60.             sub
  61.             {
  62.              my $w = shift;
  63.              my $Ev = $w->XEvent;
  64.              $Tk::x = $Ev->x;
  65.              $Tk::y = $Ev->y;
  66.              $w->AutoScan;
  67.             }
  68.            )
  69.  ;
  70.  
  71.  $mw->bind($class,"<B1-Enter>",'CancelRepeat');
  72.  $mw->bind($class,"<ButtonRelease-1>",'CancelRepeat');
  73.  $mw->bind($class,"<Control-1>",["mark","set","insert",Ev('@')]);
  74.  $mw->bind($class,"<Left>",['SetCursor',Ev("index","insert-1c")]);
  75.  $mw->bind($class,"<Shift-Left>",['KeySelect',Ev("index","insert-1c")]);
  76.  $mw->bind($class,"<Right>",['SetCursor',Ev("index","insert+1c")]);
  77.  $mw->bind($class,"<Shift-Right>",['KeySelect',Ev("index","insert+1c")]);
  78.  $mw->bind($class,"<Up>",['SetCursor',Ev('UpDownLine',-1)]);
  79.  $mw->bind($class,"<Shift-Up>",['KeySelect',Ev('UpDownLine',-1)]);
  80.  $mw->bind($class,"<Down>",['SetCursor',Ev('UpDownLine',1)]);
  81.  $mw->bind($class,"<Shift-Down>",['KeySelect',Ev('UpDownLine',1)]);
  82.  $mw->bind($class,"<Control-Left>",['SetCursor',Ev("index","insert-1c wordstart")]);
  83.  $mw->bind($class,"<Control-Right>",['SetCursor',Ev("index","insert+1c wordend")]);
  84.  $mw->bind($class,"<Control-Up>",['SetCursor',Ev('PrevPara',"insert")]);
  85.  $mw->bind($class,"<Control-Down>",['SetCursor',Ev('NextPara',"insert")]);
  86.  $mw->bind($class,"<Shift-Control-Left>",['KeySelect',Ev("index","insert-1c wordstart")]);
  87.  $mw->bind($class,"<Shift-Control-Right>",['KeySelect',Ev("index","insert wordend")]);
  88.  $mw->bind($class,"<Shift-Control-Up>",['KeySelect',Ev('PrevPara',"insert")]);
  89.  $mw->bind($class,"<Shift-Control-Down>",['KeySelect',Ev('NextPara',"insert")]);
  90.  $mw->bind($class,"<Prior>",['SetCursor',Ev('ScrollPages',-1)]);
  91.  $mw->bind($class,"<Shift-Prior>",['KeySelect',Ev('ScrollPages',-1)]);
  92.  $mw->bind($class,"<Next>",['SetCursor',Ev('ScrollPages',1)]);
  93.  $mw->bind($class,"<Shift-Next>",['KeySelect',Ev('ScrollPages',1)]);
  94.  $mw->bind($class,"<Control-Prior>",["xview","scroll",-1,"page"]);
  95.  $mw->bind($class,"<Control-Next>",["xview","scroll",1,"page"]);
  96.  $mw->bind($class,"<Home>",['SetCursor',"insert linestart"]);
  97.  $mw->bind($class,"<Shift-Home>",['KeySelect',"insert","linestart"]);
  98.  $mw->bind($class,"<End>",['SetCursor',"insert lineend"]);
  99.  $mw->bind($class,"<Shift-End>",['KeySelect',"insert","lineend"]);
  100.  $mw->bind($class,"<Control-Home>",['SetCursor',"1.0"]);
  101.  $mw->bind($class,"<Control-Shift-Home>",['KeySelect',"1.0"]);
  102.  $mw->bind($class,"<Control-End>",['SetCursor',"end-1char"]);
  103.  $mw->bind($class,"<Control-Shift-End>",['KeySelect',"end-1char"]);
  104.  
  105.  $mw->bind($class,"<Shift-Tab>", 'NoOp'); # Needed only to keep <Tab> binding from triggering; does not have to actually do anything.
  106.  $mw->bind($class,"<Control-Tab>",'focusNext');
  107.  $mw->bind($class,"<Control-Shift-Tab>",'focusPrev');
  108.  
  109.  $mw->bind($class,"<Control-space>",["mark","set","anchor","insert"]);
  110.  $mw->bind($class,"<Select>",["mark","set","anchor","insert"]);
  111.  $mw->bind($class,"<Control-Shift-space>",['SelectTo',"insert","char"]);
  112.  $mw->bind($class,"<Shift-Select>",['SelectTo',"insert","char"]);
  113.  $mw->bind($class,"<Control-slash>",["tag","add","sel","1.0","end"]);
  114.  $mw->bind($class,"<Control-backslash>",["tag","remove","sel","1.0","end"]);
  115.  
  116.  if (!$Tk::strictMotif)
  117.   {
  118.    $mw->bind($class,"<Control-a>",    ['SetCursor',"insert linestart"]);
  119.    $mw->bind($class,"<Control-b>",    ['SetCursor',"insert-1c"]);
  120.    $mw->bind($class,"<Control-e>",    ['SetCursor',"insert lineend"]);
  121.    $mw->bind($class,"<Control-f>",    ['SetCursor',"insert+1c"]);
  122.    $mw->bind($class,"<Meta-b>",       ['SetCursor',"insert-1c wordstart"]);
  123.    $mw->bind($class,"<Meta-f>",       ['SetCursor',"insert wordend"]);
  124.    $mw->bind($class,"<Meta-less>",    ['SetCursor',"1.0"]);
  125.    $mw->bind($class,"<Meta-greater>", ['SetCursor',"end-1c"]);
  126.  
  127.    $mw->bind($class,"<Control-n>",    ['SetCursor',Ev('UpDownLine',1)]);
  128.    $mw->bind($class,"<Control-p>",    ['SetCursor',Ev('UpDownLine',-1)]);
  129.  
  130.    $mw->bind($class,"<2>",['Button2',Ev('x'),Ev('y')]);
  131.    $mw->bind($class,"<B2-Motion>",['Motion2',Ev('x'),Ev('y')]);
  132.  
  133.   }
  134.  $mw->bind($class,"<Destroy>",'Destroy');
  135.  return $class;
  136. }
  137.  
  138. 1;
  139.