MZ@ !L!This program cannot be run in DOS mode. $^\C===!== ===Rich=PELc&!N! PiH(X<.textD `.rdata@@.data@@.reloc@B( Vt$NpD$PQFp (jhPT$ Vtx!V (PQHDP@j QRjjV<^ ÐL$SVWD$\$tOt$jT$RT$ RT$ RT$,RPQVz XD$L$T$SPD$$QRPVD_^[t$t$;8}HDP@SQRjjV _^[jD$PT$ RD$ P<T$,RPQV t!ADSPыB@L$PQjV_^[ËD$L$SPB@PQjV_^[t$t$;<}PD@@SRPjjV`_^[jL$QT$ RL$ QT$,RP8PVE t'tA@D$JDT$SQPjRV _^[ÐSUVt$H@WxD}\$ q\$$el$;Y\$;Mud_ d^][D$( t+;|;|D$ +;} L$$+ ;| ddT$ ;ЋL$$;ȉ~9~;~+D$(+רtrVhHV_ _^][ËL$ T$$D$(tV*_^][ÃdVh_^][Á$U$,EUVdD$$3;ЉT$ $$D$+‹T$pD$t +ƒD$d D$.D$"$P$WPDŽ$P0$ tjWUb F F t PSUb^ $t PSUL^ t$8;0| L$4;4}$RSU"^ $QPP,tP RSU] dtUuL;HuDL$4;Lu8{4u %$RSU]d D$|%d$QPP,t.tD$|u D$x$RSUU] t+$QPP,t$RSU ] D$xt S_^D$\PL$\QT$\RD$\PSR^L$dT$h$ L$p+D$tD$lL$0+‹T$(jjRT$8$D$0PQL$LRT$TP(QR$$$$NL$H+ʉL$H$H$D$L+‰D$LD$H8D$C0$QT$tRP(S(t$|$| T$0wI$)3D$HD$ \+ƙ+I#ȋ+Ǚ+‰L$HJ#ЉT$ T$0&+ƹI#ȉL$H+ǹI#ȉL$ t$$w.$)33?+ƙ+‹‹+J#++H#+J#+;~΋t$ T$+֋t$p;֋t$XD$D$Lt$ PD$Tt$t$lD$(VP(QL$XRS0WQRtCD u;L$ht$T|$PD$LNL$ʉL$L$\AL$XD$‰D$uL$$T$,D$DPSQR $tD$@$PQU苐 Ѓ3IQT$4RuL$T$P< T$hL$T$X4 t$L$Q3ɍT$tRS<ҋS8|$PIQRS@3ɅҋT$ I#ʋT$@Q (PC$RPK( D$lw'$)$(T$pD$+™+D$ D$pT$++$T$ w,$*$0$D$+™+‹T$ D$<$D$++$D$8 H;4IQjPRV=<;}TH;~P RPQV=<H;~P0RHPjV= D$ ;~T@;~QQRPVd=T$ B;~4 IQjRPV6=D$;~T@;~RP PQV=T$B;~0QPJRjV<8T$ <D$ ^YÐ Vt$(t}|tT$0‹T$,PQT$ hRL$8QT$RPP0H u Vh.h ^ ÐUVW|$ D$PQ3LSF H^@(tFuFL$$QT$RhPӡVL$8T$$j+Q+RW$F E D$P x[t1t'Wh.h _^]LJ_^]ÐVt$F@tDdjQdVhУPRd%d^ÐS\$dUVWt)LHPQS~ 苓:utN:Ouu3uS$_^][Ã3QRRЉ3+jȃhSRdSd_^][ÐD$H0SVWt;H$ 4lP8;~t;H$  l H4t;H  <pp<;~t;H   pы (RSPD _^[Vt$dtJHɋF } H3ɅI#H;~HLɋF$} H3ɅI#H;~LX;Hu\;L|S\|It+dRЋRPV \XjQRVVLHjPQVHLX\^ÐlSUVt$|P@@DL$8+W+щD$D$XPL$XQT$ T$XRD$XPNLQXG D$d$\$`|$h,PT$lF, JσL$4~tՉT$؉D$F(~xщT$ ؉D$ |t PPN$QR|t PPN$RPF$33ۅ$|$~lWPP,u|C$;@ ~tЋ|Չ |؉|L$ȉL$F$G;|L$T$++L$3;ʉT$G9V$|$ʋ|u8 |,F$B;|щL$HtGHt1t~$O$+ʋ(ًN$3I$;tK+ˋ33ۋN$3҅~d|,t5|$DT$,++ڋÅ~#V |L9V  N$D$(Q;u=t4D$\$H|$0++Dž~ ||L9N$ VH8P;u<;Tt+<PjTHDP@QRjjV/_^][l5556D6Vt$dtxuouju"HdLjPQVRVh =Q^èt"HdLjPQVtPdž^ÐVt$dtwuruitPdt Vh =PdLjHRPV^ÐVW|$D$ PQLt{S@(tFuFL$ QT$RhPӡVL$4+ʋT$ jQ+RW8 D$4P (u[_^ÐV$W~tIt?F@\NQ\D$P(BRh`@D$d tdž_3^ L$SdQ$$jD$ P$Q$R$PQRPVGL$@VQRL$HQ4t-t(hW W8 :T$RWPW thX뱋\$ۃUPWU]uu džD$ L$T$ R(PQd %d[_^ÐL$tu A+D$t3øÐD$$u"|$HuD$4L$0T$(PQRm D$8S\$HUl$4VW}j%U(d;t+QUS EEt D$XPUHD$X%D$X%H03ҊB$BD$DPL$hQ T$DD$@RPL$hQfT$@RD$hP LL$PQT$hR 2t$Lu.t$H(D$8q,T$RPDt$L$QVp{PSL$ QRVX PS$wjUS jhS _^][$ÐtAAAWAAAAAVt$jhФV讹 u^jhФVc u^áhȤhVL t^Ë (WjVPhChVV_[u PV ^Ð|$ SUVW}*D$ L$hܤPjQ(_^][ËD$ HjQX\$ (PD$PSu _^][ËhR3.Eh]FV^Q,hHRSF @DHLPTX\džh jQ3džj8RjP j8QjPj8P jP@j8RjP j8QjPj8P jPj8RjP j8QjPj8P@ jPj8RjPdž jxQRP3dž~%@;|ۋD$ L$PQhԤU(VhUD$4 (VhWh@#P(jVhajjRL$\T$dDjjPD$(+PVS9 t (U_^][V3J,WQPSU_^]3[ÐD$ SU3W|$|e\$C VPX:utP:Vuu3^uC PXT$(WR_][ÐD$ <SUW},D$XL$Ph4PjQ(_][<Ë\$XK|$PD$Pjh,h(QWt_][<áVt$PV,D$  $OL$XSQWV薇T$XSRWVD$XSPWV|$Xt h,C( jPjxXPVhRWUD$XSPWV蛕pD$X}:uKQX3 (jPVhPWQt0T$XjjSRVWD$XSPWVךL$XSQWVŜT$XSRWVSJD$XSPWVQL$XSQWV迊T$XSRWV|L$Xtt h 4dtwurtiu@KjQXPVGj LHjPQV&`RPW jPW D$XD$u]C PXD$D$PȊD$PT$\:uB„t$QD$PT$\:Pu,ЊD$\T$Pu3RtID$D$PT$PL$\: u"tHL$\:JuɉT$Pu3SD$TPL$QRXPVi|$Xu>L$TT$QRD$4hPL$S\$V+߉l$3RXD$HD$u^[_]_]ÐL$Vo3Ҋ@Z$$Zt$tvD$ PA$I T$ RPQVQtWD$| uD$ |>t5d d (RP^Ëd%dtP(R^Ë(Q^ËA Qj PAIRT$PQR腹^Ët$>tF NPQdt#VhHddQ Ph`ZV^Ët$d%dV,VHDP@j QRjjV諸Vh$^Ët$ V,VcPD@@j RPjjVm Vh$^Ãyt7t$d d9 uVd'V!^WYXXOYY"Z Vt$dt#VhHddQ PF@tVVh^jaPR|t PQt PRt PPt PQt PRt PPQ RPQ PQRQR PRPQ PQRQR PRPQ PQ@t;PRPQ PQ WT$RPLt0W RV G PQT$R uЍNLQV RQR PQRPL$ QRL _t!H QVT$ R  uߋQ PQV(jRVh0 VQ^ ÐL$tP(YÐD$$@S\$,Ul$t;3QRЋ3+ȃ3҉U D$HL$8H++;‰D$HL$8u;LuSD$LL$<QPS L$8T$HjQRSٮ_^]3[$ÐSU$EH]DV3D$(9W}|$8\$t!VhlhP(FF<?A(t tFVBL$ QT$ RhPF PjT$$RD$,PD$@L$4QL$,T$B(tGuGL$$QT$$RhPWjL$$QT$,RT$DD$4P+D$DL$;t:WhإQ (W(WhlhR_^]3[ËR,I,VRT$hdQhTRXDPw_^][ÐD$Wu:jLP3B(B8B4H|$,u H;ÉD$}0;؋~'TTD$I;A+~X;؋}#TTD$A;|݋T$h,HDP@jQRjjV~3_^][TÍIz~YXL$PD@@jRPjjQ~ÐD$8uD$@ 3ËL$T$ QP(R ÐD$ H (Q8Ð8S\$HUVW}-D$XL$PhPjQ(_^][8Ët$XN|$PD$Pjh,hXQWt _^][8ËF PXD$ 3ɃiL$8QH3҃3;݉|$T$D$Xp QX-ugT$PD$Pjh hhQRD$w$ E;||$t$X+݃\$0t$LV$DV ^$D$LDL$XD$D$ RX:u7tP:Wu)u3 |$_^][8É|$EYuTD$tBD$ D$T|$0unT$XDL$QL$TPQ tH_^][8ËL$LL$T뼋D$X T$TRT$TQR t_^][8ËD$]PD$tj0l$ D$0F D$XD$L$(T$,D$$t4؋D$LD$Pi3؋D$LD$PU4l$LD$,D$L$(T$0\$XD$$t03T$ ؉T$PD$T;~;}D$TT$8L$}ىL$@D$TT$$t;}+ȅɉL$6|$TD$uD$XщD$X8}VL$X;|FT$+3;L$PRT$,QL$8SPD$T$:T$P3;QL$0RT$8SPD$8WPD$,QL$4RPQV&,G;~D$uI T$Wt||$(l$$L$QT$$RD$0PL$$QWUV2L$HT$4\$DL$LL$P\$<\$0L$Tu2;8};0};<;4_^]3[ Ãu4L$0Ll$;<}(;|$|$L$(+ȋD$0+;HL$(D$0u;LuVtD$4L$,jPQVU;J_^]3[ËL$,QD$T$4D$0PB L$,Q PXPVwt _^][ËT$:ruTN$|$0;D$(WPV7 jPL$,PQj G;|_^]3[ËN |$(;T$0RWV jPPD$0Pj G;|_^]3[Ë;?K;؉D$\$ .L$4i MT$0RD$,PQXPVcjUD$PD$0L$8Q RP@T$:rN$D$0+ʋT$4;~ʍ;Ë0L$4T$,h<QjR(_^][ËD$0T$+ȋ PXT$,PWRVD$(+;Hu+;Lu V9rD$,+ʋjQ+PV6SG;oV D$(+ʋT$4;~ʍ;ËD$(+ЋD$ QXPD$8PWVH+;ȋD$0u+;Lu VwqD$4+jP+PVvRG;oD$L$ ;D$_^]3[ÐD$ SUVW4~'\$(L$QRLtrA(tFuFjPPWjN jQPWjL$@Q ,uD$, WP_^]3[Ã\$4KT$4RD$4PQX|$4PW!-tEC PXPRV, t#@ jPL$4PQ_^]3[ÿX;T$4l$(rD$4PL$4QRXPUFL$Q T$RhPXPuZT$D$L$4RT$4PQRUXt8;q_^]3[ËD$4L$,hhPjQ(_^][Ð$$S$UkVWQP+D$<+hPl$ D$,t$4|$8uB j8QjPj8P jPT$4RPP,t;H t4jL$8QhUpDP_^][ĐË0;$} .;|+H苋4;$} ;|+I33;3I#;‰$L$4QJ#ЋP$P,;N T$RD$PhQV RP V$T$,у;ʋD$$(;lVWD$\hPL$dQPP,tPj+P+QSMD$(F(;~$T$G;u$$|$|$$$;ʋT$ $);;VWT$\hRL$dQPP,u$F*;~ɋT$ G;H뮋T$jL$XQhRpDPD$$L$(D$$$$3;9$T$4RPP,;tF PQVL$4QPP,;tP$PQL PRPQ PQD$,_^][ĐË$RPD$|hPL$ dD$- jL$@QPD$$ՋT$,++‰D$,D$$jT$(@RPD$0ՋL$4l$D++D$4W8D$L$$T$(jQRS PPD$,P_^][ËG L$Q T$RPXPSt$D$(;Ƌ;~t$T$$L$;~D$T$;~ʉL$;|$(];D$$H jPD$0PS; PPUjD$8L$$@;D$$~t$D$T$(B;։T$(~L$ UQ_^]3[ËD$(L$ hЭPjQ(_^][ÐD$ VWt+D$ L$h԰PjQ(_^Ët$ N|$D$ Pjh,hQWuċN D$ PQW tND$PQW tD$ UHt$ȋD$<@+L$$ IS8+ʍT$RT$(RPQVD$4L$D$uD$XL$LЉT$PL$T4T$PL$X;ʋ;~щT$PL$T|$L;;~ωL$T~Ot/Ou4L$N$l$L)L$TD$N$L)L$T;‰D$X;ʼnD$LoT$XPRD$0hPӋL$8QPP,t2PD$PL$\j+P+QV!D$LL$T@;D$L~T$PD$X@;‰D$XvD$ML$l$D$L$TV TT$P4D$XL$PhPjQ(_^][8ÐD$ Wt*D$4L$,h PjQ(_ ËT$4D$4PB L$4Q PX|$4PW-u_ ËT$4D$0VRPL$hQL$QPP,T$HPRP^3_ ÐPSUl$d3ۃVt$`W\$(\$, |$pW D$PL$lQRXPV^u0GL$pQ T$hRPXPV)V |V$l 9^\$ |$$l$t ىD$\$0Ћ4D$\$T$‹T$h;};;~׉T$hL$;};;~͉L$|$luڋ\$dD$p\\$d;};;~߉\$dD$p|$;};;~ʼnD$p;Ӌ;~ډ\$d;ȋ;~D$pNItDI:uSL$9L$~HT$$9T$~K\$dD$,D$l$(l$D$pD$ T$$9T$L$l$L$p~K\$dD$4PQL؋D$l;|$hL$p;ʼnD$vPD$lPL$HhQT$PRPP,u9L$0QT$DRPP0D$L$tj+P+QV D$L$p@;D$~D$hT$d@;‰D$hkD$ t8D$,l$(D$ D$pT$$L$|$T$d9L$HD$pV.>u#t(Vh=jR@_^]3[PËL$pT$hhЭQjR(_^][PÐU,SVW}~*EM hPjQ(_^[]ËEHQXE PuT$RT$RPD@@+J+RHPVvjL$p  (4>sprintfsscanfstrncmp_pctype_isctypea__mb_cur_maxqsorttolowerstrtol_ftolMSVCRT.dll^free_inittermmalloc_adjust_fdivc&!NxB`fTktable211.dllTktable_InitTktable_SafeInit|thXLD@80( آТȢ|tlh`XPDPPPPPH <4,t ̡Lȡ thdLTD4(D ؠԠ$ĠHp`T H<0Ԡ,$ ؟`̟d|pdXL@4($ pp؞PО8Ȟ4̡xhXD0$؝ĝhĝhtd\XH<0$ (ܜ, МȜX<|pl8`THd@8 0($ l؛p̛d(Ԡ tdDTH8(T   ؚ̚|pdTH<d4,$P ܙ4Йę0d|p@dXD4$4Ȣ 0ԘĘĘ<ȡt $p|Оx0ĝH `@0 T84Йif {[info proc tkTableInit]==""} { proc tkTableInit {} { global tk_library tcl_pkgPath errorInfo env rename tkTableInit {} set errors {} if {![info exists env(TK_TABLE_LIBRARY_FILE)]} { set env(TK_TABLE_LIBRARY_FILE) tkTable.tcl } if {[info exists env(TK_TABLE_LIBRARY)]} { lappend dirs $env(TK_TABLE_LIBRARY) } lappend dirs C:/msys/1.0/home/andreask/dbn/BuildTmp/tktable/win32-ix86/install/lib/Tktable2.11 if {[info exists tcl_pkgPath]} { foreach i $tcl_pkgPath { lappend dirs [file join $i Tktable2.11] \ [file join $i Tktable] $i } } lappend dirs $tk_library [pwd] foreach i $dirs { set try [file join $i $env(TK_TABLE_LIBRARY_FILE)] if {[file exists $try]} { if {![catch {uplevel #0 [list source $try]} msg]} { set env(TK_TABLE_LIBRARY) $i return } else { append errors "$try: $msg $errorInfo " } } } set env(TK_TABLE_LIBRARY) EMBEDDED_RUNTIME uplevel #0 {namespace eval ::tk::table { # Ensure that a namespace is created for us variable Priv array set Priv [list x 0 y 0 afterId {} mouseMoved 0 \ borderInfo {} borderB1 1] } proc ::tk::table::ClipboardKeysyms {copy cut paste} { bind Table <$copy> {tk_tableCopy %W} bind Table <$cut> {tk_tableCut %W} bind Table <$paste> {tk_tablePaste %W} } ::tk::table::ClipboardKeysyms bind Table <3> { ## You might want to check for cell returned if you want to ## restrict the resizing of certain cells %W border mark %x %y } bind Table { %W border dragto %x %y } bind Table <1> { ::tk::table::Button1 %W %x %y } bind Table { ::tk::table::B1Motion %W %x %y } bind Table { if {$::tk::table::Priv(borderInfo) == "" && [winfo exists %W]} { ::tk::table::CancelRepeat %W activate @%x,%y } } bind Table { # empty } bind Table {::tk::table::BeginExtend %W [%W index @%x,%y]} bind Table {::tk::table::BeginToggle %W [%W index @%x,%y]} bind Table {::tk::table::CancelRepeat} bind Table { if {$::tk::table::Priv(borderInfo) == ""} { array set ::tk::table::Priv {x %x y %y} ::tk::table::AutoScan %W } } bind Table <2> { %W scan mark %x %y array set ::tk::table::Priv {x %x y %y} set ::tk::table::Priv(mouseMoved) 0 } bind Table { if {(%x != $::tk::table::Priv(x)) || (%y != $::tk::table::Priv(y))} { set ::tk::table::Priv(mouseMoved) 1 } if {$::tk::table::Priv(mouseMoved)} { %W scan dragto %x %y } } bind Table { if {!$::tk::table::Priv(mouseMoved)} { tk_tablePaste %W [%W index @%x,%y] } } bind Table <> { catch {%W activate active} } event add <> bind Table {::tk::table::ExtendSelect %W -1 0} bind Table {::tk::table::ExtendSelect %W 1 0} bind Table {::tk::table::ExtendSelect %W 0 -1} bind Table {::tk::table::ExtendSelect %W 0 1} bind Table {%W yview scroll -1 pages; %W activate topleft} bind Table {%W yview scroll 1 pages; %W activate topleft} bind Table {%W xview scroll -1 pages} bind Table {%W xview scroll 1 pages} bind Table {%W see origin} bind Table {%W see end} bind Table { %W selection clear all %W activate origin %W selection set active %W see active } bind Table { %W selection clear all %W activate end %W selection set active %W see active } bind Table {::tk::table::DataExtend %W origin} bind Table {::tk::table::DataExtend %W end} bind Table {::tk::table::BeginSelect %W [%W index active]} bind Table {::tk::table::BeginExtend %W [%W index active]} bind Table {::tk::table::SelectAll %W} bind Table { if {[string match browse [%W cget -selectmode]]} {%W selection clear all} } bind Table {::tk::table::MoveCell %W -1 0} bind Table {::tk::table::MoveCell %W 1 0} bind Table {::tk::table::MoveCell %W 0 -1} bind Table {::tk::table::MoveCell %W 0 1} bind Table {::tk::table::Insert %W %A} bind Table {::tk::table::BackSpace %W} bind Table {%W delete active insert} bind Table {%W reread} bind Table {::tk::table::Insert %W "\n"} bind Table {%W icursor [expr {[%W icursor]-1}]} bind Table {%W icursor [expr {[%W icursor]+1}]} bind Table {%W icursor end} bind Table {%W icursor 0} bind Table {%W delete active insert end} bind Table {::tk::table::ChangeWidth %W active 1} bind Table {::tk::table::ChangeWidth %W active -1} bind Table {# nothing} bind Table {# nothing} bind Table {# nothing} bind Table {# nothing} if {[string match "macintosh" $::tcl_platform(platform)]} { bind Table {# nothing} } if {[string compare $::tcl_platform(platform) "unix"]} { proc ::tk::table::GetSelection {w {sel PRIMARY}} { if {[catch {selection get -displayof $w -selection $sel} txt]} { return -code error "could not find default selection" } else { return $txt } } } else { proc ::tk::table::GetSelection {w {sel PRIMARY}} { if {[catch {selection get -displayof $w -selection $sel \ -type UTF8_STRING} txt] \ && [catch {selection get -displayof $w -selection $sel} txt]} { return -code error "could not find default selection" } else { return $txt } } } proc ::tk::table::CancelRepeat {} { variable Priv after cancel $Priv(afterId) set Priv(afterId) {} } proc ::tk::table::Insert {w s} { if {[string compare $s {}]} { $w insert active insert $s } } proc ::tk::table::BackSpace {w} { set cur [$w icursor] if {[string compare {} $cur] && $cur} { $w delete active [expr {$cur-1}] } } proc ::tk::table::Button1 {w x y} { variable Priv # # $Priv(borderInfo) is null if the user did not click on a border # if {$Priv(borderB1) == 1} { set Priv(borderInfo) [$w border mark $x $y] # account for what resizeborders are set [Bug 876320] (ferenc) set rbd [$w cget -resizeborders] if {$rbd == "none" || ![llength $Priv(borderInfo)] || ($rbd == "col" && [lindex $Priv(borderInfo) 1] == "") || ($rbd == "row" && [lindex $Priv(borderInfo) 0] == "")} { set Priv(borderInfo) "" } } else { set Priv(borderInfo) "" } if {$Priv(borderInfo) == ""} { # # Only do this when a border wasn't selected # if {[winfo exists $w]} { ::tk::table::BeginSelect $w [$w index @$x,$y] focus $w } array set Priv [list x $x y $y] set Priv(mouseMoved) 0 } } proc ::tk::table::B1Motion {w x y} { variable Priv # If we already had motion, or we moved more than 1 pixel, # then we start the Motion routine if {$Priv(borderInfo) != ""} { # # If the motion is on a border, drag it and skip the rest # of this binding. # $w border dragto $x $y } else { # # If we already had motion, or we moved more than 1 pixel, # then we start the Motion routine # if { $::tk::table::Priv(mouseMoved) || abs($x-$::tk::table::Priv(x)) > 1 || abs($y-$::tk::table::Priv(y)) > 1 } { set ::tk::table::Priv(mouseMoved) 1 } if {$::tk::table::Priv(mouseMoved)} { ::tk::table::Motion $w [$w index @$x,$y] } } } proc ::tk::table::BeginSelect {w el} { variable Priv if {[scan $el %d,%d r c] != 2} return switch [$w cget -selectmode] { multiple { if {[$w tag includes title $el]} { ## in the title area if {$r < [$w cget -titlerows]+[$w cget -roworigin]} { ## We're in a column header if {$c < [$w cget -titlecols]+[$w cget -colorigin]} { ## We're in the topleft title area set inc topleft set el2 end } else { set inc [$w index topleft row],$c set el2 [$w index end row],$c } } else { ## We're in a row header set inc $r,[$w index topleft col] set el2 $r,[$w index end col] } } else { set inc $el set el2 $el } if {[$w selection includes $inc]} { $w selection clear $el $el2 } else { $w selection set $el $el2 } } extended { $w selection clear all if {[$w tag includes title $el]} { if {$r < [$w cget -titlerows]+[$w cget -roworigin]} { ## We're in a column header if {$c < [$w cget -titlecols]+[$w cget -colorigin]} { ## We're in the topleft title area $w selection set $el end } else { $w selection set $el [$w index end row],$c } } else { ## We're in a row header $w selection set $el $r,[$w index end col] } } else { $w selection set $el } $w selection anchor $el set Priv(tablePrev) $el } default { if {![$w tag includes title $el]} { $w selection clear all $w selection set $el set Priv(tablePrev) $el } $w selection anchor $el } } } proc ::tk::table::Motion {w el} { variable Priv if {![info exists Priv(tablePrev)]} { set Priv(tablePrev) $el return } if {[string match $Priv(tablePrev) $el]} return switch [$w cget -selectmode] { browse { $w selection clear all $w selection set $el set Priv(tablePrev) $el } extended { # avoid tables that have no anchor index yet. if {[catch {$w index anchor}]} { return } scan $Priv(tablePrev) %d,%d r c scan $el %d,%d elr elc if {[$w tag includes title $el]} { if {$r < [$w cget -titlerows]+[$w cget -roworigin]} { ## We're in a column header if {$c < [$w cget -titlecols]+[$w cget -colorigin]} { ## We're in the topleft title area $w selection clear anchor end } else { $w selection clear anchor [$w index end row],$c } $w selection set anchor [$w index end row],$elc } else { ## We're in a row header $w selection clear anchor $r,[$w index end col] $w selection set anchor $elr,[$w index end col] } } else { $w selection clear anchor $Priv(tablePrev) $w selection set anchor $el } set Priv(tablePrev) $el } } } proc ::tk::table::BeginExtend {w el} { # avoid tables that have no anchor index yet. if {[catch {$w index anchor}]} { return } if {[string match extended [$w cget -selectmode]] && [$w selection includes anchor]} { ::tk::table::Motion $w $el } } proc ::tk::table::BeginToggle {w el} { if {[string match extended [$w cget -selectmode]]} { variable Priv set Priv(tablePrev) $el $w selection anchor $el if {[$w tag includes title $el]} { scan $el %d,%d r c if {$r < [$w cget -titlerows]+[$w cget -roworigin]} { ## We're in a column header if {$c < [$w cget -titlecols]+[$w cget -colorigin]} { ## We're in the topleft title area set end end } else { set end [$w index end row],$c } } else { ## We're in a row header set end $r,[$w index end col] } } else { ## We're in a non-title cell set end $el } if {[$w selection includes $end]} { $w selection clear $el $end } else { $w selection set $el $end } } } proc ::tk::table::AutoScan {w} { if {![winfo exists $w]} return variable Priv set x $Priv(x) set y $Priv(y) if {$y >= [winfo height $w]} { $w yview scroll 1 units } elseif {$y < 0} { $w yview scroll -1 units } elseif {$x >= [winfo width $w]} { $w xview scroll 1 units } elseif {$x < 0} { $w xview scroll -1 units } else { return } ::tk::table::Motion $w [$w index @$x,$y] set Priv(afterId) [after 50 ::tk::table::AutoScan $w] } proc ::tk::table::MoveCell {w x y} { if {[catch {$w index active row} r]} return set c [$w index active col] set cell [$w index [incr r $x],[incr c $y]] while {[string compare [set true [$w hidden $cell]] {}]} { # The cell is in some way hidden if {[string compare $true [$w index active]]} { # The span cell wasn't the previous cell, so go to that set cell $true break } if {$x > 0} {incr r} elseif {$x < 0} {incr r -1} if {$y > 0} {incr c} elseif {$y < 0} {incr c -1} if {[string compare $cell [$w index $r,$c]]} { set cell [$w index $r,$c] } else { # We couldn't find a non-hidden cell, just don't move return } } $w activate $cell $w see active switch [$w cget -selectmode] { browse { $w selection clear all $w selection set active } extended { variable Priv $w selection clear all $w selection set active $w selection anchor active set Priv(tablePrev) [$w index active] } } } proc ::tk::table::ExtendSelect {w x y} { if {[string compare extended [$w cget -selectmode]] || [catch {$w index active row} r]} return set c [$w index active col] $w activate [incr r $x],[incr c $y] $w see active ::tk::table::Motion $w [$w index active] } proc ::tk::table::DataExtend {w el} { set mode [$w cget -selectmode] if {[string match extended $mode]} { $w activate $el $w see $el if {[$w selection includes anchor]} {::tk::table::Motion $w $el} } elseif {[string match multiple $mode]} { $w activate $el $w see $el } } proc ::tk::table::SelectAll {w} { if {[regexp {^(single|browse)$} [$w cget -selectmode]]} { $w selection clear all catch {$w selection set active} } elseif {[$w cget -selecttitles]} { $w selection set [$w cget -roworigin],[$w cget -colorigin] end } else { $w selection set origin end } } proc ::tk::table::ChangeWidth {w i a} { set tmp [$w index $i col] if {[set width [$w width $tmp]] >= 0} { $w width $tmp [incr width $a] } else { $w width $tmp [incr width [expr {-$a}]] } } proc tk_tableCopy w { if {[selection own -displayof $w] == "$w"} { clipboard clear -displayof $w catch {clipboard append -displayof $w [::tk::table::GetSelection $w]} } } proc tk_tableCut w { if {[selection own -displayof $w] == "$w"} { clipboard clear -displayof $w catch { clipboard append -displayof $w [::tk::table::GetSelection $w] $w cursel {} $w selection clear all } } } proc tk_tablePaste {w {cell {}}} { if {[string compare {} $cell]} { if {[catch {::tk::table::GetSelection $w} data]} return } else { if {[catch {::tk::table::GetSelection $w CLIPBOARD} data]} { return } set cell active } tk_tablePasteHandler $w [$w index $cell] $data if {[$w cget -state] == "normal"} {focus $w} } proc tk_tablePasteHandler {w cell data} { # # Don't allow pasting into the title cells # if {[$w tag includes title $cell]} { return } set rows [expr {[$w cget -rows]-[$w cget -roworigin]}] set cols [expr {[$w cget -cols]-[$w cget -colorigin]}] set r [$w index $cell row] set c [$w index $cell col] set rsep [$w cget -rowseparator] set csep [$w cget -colseparator] ## Assume separate rows are split by row separator if specified ## If you were to want multi-character row separators, you would need: # regsub -all $rsep $data data # set data [join $data ] if {[string compare {} $rsep]} { set data [split $data $rsep] } set row $r foreach line $data { if {$row > $rows} break set col $c ## Assume separate cols are split by col separator if specified ## Unless a -separator was specified if {[string compare {} $csep]} { set line [split $line $csep] } ## If you were to want multi-character col separators, you would need: # regsub -all $csep $line line # set line [join $line ] foreach item $line { if {$col > $cols} break $w set $row,$col $item incr col } incr row } } proc ::tk::table::Sort {w start end col args} { set start [$w index $start] set end [$w index $end] scan $start %d,%d sr sc scan $end %d,%d er ec if {($col < $sc) || ($col > $ec)} { return -code error "$col is not within sort range $sc to $ec" } set col [expr {$col - $sc}] set data {} for {set i $sr} {$i <= $er} {incr i} { lappend data [$w get $i,$sc $i,$ec] } set i $sr foreach row [eval [list lsort -index $col] $args [list $data]] { $w set row $i,$sc $row incr i } } } } } tkTableInit-showprocs-hasprocsyScrollCommand-yscrollcommandScrollCommandxScrollCommand-xscrollcommandWrapwrap-wrapWidth-width-vcmdValidateCommandvalidateCommand-validatecommandValidate-validateVariablevariable-variableUseCommanduseCommand-usecommandTitleRowstitleRows-titlerowsTitleColstitleCols-titlecolsTakeFocustakeFocus-takefocusStatestate-stateSparseArraysparseArray-sparsearraySelectTypeselectType-selecttypeSelectTitlesselectTitles-selecttitlesbrowseSelectModeselectMode-selectmodeSelectionCommand-selectioncommandselectionCommand-selcmdrowTagCommand-rowtagcommandrowStretch-rowstretchmoderowSeparator-rowseparatorRowsrows-rowsrowOrigin-roworiginRowHeightrowHeight-rowheightResizeBordersresizeBorders-resizeborderssunkenReliefrelief-reliefpadY-padypadX-padxMultilinemultiline-multiline800MaxWidthmaxWidth-maxwidthMaxHeightmaxHeight-maxheightleftJustifyjustify-justifyipadY-ipadyPadipadX-ipadxInvertSelectedinvertSelected-invertselectedInsertWidthinsertWidth-insertwidth600OnTimeinsertOnTime-insertontime300OffTimeinsertOffTime-insertofftimeinsertBorderWidth-insertborderwidthBlackinsertBackground-insertbackgroundHighlightThicknesshighlightThickness-highlightthicknessSystemWindowFrameHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackgroundHeight-heightblackForeground-foreground{MS Sans Serif} 8Fontfont-font2FlashTimeflashTime-flashtimeFlashModeflashMode-flashmodeforeground-fgExportSelectionexportSelection-exportselectionEllipsisellipsis-ellipsisDrawModedrawMode-drawmodextermcursor-cursorCommandcommand-commandColWidthcolWidth-colwidthTagCommandcolTagCommand-coltagcommandStretchModecolStretch-colstretchmodeSeparatorcolSeparator-colseparator10Colscols-colsOrigincolOrigin-coloriginCachecache-cache-browsecmdBrowseCommandbrowseCommand-browsecommand1BorderWidth-borderwidthcrosshairCursorborderCursor-bordercursor-bgborderWidth-bdSystemButtonFaceBackgroundbackground-background0AutoClearautoClear-autoclearcenterAnchor-anchordisablednormalfilllastallunsetsingleslowcompatiblefastnonecellbothcolrowyviewxviewwidthwindowversionvalidatetagspansselectionseescanrereadinsertindexicursorhiddenheightgetdeletecurvaluecurselectionconfigurecgetborderbboxactivatesetpresentincludesclearanchor%d,%dflashactiveseltitleend (horizontal scrolling command executed by table) (vertical scrolling command executed by table) %g %g boolean not returned by validation command (in validation command executed by table)%dtableTktable2.118.0TablepathName ?options?-classselection option ?row|col??cursorPos?optionoption ?arg arg ...? (configuring table widget)": could not be made an arrayinvalid variable value "#TEST KEY# (error in table selection command)jkthDff ȡth  @4080 , -window-sticky-createnamesmovebad sticky value "": must contain n, s, e or wno window at index ""?pattern?srcIndex destIndexindex ?index ...?index ?arg arg ...?index optioncan't embed in thD PDP <4,(  ȡth Ш̟H p |p $ ܫԫ, МȜ8 `THЫ< ȫ ЫD4,$4Ы@̡ ȫ| l|d ȫ4D`redwhiteSystemDisabledTextSystemHighlightTextSystemHighlightShowTextshowText-showtextflat-1Imageimage-imageunknownrowtagraiselowerexistscoltagcelltagbad mojo in TableResetTagbad mojo in TableMergeTaginvalid border value '%d' %dinvalid tag name "tagName ?aboveThis?tagName ?belowThis?tag indextagNamecannot delete tagtagName ?tagName ...?tagName ?arg arg ...?tagName optiontag ?arg arg ..?tag ?arg arg ...?tag optionУĭ---holdwindows-holdtags-holdselection-holddimensions-keeptitlesfirst ?last?index string?switches? index ?count?switchoption ?switches? arg ?arg? (in -command evaled by table) (in command executed by table)bad table index "": must be active, anchor, end, origin, topleft, bottomright, @x,y, or ,bottomrighttopleftoriginno "anchor" cell in tableno "active" cell in table%d,%d%c?row|col? index ?value? ?index value ...??index? ?rows,cols index rows,cols ...?cannot overlap already spanned cell cannot set spanning on hidden cell ?index? ?index ...?( htagssizesdragtomarkdefault%d %d?row? ?height row height ...??col? ?width col width ...?mark|dragto x y ?row|col?option ?first? ?last?clear option?value???mark|dragto x yall| ???args?1, 2 or 4 values must be specified for borderwidthinvalid type given to TableOptionBdSet borderwidth value may not be empty, bad option "" must be TclThis interpreter does not support stubs-enabled extensions.This implementation of Tk does not support stubsTkH0"0)0]0k3q33345^5w555<6G6]6q6l7s7Y8d869;L>> ?? 0%15111W22 33^4u444444445&5<5f5o5|555555555566x66647p78 88889K9h9u9999999999999999999999999::: ::::: :$:(:,:0:4:s::::: ;<;====>4>d>l>>>>;?A??0|020022 334555668W9999999j:::::: ;;< <$<(<,<<<<+>Z>>>?Q?_?}??????@8(0001L1S1a1h1111111112(2<2T2f2m222222222233!3&3A3G3`3e3m33333333494J4O4444455$535I5U5h5t55555555566766666666747{777788H8T8Y8v888889=9Q9\9:2:t::::C;;;;; <'<<<>>>>?E?^?e????????????????????P(000 00000 0$0(0,00040800001(11111"2'2-2A2L2\2p2{2222223V33333A5K5b5i5555@6L6Q6666666 727d777B8{888889-9:9?9n9999$:(:,:0:4:8:<:r:x::::::;;/;F;];z;;;;;;;;<<&<6P>W>\>j>q>>>>>?\?z???` 0;0B0a0h0001 262;2J2O2U2k2222222233$333333333=4B4v44444444455K5h5m5y55555555564696H66672797@7M7d7h7l7p7t7x7P9c9999F:q:&;-;;;<&>>>p0050`0k0p0000000 11=1Q1W1q11112(2222,3I3t3y333334Y4m44444444555[55555+616B666666667U777p8u89:::::::;;(;/;:;A;L;S;;;<<===+=G=p=|====>+>7><>T>v>>>>>O?V?`??? 0A0[0z0011112U2r22223333W4445@5K5s5555 6'646J66"7g7777 8A888'9?9E9_9p99999:N:Y:e:::::;';_;;;%^>o>>>>??s??#00 1F1[1n1111111G2l2s2y2d3h3l3p3t3x3|3333333*4/4Z4f4k444555J555B6}699:Y:^::::;<;A;g;;< <$<(<,8>f>-?W?o??`030s0000 1>1S1112c22,333[3b3444455z9999+>N?v??????0%0D0000 1.1j111111+2Z222334D4Q4445A55506A6L6j6v66667&7N77772898M8T8Y8_819K9Q9q999#:M::;k;;#<[<<<<=>>>>>??1?a???070A0R000 1(1;1L1Z1k111T2[2c2m2222q3x333-474]4s444445 5I56 6666 77V7s7777/8p888899f999+:h:::::::;0;I;m;;;;;<3I>>>>????d0i0001#222223c33344P4`44444>5_555556U6666 7H77#8N8888 90:P:l:::: ;;;8;Y;;;;;;;;== >>A>H>`>p>>>>>>7?J?\?o??????? 0010F0{000^111122]2222B3N3D4I44444 555555 6&6>6666"7777L8888G9999: :6:B:G:_:}:;;<$=*=p=====>H>>2?Q???'0,0Z00000(1]12,3334 4/444|44446(6o666 77h8l8p8t88888 99V9[999U:u::::1;6;<6>>>&>.><>A>F>K>V>c>m>>>>>>$?@? 0000 0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h0l0p0t0x0|00000000000000000001111 1(10181@1H1P1X1`1d1h1p1t1x1111111111111111111122 22$2(2D2H2d2h2l2p222222222222222233 33$3(3,303D3H3L3d3h3l3p3|333333333333333344 444$4(4,404D4H4L4P4d4h4444444444444444455 55$5(5,505D5H5L5P5d5h5l5p5555555555555555566 66$6(6,606D6H6L6P6d6h6l6p6666666666666666677 77$7(7,707D7H7L7P7d7h7l7p77777777777777777788 8$8(8,808<8D8H8L8d8h8888888888888888899 99$9(9,909<9D9H9L9d9h9l9p9999999999999999:: ::$:(:D:H:L:P:d:h:l:p:::::::::::::::;;; ;;;;; ;$;(;,;0;4;8;<;@;D;H;L;P;T;X;\;`;d;h;l;p;t;x;|;;;;;;;;(555555556666$6(6,6D6H6d6h66666666677$7(7,7D7p8t8x8|888888888888888888888899994989T9X9t9x9|999999999999999:::4:8:<:@:T:X:\:`:t:x:|::::::::::::::::;;;; ;$;(;,;0;4;8;<;@;D;H;L;P;T;X;\;X=\=`=h=l=p=t=x=|=???000