reference/ocr-simple/tt.tcl
author viric@llimona
Thu, 18 May 2006 23:12:51 +0200
changeset 0 6b8091ca909a
permissions -rwxr-xr-x
Init from working directory of svn repository.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     1
#!/usr/sww/bin/wish4.0-b4
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     2
set COLORED_WORDS {}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     3
text .t -background white -foreground black
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     4
pack .t  
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     5
set LOW_PRECISION_BACKGROUND green
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     6
set MISPELLED_BACKGROUND blue
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     7
set UNKNOWN_CHAR_BACKGROUND red
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     8
.t tag configure LOW_PRECISION -background $LOW_PRECISION_BACKGROUND
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     9
.t tag configure MISPELLED -background $MISPELLED_BACKGROUND
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    10
.t tag configure UNKNOWN_CHAR -background $UNKNOWN_CHAR_BACKGROUND
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    11
proc addword { w {xpos 0} {ypos 0} {status OK}} {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    12
    global COLORED_WORDS
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    13
    puts $status
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    14
    if { ![string compare $status OK] } {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    15
	.t insert end "$w " 
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    16
	.t mark set insert end
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    17
	.t mark set insert "end -2 char"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    18
	.t tag add $status "insert wordstart" "insert wordend"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    19
	.t tag add x$xpos "insert wordstart" "insert wordend"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    20
	.t tag add y$ypos "insert wordstart" "insert wordend"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    21
	.t mark set insert end
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    22
    } elseif { ![string compare $status LOW_PRECISION] || ![string compare $status MISPELLED] || ![string compare $status UNKNOWN_CHAR] } {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    23
	.t insert end "$w "
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    24
	.t mark set insert end
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    25
	.t mark set insert "end -3 char"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    26
	.t tag add $status "insert wordstart" "insert wordend"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    27
	.t tag add x$xpos "insert wordstart" "insert wordend"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    28
	.t tag add y$ypos "insert wordstart" "insert wordend"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    29
	lappend COLORED_WORDS [.t index insert]
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    30
	.t mark set insert end
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    31
    } else {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    32
	puts stdout "Unknown word status for $w: $status"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    33
	.t insert end "$w UNKNOWNSTATUS? "
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    34
    }
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    35
}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    36
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    37
proc pop_colored_words { } {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    38
    global COLORED_WORDS
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    39
    set x [lindex $COLORED_WORDS 0]
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    40
    if {[llength $COLORED_WORDS] == 1} {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    41
	set COLORED_WORDS {}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    42
    } elseif {[llength $COLORED_WORDS] == 0} {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    43
	set COLORED_WORDS $COLORED_WORDS
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    44
    } else {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    45
	set COLORED_WORDS [lrange $COLORED_WORDS 1 [llength $COLORED_WORDS]]
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    46
    }
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    47
    return $x
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    48
}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    49
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    50
bind .t <Tab> {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    51
    if {[llength $COLORED_WORDS] == 0} {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    52
	puts stdout "No more words"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    53
    } else {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    54
	.t mark set insert [pop_colored_words]
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    55
	.t mark set insert "insert wordstart"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    56
	set x [.t index insert]
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    57
	puts "New index is $x"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    58
	.t see insert
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    59
	set local_tags [.t tag names insert]
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    60
	puts "Tags at this place: $local_tags"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    61
    }
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    62
    break
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    63
}