PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` # textpeer.tcl -- # # This demonstration script creates a pair of text widgets that can edit a # single logical buffer. This is particularly useful when editing related text # in two (or more) parts of the same file. if {![info exists widgetDemo]} { error "This script should be run from the \"widget\" demo." } package require Tk set w .textpeer catch {destroy $w} toplevel $w wm title $w "Text Widget Peering Demonstration" wm iconname $w "textpeer" positionWindow $w set count 0 ## Define a widget that we peer from; it won't ever actually be shown though set first [text $w.text[incr count]] $first insert end "This is a coupled pair of text widgets; they are peers to " $first insert end "each other. They have the same underlying data model, but " $first insert end "can show different locations, have different current edit " $first insert end "locations, and have different selections. You can also " $first insert end "create additional peers of any of these text widgets using " $first insert end "the Make Peer button beside the text widget to clone, and " $first insert end "delete a particular peer widget using the Delete Peer " $first insert end "button." ## Procedures to make and kill clones; most of this is just so that the demo ## looks nice... proc makeClone {w parent} { global count set t [$parent peer create $w.text[incr count] -yscroll "$w.sb$count set"\ -height 10 -wrap word] set sb [scrollbar $w.sb$count -command "$t yview" -orient vertical] set b1 [button $w.clone$count -command "makeClone $w $t" \ -text "Make Peer"] set b2 [button $w.kill$count -command "killClone $w $count" \ -text "Delete Peer"] set row [expr {$count * 2}] grid $t $sb $b1 -sticky nsew -row $row grid ^ ^ $b2 -row [incr row] grid configure $b1 $b2 -sticky new grid rowconfigure $w $b2 -weight 1 } proc killClone {w count} { destroy $w.text$count $w.sb$count destroy $w.clone$count $w.kill$count } ## Now set up the GUI makeClone $w $first makeClone $w $first destroy $first ## See Code / Dismiss buttons grid [addSeeDismiss $w.buttons $w] - - -sticky ew -row 5000 grid columnconfigure $w 0 -weight 1