From 960cdf29197bc3f5922110cf26627aa9709ac79b Mon Sep 17 00:00:00 2001 From: cvs2svn Date: Fri, 10 Jun 2005 10:29:11 +0000 Subject: This commit was manufactured by cvs2svn to create branch 'bogue40'. --- library/zincText.tcl | 180 --------------------------------------------------- 1 file changed, 180 deletions(-) delete mode 100644 library/zincText.tcl (limited to 'library/zincText.tcl') diff --git a/library/zincText.tcl b/library/zincText.tcl deleted file mode 100644 index 7bfd4c4..0000000 --- a/library/zincText.tcl +++ /dev/null @@ -1,180 +0,0 @@ -# -# ZincText - Zinc extension for text input on text items and fields -# -# $Id$ -# -# AUTHOR -# -# Patrick Lecoanet -# (and documentation by Christophe Mertz ) -# -# Copyright (c) 2002 - 2003 CENA, Patrick Lecoanet -# -# See the file "Copyright" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# -# SYNOPSIS -# -# package require zincText; -# -# zn_TextBindings $zinc -# -# $zinc addtag text withtag $a_text -# $zinc addtag text withtag $a_track -# $zinc addtag text withtag $a_waypoint -# $zinc addtag text withtag $a_tabular -# -# -# DESCRIPTION -# -# This module implements text input with the mouse and keyboard 'a la emacs'. -# Text items must have the 'text' tag and must of course be sensitive. -# Track, waypoint and tabular items have fields and these fields can -# be edited the same way. Only sensitive fields can be edited. the following -# interactions are supported: -# -# To set the cursor position -# To paste the current selection -# To make a selection -# To extend the current selection -# To extend the current selection -# , -# To move the cursor to the left or to the right -# , -# To move the cursor up or down a line -# , -# To move the cursor at the begining of the line -# -# To move the cursor at the end of the line -# , -# > To move the cursor at the beginning / end of the text -# -# To delete the char just before the cursor -# To delete the char just after the cursor -# To insert a return char. This does not validate the input! -# -# - -proc zn_TextBindings {zinc} { - $zinc bind text <1> "startSel $zinc %x %y" - $zinc bind text <2> "pasteSel $zinc %x %y" - $zinc bind text "extendSel $zinc %x %y" - $zinc bind text "extendSel $zinc %x %y" - $zinc bind text "$zinc select adjust current @%x,%y" - $zinc bind text "moveCur $zinc -1" - $zinc bind text "moveCur $zinc 1" - $zinc bind text "setCur $zinc up" - $zinc bind text "setCur $zinc down" - $zinc bind text "setCur $zinc bol" - $zinc bind text "setCur $zinc bol" - $zinc bind text "setCur $zinc eol" - $zinc bind text "setCur $zinc eol" - $zinc bind text "setCur $zinc 0" - $zinc bind text "setCur $zinc end" - $zinc bind text "insertKey $zinc %A" - $zinc bind text "insertKey $zinc %A" - $zinc bind text "insertChar $zinc \\n" - $zinc bind text "textDel $zinc -1" - $zinc bind text "textDel $zinc -1" - $zinc bind text "textDel $zinc 0" -} - - -proc pasteSel {w x y} { - set item [$w focus] - - if {[llength $item] != 0} { - catch {$w insert [lindex $item 0] [lindex $item 1] @$x,$y [selection get]} - } -} - - -proc insertChar {w c} { - set item [$w focus] - set selItem [$w select item] - - if {[llength $item] == 0} { - return; - } - - if {([llength $selItem]!= 0) && - ([lindex $selItem 0] == [lindex $item 0]) && - ([lindex $selItem 1] == [lindex $item 1])} { - $w dchars [lindex $item 0] [lindex $item 1] sel.first sel.last - } - $w insert [lindex $item 0] [lindex $item 1] insert $c -} - - -proc insertKey {w c} { - if {! [binary scan $c {c} code]} { - return - } - set code [expr $code & 0xFF] - if {($code < 32) || ($code == 128)} { - puts "rejet $code" - return - } - - insertChar $w $c -} - - -proc setCur {w where} { - set item [$w focus] - - if {[llength $item] != 0} { - $w cursor [lindex $item 0] [lindex $item 1] $where - } -} - - -proc moveCur {w dir} { - set item [$w focus] - - if {[llength $item] != 0} { - set index [$w index [lindex $item 0] [lindex $item 1] insert] - $w cursor [lindex $item 0] [lindex $item 1] [expr $index + $dir] - } -} - - -proc startSel {w x y} { - set part [$w currentpart t] - - $w cursor current $part @$x,$y - $w focus current $part - focus $w - $w select from current $part @$x,$y -} - - -proc extendSel {w x y} { - set part [$w currentpart t] - - $w select to current $part @$x,$y -} - - -proc textDel {w dir} { - set item [$w focus] - set selItem [$w select item] - - if {[llength $item] == 0} { - return; - } - - if {([llength $selItem] != 0) && - ([lindex $selItem 0] == [lindex $item 0]) && - ([lindex $selItem 1] == [lindex $item 1])} { - $w dchars [lindex $item 0] [lindex $item 1] sel.first sel.last - } else { - set ind [expr [$w index [lindex $item 0] [lindex $item 1] insert] + $dir] - if { $ind >= 0 } { - $w dchars [lindex $item 0] [lindex $item 1] $ind $ind - } - } -} - -package provide zincText 1.0 -- cgit v1.1