Posted to tcl by patthoyts at Fri Sep 07 01:17:10 GMT 2007view pretty

proc ::tkchat::whiteboard_open {} {
		  variable useTile
		  variable NS
		
		  if {![winfo exists .wb]} {
		    set wb [Dialog .wb]
		
		    ${NS}::entry $wb.e -textvar ::wbentry -width 80
		    if {$useTile == 0} { $wb.e configure -background white }
		    bind $wb.e <Return> {interp eval .wbinterp $::wbentry}
		    set white_board [canvas $wb.c -background white -width 350 -height 300]
		    ${NS}::button $wb.bclear -text "clear" -command ::tkchat::whiteboard_clear
		    bind $wb.c <Button-1> {
		      set entry ""
		      set id [%W create line %x %y %x %y]
		    }
		    bind $wb.c <Button1-Motion>  {%W coords $id [concat [%W coords $id] %x %y]}
		    bind $wb.c <ButtonRelease-1> {::tkchat::whiteboard_transmit %W $id}
		    grid $wb.e $wb.bclear -sticky new
		    grid $wb.c - -sticky new
		    #pack $wb.e $wb.c -fill both -expand 1
		
		    catch {
		      proc filtered_.wb.c {args} {
		        if {[string equal "bind" [string tolower [lindex $args 0]] && \
		            ([llength $args] == 4)} {
		          lset args 3 [list .wbinterp eval [lindex $args 3]]
		        } 
		        set c [catch ".wb.c {*}$args" r]
		        return $r -code $c
		      }
		      interp create -safe .wbinterp
		      interp alias .wbinterp .wb.c {} filtered_.wb.c
		    }
		  } else {
		    focus .wb
		  }
		}