Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | * scripts/tablelistBind.tcl: Added the "-autofinishediting" option; * scripts/tablelistConfig.tcl: adapted the implementation of the * scripts/tablelistEdit.tcl: "delete" subcommand to the changed text * scripts/tablelistWidget.tcl: widget behavior in Tk 8.6.5. * CHANGES.txt: Updated to reflect the changes. * doc/tablelistWidget.html: |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
699ebff4d5c8a00898caa9c63dab023f |
User & Date: | csaba 2016-08-09 20:52:36 |
Context
2016-08-09
| ||
20:55 | * CHANGES.txt: Updated to reflect the changes. * doc/tablelistWidget.html: check-in: 20861e8214 user: csaba tags: trunk | |
20:52 | * scripts/tablelistBind.tcl: Added the "-autofinishediting" option; * scripts/tablelistConfig.tcl: adapted the implementation of the * scripts/tablelistEdit.tcl: "delete" subcommand to the changed text * scripts/tablelistWidget.tcl: widget behavior in Tk 8.6.5. * CHANGES.txt: Updated to reflect the changes. * doc/tablelistWidget.html: check-in: 699ebff4d5 user: csaba tags: trunk | |
2016-06-15
| ||
19:18 | * ../../examples/*.tcl: Bumped the version number to 5.16. check-in: ef19af2e1d user: csaba tags: trunk | |
Changes
Changes to modules/tablelist/scripts/mwutil.tcl.
1 2 3 4 5 6 7 | #============================================================================== # Contains utility procedures for mega-widgets. # # Structure of the module: # - Namespace initialization # - Public utility procedures # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #============================================================================== # Contains utility procedures for mega-widgets. # # Structure of the module: # - Namespace initialization # - Public utility procedures # # Copyright (c) 2000-2016 Csaba Nemethi (E-mail: [email protected]) #============================================================================== package require Tcl 8 package require Tk 8 # # Namespace initialization |
︙ | ︙ |
Changes to modules/tablelist/scripts/repair.tcl.
1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/env wish #============================================================================== # Creates new versions of the files "tablelistWidget.tcl", "tablelistBind.tcl", # "tablelistConfig.tcl", "tablelistEdit.tcl", "tablelistMove.tcl", # "tablelistSort.tcl", and "tablelistUtil.tcl" by defining the procedure # "arrElemExists" and replacing all invocations of "[info exists # <array>(<name>)]" with "[arrElemExists <array> <name>]". This works around a # bug in Tcl versions 8.2, 8.3.0 - 8.3.2, and 8.4a1 (fixed in Tcl 8.3.3 and # 8.4a2), which causes excessive memory use when calling "info exists" on # non-existent array elements. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/usr/bin/env wish #============================================================================== # Creates new versions of the files "tablelistWidget.tcl", "tablelistBind.tcl", # "tablelistConfig.tcl", "tablelistEdit.tcl", "tablelistMove.tcl", # "tablelistSort.tcl", and "tablelistUtil.tcl" by defining the procedure # "arrElemExists" and replacing all invocations of "[info exists # <array>(<name>)]" with "[arrElemExists <array> <name>]". This works around a # bug in Tcl versions 8.2, 8.3.0 - 8.3.2, and 8.4a1 (fixed in Tcl 8.3.3 and # 8.4a2), which causes excessive memory use when calling "info exists" on # non-existent array elements. # # Copyright (c) 2001-2016 Csaba Nemethi (E-mail: [email protected]) #============================================================================== set procDef { # # The following procedure returns 1 if arrName($name) exists and # 0 otherwise. It is a (partial) replacement for [info exists # arrName($name)], which -- due to a bug in Tcl versions 8.2, |
︙ | ︙ |
Changes to modules/tablelist/scripts/tablelistBind.tcl.
1 2 3 4 5 6 7 8 9 10 | #============================================================================== # Contains public and private procedures used in tablelist bindings. # # Structure of the module: # - Public helper procedures # - Binding tag Tablelist # - Binding tag TablelistWindow # - Binding tag TablelistBody # - Binding tags TablelistLabel, TablelistSubLabel, and TablelistArrow # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #============================================================================== # Contains public and private procedures used in tablelist bindings. # # Structure of the module: # - Public helper procedures # - Binding tag Tablelist # - Binding tag TablelistWindow # - Binding tag TablelistBody # - Binding tags TablelistLabel, TablelistSubLabel, and TablelistArrow # # Copyright (c) 2000-2016 Csaba Nemethi (E-mail: [email protected]) #============================================================================== # # Public helper procedures # ======================== # |
︙ | ︙ | |||
147 148 149 150 151 152 153 154 155 156 157 | # # Delete the bitmaps displaying the sort ranks # and the images used to display the sort arrows # for {set rank 1} {$rank < 10} {incr rank} { image delete sortRank$rank$win } for {set col 0} {$col < $data(colCount)} {incr col} { set w $data(hdrTxtFrCanv)$col foreach shape {triangleUp darkLineUp lightLineUp triangleDn darkLineDn lightLineDn} { | > > | > | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | # # Delete the bitmaps displaying the sort ranks # and the images used to display the sort arrows # for {set rank 1} {$rank < 10} {incr rank} { image delete sortRank$rank$win } set imgNames [image names] for {set col 0} {$col < $data(colCount)} {incr col} { set w $data(hdrTxtFrCanv)$col foreach shape {triangleUp darkLineUp lightLineUp triangleDn darkLineDn lightLineDn} { if {[lsearch -exact $imgNames $shape$w] >= 0} { image delete $shape$w } } } destroy $data(corner) namespace delete ::tablelist::ns$win catch {rename ::$win ""} |
︙ | ︙ | |||
1761 1762 1763 1764 1765 1766 1767 | unset data(sourceRow) unset data(sourceEndRow) unset data(sourceDescCount) unset data(sourceParentKey) unset data(sourceParentRow) unset data(sourceParentEndRow) | > | > > | > | 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 | unset data(sourceRow) unset data(sourceEndRow) unset data(sourceDescCount) unset data(sourceParentKey) unset data(sourceParentRow) unset data(sourceParentEndRow) if {[info exists data(targetRow)]} { unset data(targetRow) } if {[info exists data(targetChildIdx)]} { unset data(targetChildIdx) } bind [winfo toplevel $win] <Escape> $data(topEscBinding) $data(body) configure -cursor $data(-cursor) place forget $data(rowGap) } #------------------------------------------------------------------------------ # tablelist::beginExtend |
︙ | ︙ | |||
2986 2987 2988 2989 2990 2991 2992 | # if {$targetCol == $col || $targetCol == $col + 1 || ($data(-protecttitlecolumns) && (($col >= $data(-titlecolumns) && $targetCol < $data(-titlecolumns)) || ($col < $data(-titlecolumns) && $targetCol > $data(-titlecolumns))))} { | > | > | 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 | # if {$targetCol == $col || $targetCol == $col + 1 || ($data(-protecttitlecolumns) && (($col >= $data(-titlecolumns) && $targetCol < $data(-titlecolumns)) || ($col < $data(-titlecolumns) && $targetCol > $data(-titlecolumns))))} { if {[info exists data(targetCol)]} { unset data(targetCol) } configLabel $w -cursor $data(-cursor) $data(hdrTxtFrCanv)$col configure -cursor $data(-cursor) place forget $data(colGap) } else { set data(targetCol) $targetCol set data(master) $master set data(relx) $relx |
︙ | ︙ | |||
3296 3297 3298 3299 3300 3301 3302 | configLabel $w -cursor $data(-cursor) $data(hdrTxtFrCanv)$col configure -cursor $data(-cursor) if {[winfo exists $data(focus)]} { focus $data(focus) } bind [winfo toplevel $win] <Escape> $data(topEscBinding) place forget $data(colGap) | > | > | 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 | configLabel $w -cursor $data(-cursor) $data(hdrTxtFrCanv)$col configure -cursor $data(-cursor) if {[winfo exists $data(focus)]} { focus $data(focus) } bind [winfo toplevel $win] <Escape> $data(topEscBinding) place forget $data(colGap) if {[info exists data(targetCol)]} { unset data(targetCol) } if {[info exists data(X)]} { unset data(X) after cancel $data(afterId) set data(afterId) "" } set data(labelClicked) 0 } |
︙ | ︙ |
Changes to modules/tablelist/scripts/tablelistConfig.tcl.
︙ | ︙ | |||
17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # # Extend some elements of the array configSpecs # lappend configSpecs(-acceptchildcommand) {} lappend configSpecs(-acceptdropcommand) {} lappend configSpecs(-activestyle) frame lappend configSpecs(-autoscan) 1 lappend configSpecs(-collapsecommand) {} lappend configSpecs(-colorizecommand) {} lappend configSpecs(-columns) {} lappend configSpecs(-columntitles) {} lappend configSpecs(-customdragsource) 0 lappend configSpecs(-editendcommand) {} | > | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # # Extend some elements of the array configSpecs # lappend configSpecs(-acceptchildcommand) {} lappend configSpecs(-acceptdropcommand) {} lappend configSpecs(-activestyle) frame lappend configSpecs(-autofinishediting) 0 lappend configSpecs(-autoscan) 1 lappend configSpecs(-collapsecommand) {} lappend configSpecs(-colorizecommand) {} lappend configSpecs(-columns) {} lappend configSpecs(-columntitles) {} lappend configSpecs(-customdragsource) 0 lappend configSpecs(-editendcommand) {} |
︙ | ︙ | |||
688 689 690 691 692 693 694 695 696 697 698 699 700 701 | foreach col $data(arrowColList) { raiseArrow $win $col lappend whichWidths l$col } adjustColumns $win $whichWidths 1 } } -autoscan - -customdragsource - -forceeditendcommand - -instanttoggle - -movablecolumns - -movablerows - -protecttitlecolumns - | > | 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 | foreach col $data(arrowColList) { raiseArrow $win $col lappend whichWidths l$col } adjustColumns $win $whichWidths 1 } } -autofinishediting - -autoscan - -customdragsource - -forceeditendcommand - -instanttoggle - -movablecolumns - -movablerows - -protecttitlecolumns - |
︙ | ︙ |
Changes to modules/tablelist/scripts/tablelistEdit.tcl.
︙ | ︙ | |||
91 92 93 94 95 96 97 | $name-putValueCmd {set [%W cget -textvariable] %T} \ $name-getValueCmd "%W cget -text" \ $name-putTextCmd {set [%W cget -textvariable] %T} \ $name-getTextCmd "%W cget -text" \ $name-putListCmd "" \ $name-getListCmd "" \ $name-selectCmd "" \ | | | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | $name-putValueCmd {set [%W cget -textvariable] %T} \ $name-getValueCmd "%W cget -text" \ $name-putTextCmd {set [%W cget -textvariable] %T} \ $name-getTextCmd "%W cget -text" \ $name-putListCmd "" \ $name-getListCmd "" \ $name-selectCmd "" \ $name-invokeCmd "event generate %W <Button-1>" \ $name-fontOpt -font \ $name-useFormat 1 \ $name-useReqWidth 0 \ $name-usePadX 1 \ $name-isEntryLike 0 \ $name-focusWin %W \ $name-reservedKeys {} \ |
︙ | ︙ | |||
224 225 226 227 228 229 230 | $name-putValueCmd {set [%W cget -textvariable] %T} \ $name-getValueCmd "%W cget -text" \ $name-putTextCmd {set [%W cget -textvariable] %T} \ $name-getTextCmd "%W cget -text" \ $name-putListCmd "" \ $name-getListCmd "" \ $name-selectCmd "" \ | | | 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 | $name-putValueCmd {set [%W cget -textvariable] %T} \ $name-getValueCmd "%W cget -text" \ $name-putTextCmd {set [%W cget -textvariable] %T} \ $name-getTextCmd "%W cget -text" \ $name-putListCmd "" \ $name-getListCmd "" \ $name-selectCmd "" \ $name-invokeCmd "event generate %W <Button-1>" \ $name-fontOpt "" \ $name-useFormat 1 \ $name-useReqWidth 0 \ $name-usePadX 1 \ $name-isEntryLike 0 \ $name-focusWin %W \ $name-reservedKeys {} \ |
︙ | ︙ | |||
1234 1235 1236 1237 1238 1239 1240 | # # The style of the tile entry widget should have -borderwidth # 2 and -padding 1. For those themes that don't honor the # -borderwidth 2 setting, set the padding to another value. # set win [getTablelistPath $w] | | | 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 | # # The style of the tile entry widget should have -borderwidth # 2 and -padding 1. For those themes that don't honor the # -borderwidth 2 setting, set the padding to another value. # set win [getTablelistPath $w] switch -- [getCurrentTheme] { aqua { set padding {0 0 0 -1} } tileqt { set padding 3 } |
︙ | ︙ | |||
1285 1286 1287 1288 1289 1290 1291 | # # The style of the tile entry widget should have -borderwidth # 2 and -padding 1. For those themes that don't honor the # -borderwidth 2 setting, set the padding to another value. # set win [getTablelistPath $w] | | | 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 | # # The style of the tile entry widget should have -borderwidth # 2 and -padding 1. For those themes that don't honor the # -borderwidth 2 setting, set the padding to another value. # set win [getTablelistPath $w] switch -- [getCurrentTheme] { aqua { set padding {0 0 0 -1} } tileqt { set padding 3 } |
︙ | ︙ | |||
1390 1391 1392 1393 1394 1395 1396 | } } # # Adjust the dimensions of the tile checkbutton's parent # and manage the checkbutton, depending on the current theme # | | | 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 | } } # # Adjust the dimensions of the tile checkbutton's parent # and manage the checkbutton, depending on the current theme # switch -- $currentTheme { aqua { [winfo parent $w] configure -width 16 -height 16 place $w -x -3 -y -3 } Aquativo { [winfo parent $w] configure -width 14 -height 14 |
︙ | ︙ | |||
1801 1802 1803 1804 1805 1806 1807 | return "" } catch { eval [strMap {"%W" "$w" "%T" "$text"} \ $editWin($name-putValueCmd)] } | | > | | | | | | | < | < | 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 | return "" } catch { eval [strMap {"%W" "$w" "%T" "$text"} \ $editWin($name-putValueCmd)] } } if {$isMenubtn} { set menu [$w cget -menu] set last [$menu index last] if {[string compare $last "none"] != 0} { set varName [$w cget -textvariable] for {set idx 0} {$idx <= $last} {incr idx} { if {[string compare [$menu type $idx] "radiobutton"] == 0} { $menu entryconfigure $idx -variable $varName } } } } # # Save the edit window's text again |
︙ | ︙ | |||
1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 | } else { focus $comp $comp icursor end $comp selection range 0 end } } } # # Adjust the frame's height # if {$isText} { if {[string compare [$w cget -wrap] "none"] == 0 || $::tk_version < 8.5} { | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 | } else { focus $comp $comp icursor end $comp selection range 0 end } } } if {$data(-autofinishediting)} { # # Make sure that selecting a combobox or menu # entry will automatically finish the editing # switch $class { TCombobox { bind $w <<ComboboxSelected>> \ {+ [tablelist::getTablelistPath %W] finishediting} } ComboBox { ;# BWidget set cmd [$w cget -modifycmd] $w configure -modifycmd [format { eval [list %s] after 0 [list %s finishediting] } $cmd $win] } Combobox { ;# IWidgets or Oakley if {[catch {$w cget -selectioncommand} cmd] == 0} { ;# IWidgets set cmd [$w cget -selectioncommand] $w configure -selectioncommand [format { eval [list %s] after 0 [list %s finishediting] } $cmd $win] } elseif {[catch {$w cget -command} cmd] == 0} { ;# Oakley if {[string length $cmd] == 0} { proc ::tablelist::comboboxCmd {w val} [format { after 0 [list %s finishediting] } $win] } else { proc ::tablelist::comboboxCmd {w val} [format { eval [list %s $w $val] after 0 [list %s finishediting] } $cmd $win] } $w configure -command ::tablelist::comboboxCmd } } Menubutton - TMenubutton { set menu [$w cget -menu] set last [$menu index last] if {[string compare $last "none"] != 0} { for {set idx 0} {$idx <= $last} {incr idx} { if {[regexp {^(command|checkbutton|radiobutton)$} \ [$menu type $idx]]} { set cmd [$menu entrycget $idx -command] $menu entryconfigure $idx -command [format { eval [list %s] after 0 [list %s finishediting] } $cmd $win] } } } } } } # # Adjust the frame's height # if {$isText} { if {[string compare [$w cget -wrap] "none"] == 0 || $::tk_version < 8.5} { |
︙ | ︙ |
Changes to modules/tablelist/scripts/tablelistMove.tcl.
1 2 3 | #============================================================================== # Contains the implementation of the tablelist move and movecolumn subcommands. # | | | 1 2 3 4 5 6 7 8 9 10 11 | #============================================================================== # Contains the implementation of the tablelist move and movecolumn subcommands. # # Copyright (c) 2003-2016 Csaba Nemethi (E-mail: [email protected]) #============================================================================== #------------------------------------------------------------------------------ # tablelist::moveRow # # Processes the 1st form of the tablelist move subcommand. #------------------------------------------------------------------------------ |
︙ | ︙ | |||
27 28 29 30 31 32 33 | set target $data(itemCount) } elseif {$target < 0} { set target 0 } set sourceItem [lindex $data(itemList) $source] set sourceKey [lindex $sourceItem end] | | < < < < < | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | set target $data(itemCount) } elseif {$target < 0} { set target 0 } set sourceItem [lindex $data(itemList) $source] set sourceKey [lindex $sourceItem end] if {$target == [nodeRow $win $sourceKey end] || $target == $source} { return "" } set parentKey $data($sourceKey-parent) set parentEndRow [nodeRow $win $parentKey end] if {($target <= [keyToRow $win $parentKey] || $target > $parentEndRow)} { return -code error \ "cannot move item with index \"$source\" outside its parent" } |
︙ | ︙ | |||
93 94 95 96 97 98 99 | if {$target == [nodeRow $win $sourceKey end] && $withDescendants} { return "" } set sourceParentKey $data($sourceKey-parent) if {[string compare $targetParentKey $sourceParentKey] == 0 && $target == $source && $withDescendants} { | | < | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | if {$target == [nodeRow $win $sourceKey end] && $withDescendants} { return "" } set sourceParentKey $data($sourceKey-parent) if {[string compare $targetParentKey $sourceParentKey] == 0 && $target == $source && $withDescendants} { return "" } set sourceDescCount [descCount $win $sourceKey] if {$target > $source && $target <= $source + $sourceDescCount && $withDescendants} { return -code error \ "cannot move item with index \"$source\"\ |
︙ | ︙ | |||
454 455 456 457 458 459 460 | if {$data(isDisabled)} { return "" } # # Check the indices # | | < < < | 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 | if {$data(isDisabled)} { return "" } # # Check the indices # if {$target == $source || $target == $source + 1} { return "" } if {[winfo viewable $win]} { purgeWidgets $win update idletasks if {![array exists ::tablelist::ns${win}::data]} { |
︙ | ︙ |
Changes to modules/tablelist/scripts/tablelistSort.tcl.
1 2 3 4 5 6 7 8 9 | #============================================================================== # Contains the implementation of the tablelist::sortByColumn and # tablelist::addToSortColumns commands, as well as of the tablelist sort, # sortbycolumn, and sortbycolumnlist subcommands. # # Structure of the module: # - Public procedures related to sorting # - Private procedures implementing the sorting # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #============================================================================== # Contains the implementation of the tablelist::sortByColumn and # tablelist::addToSortColumns commands, as well as of the tablelist sort, # sortbycolumn, and sortbycolumnlist subcommands. # # Structure of the module: # - Public procedures related to sorting # - Private procedures implementing the sorting # # Copyright (c) 2000-2016 Csaba Nemethi (E-mail: [email protected]) #============================================================================== # # Public procedures related to sorting # ==================================== # |
︙ | ︙ |
Changes to modules/tablelist/scripts/tablelistWidget.tcl.
︙ | ︙ | |||
95 96 97 98 99 100 101 102 103 104 105 106 107 108 | array set configSpecs { -acceptchildcommand {acceptChildCommand AcceptChildCommand w} -acceptdropcommand {acceptDropCommand AcceptDropCommand w} -activestyle {activeStyle ActiveStyle w} -arrowcolor {arrowColor ArrowColor w} -arrowdisabledcolor {arrowDisabledColor ArrowDisabledColor w} -arrowstyle {arrowStyle ArrowStyle w} -autoscan {autoScan AutoScan w} -background {background Background b} -bg -background -borderwidth {borderWidth BorderWidth f} -bd -borderwidth -collapsecommand {collapseCommand CollapseCommand w} -colorizecommand {colorizeCommand ColorizeCommand w} | > | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | array set configSpecs { -acceptchildcommand {acceptChildCommand AcceptChildCommand w} -acceptdropcommand {acceptDropCommand AcceptDropCommand w} -activestyle {activeStyle ActiveStyle w} -arrowcolor {arrowColor ArrowColor w} -arrowdisabledcolor {arrowDisabledColor ArrowDisabledColor w} -arrowstyle {arrowStyle ArrowStyle w} -autofinishediting {autoFinishEditing AutoFinishEditing w} -autoscan {autoScan AutoScan w} -background {background Background b} -bg -background -borderwidth {borderWidth BorderWidth f} -bd -borderwidth -collapsecommand {collapseCommand CollapseCommand w} -colorizecommand {colorizeCommand ColorizeCommand w} |
︙ | ︙ | |||
5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 | {$fromLine > $first} {set toLine $fromLine; incr fromLine -50} { $w delete [expr {double($fromLine)}] [expr {double($toLine)}] } set rest [expr {$count % 50}] $w delete [expr {double($first + 1)}] [expr {double($first + $rest + 1)}] if {$last == $data(lastRow)} { # # Work around a peculiarity of the text widget: Hide # the newline character that ends the line preceding # the first deleted one if it was hidden before # set textIdx [expr {double($first)}] foreach tag {elidedRow hiddenRow} { | > > > > > > | 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 | {$fromLine > $first} {set toLine $fromLine; incr fromLine -50} { $w delete [expr {double($fromLine)}] [expr {double($toLine)}] } set rest [expr {$count % 50}] $w delete [expr {double($first + 1)}] [expr {double($first + $rest + 1)}] if {$last == $data(lastRow)} { # # Delete the newline character that ends # the line preceding the first deleted one # $w delete $first.end # # Work around a peculiarity of the text widget: Hide # the newline character that ends the line preceding # the first deleted one if it was hidden before # set textIdx [expr {double($first)}] foreach tag {elidedRow hiddenRow} { |
︙ | ︙ |