reference/ocr-new/tt.tcl
changeset 0 6b8091ca909a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/reference/ocr-new/tt.tcl	Thu May 18 23:12:51 2006 +0200
@@ -0,0 +1,63 @@
+#!/usr/sww/bin/wish4.0-b4
+set COLORED_WORDS {}
+text .t -background white -foreground black
+pack .t  
+set LOW_PRECISION_BACKGROUND green
+set MISPELLED_BACKGROUND blue
+set UNKNOWN_CHAR_BACKGROUND red
+.t tag configure LOW_PRECISION -background $LOW_PRECISION_BACKGROUND
+.t tag configure MISPELLED -background $MISPELLED_BACKGROUND
+.t tag configure UNKNOWN_CHAR -background $UNKNOWN_CHAR_BACKGROUND
+proc addword { w {xpos 0} {ypos 0} {status OK}} {
+    global COLORED_WORDS
+    puts $status
+    if { ![string compare $status OK] } {
+	.t insert end "$w " 
+	.t mark set insert end
+	.t mark set insert "end -2 char"
+	.t tag add $status "insert wordstart" "insert wordend"
+	.t tag add x$xpos "insert wordstart" "insert wordend"
+	.t tag add y$ypos "insert wordstart" "insert wordend"
+	.t mark set insert end
+    } elseif { ![string compare $status LOW_PRECISION] || ![string compare $status MISPELLED] || ![string compare $status UNKNOWN_CHAR] } {
+	.t insert end "$w "
+	.t mark set insert end
+	.t mark set insert "end -3 char"
+	.t tag add $status "insert wordstart" "insert wordend"
+	.t tag add x$xpos "insert wordstart" "insert wordend"
+	.t tag add y$ypos "insert wordstart" "insert wordend"
+	lappend COLORED_WORDS [.t index insert]
+	.t mark set insert end
+    } else {
+	puts stdout "Unknown word status for $w: $status"
+	.t insert end "$w UNKNOWNSTATUS? "
+    }
+}
+
+proc pop_colored_words { } {
+    global COLORED_WORDS
+    set x [lindex $COLORED_WORDS 0]
+    if {[llength $COLORED_WORDS] == 1} {
+	set COLORED_WORDS {}
+    } elseif {[llength $COLORED_WORDS] == 0} {
+	set COLORED_WORDS $COLORED_WORDS
+    } else {
+	set COLORED_WORDS [lrange $COLORED_WORDS 1 [llength $COLORED_WORDS]]
+    }
+    return $x
+}
+
+bind .t <Tab> {
+    if {[llength $COLORED_WORDS] == 0} {
+	puts stdout "No more words"
+    } else {
+	.t mark set insert [pop_colored_words]
+	.t mark set insert "insert wordstart"
+	set x [.t index insert]
+	puts "New index is $x"
+	.t see insert
+	set local_tags [.t tag names insert]
+	puts "Tags at this place: $local_tags"
+    }
+    break
+}
\ No newline at end of file