Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Bumped version to 2.2.8.

  • Loading branch information...
commit bde0bf3dedd790439b4e89a7086be55dbb3ad160 1 parent b2f3f0d
treectrl authored
View
2,103 configure
507 additions, 1,596 deletions not shown
View
4 configure.ac
@@ -3,7 +3,7 @@ dnl This file is an input file used by the GNU "autoconf" program to
dnl generate the file "configure", which is run during Tcl installation
dnl to configure the system for the local environment.
#
-# RCS: @(#) $Id: configure.ac,v 1.27 2008/07/21 18:49:31 treectrl Exp $
+# RCS: @(#) $Id: configure.ac,v 1.28 2008/10/08 19:48:50 treectrl Exp $
#-----------------------------------------------------------------------
# Sample configure.in for Tcl Extensions.
@@ -20,7 +20,7 @@ dnl to configure the system for the local environment.
#-----------------------------------------------------------------------
AC_INIT([treectrl], [2.2])
-AC_SUBST([PACKAGE_PATCHLEVEL], [2.2.7])
+AC_SUBST([PACKAGE_PATCHLEVEL], [2.2.8])
AC_DEFINE_UNQUOTED(PACKAGE_PATCHLEVEL, "$PACKAGE_PATCHLEVEL")
TEA_INIT([3.5])
View
4 demos/demo.tcl
@@ -1,8 +1,8 @@
#!/bin/wish84.exe
-# RCS: @(#) $Id: demo.tcl,v 1.70 2008/07/30 19:31:00 treectrl Exp $
+# RCS: @(#) $Id: demo.tcl,v 1.71 2008/10/08 19:48:50 treectrl Exp $
-set VERSION 2.2.7
+set VERSION 2.2.8
package require Tk 8.4
View
1,098 doc/What's New in TkTreeCtrl.html
@@ -1,73 +1,102 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
-<!-- $Id: What's\040New\040in\040TkTreeCtrl.html,v 1.31 2008/07/21 18:49:34 treectrl Exp $ -->
+<!-- $Id: What's\040New\040in\040TkTreeCtrl.html,v 1.32 2008/10/08 19:48:50 treectrl Exp $ -->
+
+
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+
+
+
<title>What's New in TkTreeCtrl</title>
<meta content="Tim Baker" name="author">
</head>
<body>
+<h1>What's New in TkTreeCtrl 2.2.8</h1>
+<h2>Bug Fixes</h2>
+<ul>
+ <li>Fixed a bug that caused a panic in Range_ItemUnderPoint. Thanks to SF.net user 'nobody' who found the problem.</li>
+ <li>Fixed reading an uninitialized variable when calculating column header layout.</li>
+</ul>
+<hr style="width: 100%; height: 2px;">
+<br>
<h1>What's New in TkTreeCtrl 2.2.7</h1>
+
<h2>TreeCtrl Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>-showrootchildbuttons</td>
+
<td>Similar to <span style="font-weight: bold;">-showrootlines</span>,
this boolean option controls the display of expand/collapse buttons
next to child items of the root item.<br>
+
</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Indentation change/fix</h2>
+
<div style="margin-left: 40px;">Previously with <span style="font-weight: bold;">-showroot</span>=0, <span style="font-weight: bold;">-showbuttons</span>=0, and <span style="font-weight: bold;">-showrootlines</span>=0
there was still an extra level of indentation displayed to the left of
the root's children.&nbsp;The only way to remove all indentation
@@ -78,53 +107,71 @@
option it is now possible to remove all indentation from the root's
children without affecting the display of buttons/lines on deeper items.</div>
+
<h2>Library Script Changes</h2>
+
<h3 style="margin-left: 40px;">treectrl.tcl:</h3>
+
<ul>
+
<li>The &lt;Left&gt; and &lt;Right&gt; key bindings will collapse and expand the active item if&nbsp;<span style="font-weight: bold;">-orient</span>=vertical and <span style="font-weight: bold;">-wrap</span>={}. &nbsp;Otherwise the previous behavior of setting the active item to an adjacent item is used.</li>
+
</ul>
+
<h2>Bug Fixes</h2>
+
<ul>
+
<li>Fixed corruption/crash with ".t column configure -foo" with no option value if -foo is an invalid option.</li>
+
</ul>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.2.6</h1>
+
<h2>Bug Fixes</h2>
+
<ul>
+
<li>Fixed ".t item bbox" returning bogus values when asking for
the
bounds of a column or element in a list with many items (integer
overflow).</li>
+
<li>Fixed a segfault on Win64 machines when the system theme
changed.</li>
+
<li>Fixed a panic on Win64 when drawing the the marquee and
drag-image dotted rectangles due to a too-small struct.</li>
+
</ul>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.2.5</h1>
+
<p>
Issues regarding the incompatibility of 8.4 built TkTreeCtrl working in
8.5
@@ -133,19 +180,23 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
</p>
+
<p>
A Windows DLL manifest is now embedded to address native theme drawing
issues.
</p>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.2.4</h1>
+
<h2>NOTE regarding Tk version compatibility</h2>
+
<p>
Under Mac OSX some internal changes to Tk 8.4.15 and Tk 8.4.17 result
in
@@ -153,51 +204,66 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
</p>
+
<ul>
+
<li>This version of TkTreeCtrl built for Tk 8.4.15 will work
with Tk 8.4.15 and 8.4.16 only<span style="font-weight: bold;">
</span>(under Mac OSX).</li>
+
<li>This version of TkTreeCtrl built for Tk 8.4.17 will work
with Tk 8.4.17 only (under Mac OSX).</li>
+
</ul>
+
<h2>TreeCtrl Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>-columntagexpr<br>
+
-itemtagexpr</td>
+
<td>These boolean options can be used to turn off tag
expressions in column descriptions and item descriptions.
&nbsp;When the value of these options is false the
@@ -207,156 +273,200 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
arbitrary tags applied to columns or items.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Bug Fixes</h2>
+
<ul>
+
<li>Fixed partially-exposed transparent photo images not being
redrawn when scrolling under X11.</li>
+
<li>Fixed potential crash with Windows theme if the system
theme was changed.</li>
+
<li>Fixed "<span style="font-family: monospace;">.t
item cget -button</span>" always returning 0 when the value of
this option wasn't <span style="font-weight: bold;">auto</span>.</li>
+
<li>Fixed a drawing issue under Mac OSX where parts of the
window would not be erased properly under Tk 8.4.15+ and Tk 8.5a7+.</li>
+
<li>Fixed crashes under Mac OSX with Tk 8.4.17 and Tk 8.5.0.</li>
+
<li>Fixed an old bug caused by a MSVC compiler optimization bug
that
stopped items being redrawn when the only change in appearance was the
expand/collapse button needing to be redrawn.</li>
+
</ul>
+
<h2>Misc Changes</h2>
+
<ul>
+
<li>Changed the&nbsp;<span style="font-weight: bold;">item
sort</span> code to be a "stable" sort. This means that the
pre-sort order of two equal items is used as a tie-breaker.</li>
+
</ul>
+
<h2>Demo Changes</h2>
+
<ul>
+
<li>Added "Increase Font Size" and "Decrease Font Size" menu
commands. &nbsp;Also the Console font is not changed when running
under Tk 8.5.</li>
+
</ul>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.2.3</h1>
+
<h2>Build Changes</h2>
+
<ul>
+
<li>When building with configure on Windows the
--enable-shellicon option will run configure in the shellicon/
subdirectory.</li>
+
<li>'make dist' will create the source distribution
tktreectrl-VERSION.tar.gz.</li>
+
<li>'make dist-win' will create the Windows binary distribution
tktreectrl-VERSION-win32.zip.</li>
+
</ul>
+
<h2>Bug Fixes</h2>
+
<ul>
+
<li>Fixed flickering when redrawing the borders with
"-doublebuffer window" when the widget was resized or parts of it were
exposed.</li>
+
<li>Fixed undefined reference to&nbsp;vsnprintf when
building with the MS compiler under Windows; it should be _vsnprintf.</li>
+
<li>Fixed a symbol conflict with Python 2.5 on ELF-based
systems which also defines a symbol "Ellipsis".</li>
+
</ul>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.2.2</h1>
+
<h2>Column Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>-itemjustify</td>
+
<td>This option allows item styles to be justified
separately
from the&nbsp;image/text in the column header. If the value of this
@@ -365,68 +475,88 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
option of the column.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Item Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">Usage
Changed</th>
+
<th style="background-color: rgb(204, 255, 255);">How
it changed</th>
+
</tr>
+
<tr>
+
<td>-button</td>
+
<td>The value of this option can now be the word <span style="font-weight: bold;">auto</span> (or any
abbreviation) in which case a button is drawn only when the item has at
least one child item with its item option <span style="font-weight: bold;">-visible</span> set to true.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Style Layout Changes</h2>
+
<ul>
+
<li>The element option <span style="font-weight: bold;">-draw</span>
of every element type is now deprecated. Use the new style layout
option <span style="font-weight: bold;">-draw</span>
instead.</li>
+
<li>The new per-state style layout option <span style="font-weight: bold;">-visible</span>
controls the visibility of an element. When the value of this option
evaluates to false for a given state, the element consumes no space in
@@ -436,35 +566,45 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
displayed.</li>
+
</ul>
+
<h2>Item Descriptions</h2>
+
<ul>
+
<li>The index argument to the <span style="font-weight: bold;">child</span> and <span style="font-weight: bold;">sibling</span> modifiers
can now take the form "end?-integer?".</li>
+
</ul>
+
<div style="margin-left: 40px;">
<pre>.t item id "root child end-1" ; # get the second-to-last child of the root item<br></pre>
+
</div>
+
<h2>Bug Fixes</h2>
+
<ul>
+
<li>Text elements were requesting some height from the style
layout
when displaying an empty string. If you were depending on this
@@ -474,12 +614,14 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
style layout options.</li>
+
<li>Window elements might not be scrolled along with the rest
of the
list if the area needing to be redrawn due to scrolling was obscurred
by other windows. This could only happen on Win32.</li>
+
<li>The ellipsis "..." in text elements is now always displayed
if
the text element has less space than is needed to display its string.
@@ -487,470 +629,622 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
single character plus the ellipsis.</li>
+
<li>Fixed a layout bug with multi-line text elements when the
unsqueezed element did not require a multi-line layout but the squeezed
element did.</li>
+
</ul>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.2.1</h1>
+
<h2>Bug Fixes</h2>
+
<ul>
+
<li>Fixed panic with -xscrollincrement=0, -showheader=yes, no
visible items and headers wider than the window.</li>
+
<li>Fixed the wrong loop variable being used when calculating
onscreen columns for an item which resulted in a random crash.</li>
+
<li>Fixed a crash when invalidating a column of an item if the
column wasn't the first in a span.</li>
+
<li>Fixed a leak on X11 where the clipping region was not being
freed after drawing dotted rectangles.</li>
+
</ul>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.2</h1>
+
<h2>TreeCtrl Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">Deprecated</th>
+
<th style="background-color: rgb(204, 255, 255);">What
to use
instead</th>
+
</tr>
+
<tr>
+
<td>-defaultstyle</td>
+
<td>The -itemstyle option of a column.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>TreeCtrl Command</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">Arguments/Result
Changed</th>
+
<th style="background-color: rgb(204, 255, 255);">What
changed</th>
+
</tr>
+
<tr>
+
<td>contentbox</td>
+
<td>The return value is an empty string if the
content area is totally obscurred by column headers, borders, and/or
locked columns. Typically this will only happen if the window is too
small.</td>
+
</tr>
+
<tr>
+
<td>selection get</td>
+
<td>Accepts 2 optional arguments to allow in-place <span style="font-weight: bold;">lindex</span> and <span style="font-weight: bold;">lrange</span> queries of
the selection. For example:<br>
+
+
<pre>.t selection get 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; # the first selected item<br>.t selection get end&nbsp;&nbsp;&nbsp;&nbsp; ; # the last selected item<br>.t selection get 1 end-1 ; # every selected item except the first and last</pre>
+
</td>
+
</tr>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>bbox</td>
+
<td>Returns the bounding box of different areas of the
window. For example:<br>
+
+
<pre style="margin-left: 40px;">.t bbox</pre>
+
will return the bounds of the window, and:<br>
+
+
<pre style="margin-left: 40px;">.t bbox header</pre>
+
will return the bounds of the column headers, and:<br>
+
+
<pre style="margin-left: 40px;">.t bbox content</pre>
+
will return the same result as the [contentbox] command, and:<br>
+
+
<pre style="margin-left: 40px;">.t bbox left<br>.t bbox right</pre>
+
will return the bounds of the left-locked and right-locked columns.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Column Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">Renamed<br>
+
</th>
+
<th style="background-color: rgb(204, 255, 255);">New
name</th>
+
</tr>
+
<tr>
+
<td>-tag</td>
+
<td>-tags</td>
+
</tr>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>-lock</td>
+
<td>This option allows columns to stick to the left or
right edge
of the window. Locked columns can scroll vertically but not
horizontally. Valid values for this option are <span style="font-weight: bold;">none</span> (the default), <span style="font-weight: bold;">left</span> or <span style="font-weight: bold;">right</span>.</td>
+
</tr>
+
<tr>
+
<td>-itemstyle</td>
+
<td>Specifies the name of a style to set in this column for
newly-created items. This option replaces the treectrl option
-defaultstyle.</td>
+
</tr>
+
<tr>
+
<td>-uniform</td>
+
<td colspan="1" rowspan="2">These two options
operate the same as the grid geometry manager options of the same name.
For example:<br>
+
+
<pre style="margin-left: 40px;">.t column configure&nbsp;0 -uniform a<br>.t column configure 1 -uniform a</pre>
+
will give columns 0 and 1 the same requested width, whichever is the
larger of the two columns. And:<br>
+
+
<pre style="margin-left: 40px;">.t column configure 0 -uniform a -weight 2<br>.t column configure 1 -uniform a</pre>
+
will give column 0 twice the maximum of the requested widths of columns
0 and 1. And:<br>
+
+
<pre style="margin-left: 40px;">.t column configure 0 -expand yes -weight 2<br>.t column configure 1 -expand yes</pre>
+
will give column 0 twice the extra space as column 1.</td>
+
</tr>
+
<tr>
+
<td>-weight</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Column Command</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">Arguments/Result
Changed</th>
+
<th style="background-color: rgb(204, 255, 255);">What
changed</th>
+
</tr>
+
<tr>
+
<td>column count</td>
+
<td>Takes an optional column-description argument; the
result is
the number of columns that match the column description. For example:<br>
+
+
<pre>.t column count visible</pre>
+
will return the number of columns whose -visible option is true, and:<br>
+
+
<pre>.t column count {tag a^b}</pre>
+
will return the number of columns with either tag "a" or "b", but not
both.</td>
+
</tr>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>column tag add</td>
+
<td colspan="1" rowspan="4">Columns can have
a list of tag names. Previously only a single tag was allowed. The <span style="font-weight: bold;">tail</span> column no
longer has the word "tail" as a tag, but it is still referred to by the
word "tail" in column descriptions. </td>
+
</tr>
+
<tr>
+
<td>column tag expr</td>
+
</tr>
+
<tr>
+
<td>column tag names</td>
+
</tr>
+
<tr>
+
<td>column tag remove</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Item Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>-tags</td>
+
<td>Tags are textual labels applied to items to group them.
Tags
do not affect the appearance or behaviour of items. Tags can be used in
@@ -958,255 +1252,342 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
found in the <a href="treectrl.html#item_tags">man page</a>.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Item Command</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">Arguments/Result
Changed</th>
+
<th style="background-color: rgb(204, 255, 255);">What
changed</th>
+
</tr>
+
<tr>
+
<td>item count</td>
+
<td>Takes an optional item-description argument; the result
is the number of items that match the item description. For example:<br>
+
+
<pre>.t item count visible</pre>
+
will return the number of items that are displayed (i.e., those
whose ancestors are all expanded, -visible options are true, etc), and:<br>
+
+
<pre>.t item count {tag a^b}</pre>
+
will return the number of items with either tag "a" or "b", but not
both.</td>
+
</tr>
+
<tr>
+
<td>item create</td>
+
<td>New option <span style="font-weight: bold;">-tags</span>
specifies an initial list of tags for created items.</td>
+
</tr>
+
<tr>
+
<td>item id</td>
+
<td>Returns a list of item ids if the item description
matches multiple items. For example:<br>
+
+
<pre>.t item id all</pre>
+
will return a list of ids for all items, and:<br>
+
+
<pre>.t item id "$item children"</pre>
+
will return the ids of every child of an item.</td>
+
</tr>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>item descendants</td>
+
<td>Returns the ids of the children, grandchildren, etc of
an item.</td>
+
</tr>
+
<tr>
+
<td>item enabled</td>
+
<td>Gets and sets the <span style="font-weight: bold;">enabled</span>
state for items. All items are enabled when first created. Disabled
items cannot be selected, and are ignored by the default key-navigation
and mouse bindings.</td>
+
</tr>
+
<tr>
+
<td>item tag add</td>
+
<td>Add tags to items. For example:<br>
+
+
<pre>.t item tag add all {a b c}</pre>
+
will add tags "a", "b" and "c" to every item.<br>
+
</td>
+
</tr>
+
<tr>
+
<td>item tag expr</td>
+
<td>Evaluate a tag expression against items. For example:<br>
+
+
<pre>.t item tag expr $item a</pre>
+
returns 1 if&nbsp;an item has tag "a". Also:<br>
+
+
<pre>.t item tag expr $item a||b</pre>
+
returns 1 if &nbsp;an item has tag "a" or "b".</td>
+
</tr>
+
<tr>
+
<td>item tag names</td>
+
<td>Return a list of tag names assigned to items. For
example:<br>
+
+
<pre>.t item tag names $item</pre>
+
returns the tag list for an item, and:<br>
+
+
<pre>.t item tag names all</pre>
+
returns every tag assigned to any item.</td>
+
</tr>
+
<tr>
+
<td>item tag remove</td>
+
<td>Remove tags from items. For example:<br>
+
+
<pre>.t item tag remove all {b c}</pre>
+
will remove tags "b" and "c" from any items that have them.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Text Element</h2>
+
The new option <span style="font-weight: bold;">-underline</span>
draws an underline under a single character of the displayed text.<br>
+
<h2>Window Element</h2>
+
Window elements can now be properly clipped so they don't draw over the
column header, borders, or outside the bounds of the item
columns they occupy. This is accomplished by making the window you want
@@ -1215,15 +1596,19 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
a window element, you would change this code:<br>
+
<pre style="margin-left: 40px;">set canvas [canvas .t.canvas ...]<br>.t item element configure $item $column myElement -window $canvas</pre>
+
to this:<br>
+
<pre style="margin-left: 40px;">set frame [frame .t.clip -borderwidth 0]<br>set canvas [canvas $frame.canvas ...]<br>.t item element configure $item $column myElement -window $frame -clip yes</pre>
+
The <span style="font-weight: bold;">-clip</span>
option tells the window element to manage the geometry of both the <span style="font-weight: bold;">-window</span>
widget (i.e,
@@ -1234,165 +1619,213 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
<h2>Item Descriptions</h2>
+
New keywords were added to allow multiple items to be specified by an <a href="treectrl.html#item_description">item description</a>:<br>
+
<ul>
+
<li>The keyword <span style="font-weight: bold;">list</span>
specifies a list of other item descriptions:
+
<pre>.t item id "list [list $a $b $c]"</pre>
+
</li>
+
<li>The keyword <span style="font-weight: bold;">range</span>
operates like the <span style="font-weight: bold;">item
range</span> command:
+
<pre>.t item id "range $first $last"</pre>
+
</li>
+
</ul>
+
New modifiers were added to match multiple items:
<ul>
+
<li>The modifier <span style="font-weight: bold;">ancestors</span>
operates like the <span style="font-weight: bold;">item
ancestors</span> command:
+
<pre>.t item id "$item ancestors"</pre>
+
</li>
+
<li>The modifier <span style="font-weight: bold;">children</span>
operates like the <span style="font-weight: bold;">item
children</span> command:
+
<pre>.t item id "$item children"</pre>
+
</li>
+
<li>The modifier <span style="font-weight: bold;">descendants</span>
operates like the <span style="font-weight: bold;">item
descendants</span> command:
+
<pre>.t item id "$item descendants"</pre>
+
</li>
+
</ul>
+
New qualifiers were added to refine which items are matched:<br>
+
<ul>
+
<li>The qualifier <span style="font-weight: bold;">depth</span>
matches items at a given depth in the heirarchy:</li>
+
</ul>
+
<div style="margin-left: 40px;">
<pre>.t item id "all depth 2" ; # find all items that are children of the root's children<br>.t item id "depth 2" ; # ditto</pre>
+
</div>
+
<ul>
+
<li>The qualifier <span style="font-weight: bold;">!visible</span>
matches items that are not displayed:
+
<pre>.t item id "first !visible" ; # find the first item that is not displayed</pre>
+
</li>
+
<li>The qualifier <span style="font-weight: bold;">state</span>
matches items that have certain states set (or not set if '!' is used):
+
<pre>.t item id "first state&nbsp;{selected !open}" ; # find the first item that is selected and collapsed</pre>
+
</li>
+
<li>The qualifier <span style="font-weight: bold;">tag</span>
matches items that meet a tag expression:
+
<pre>.t item id "$item children tag {a &amp;&amp; !b}" ; # find children of $item that have tag "a" but not tag "b"</pre>
+
</li>
+
</ul>
+
<br>
+
The keyword <span style="font-weight: bold;">all</span>
may now be followed by a list of qualifiers. For example:<br>
+
<pre style="margin-left: 40px;">.t item id "all !visible state myState" ; # find every item that is not displayed with user-defined state "myState"</pre>
+
A list of qualifiers may be used as the first part of an item
description. This gives the same result as&nbsp; "all" followed by
the
qualifiers. For example:<br>
+
<div style="margin-left: 40px;">
<pre>.t item id "!visible state myState" ; # same as the previous example</pre>
+
</div>
+
<h2>Column Descriptions</h2>
+
New keywords <span style="font-weight: bold;">list</span>
and
<span style="font-weight: bold;">range</span><span style="font-weight: bold;"></span> can be used to
match multiple columns.<br>
+
New qualifiers <span style="font-weight: bold;">state</span>,
<span style="font-weight: bold;">tag</span>, <span style="font-weight: bold;">!tail</span> and <span style="font-weight: bold;">!visible</span> can be used
to restrict which columns are specified.<br>
+
The keyword <span style="font-weight: bold;">all</span>
may be followed by a list of qualifiers.<br>
+
A list of qualifiers may used as the first part of a column
description. This gives the same result as&nbsp; "all" followed by
the
@@ -1400,6 +1833,7 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
<h2>Multi-item and multi-column commands</h2>
+
Many commands can now operate on multiple items and/or columns by using
the improved item descriptions and column descriptions mentioned above.
For example:
@@ -1407,42 +1841,53 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
<pre>.t column configure "range 1 10" -tags {a b c}<br>.t column delete "tag a"<br>.t column id "tag {a || b}"<br>.t item configure "depth 1" -button yes<br>.t item count visible<br>.t item element configure "root children" all elem1 -text "Hello"<br>.t item id "visible"<br>.t item image all all image1<br>.t item style map "tag {a &amp;&amp; !b}" "tag c" style2 {style1.elem1 style2.elem2}<br>.t item style set all all style1<br>.t item state forcolumn all all state1<br>.t item state set "tag current" ~mouseover<br>.t item remove "state selected"<br>.t item span "range 1 10" "range 10 last" 2<br>.t item text "root children" all "Hello"</pre>
+
</div>
+
<h2>Demo Changes</h2>
+
<ul>
+
<li>New demo "My Computer". Demonstrates disabled items used as
headers.</li>
+
<li>New demo "Column Locking". Demonstrates columns that do not
scroll horizontally.</li>
+
<li>The "Big List" and "Firefox Privacy" demos were changed to
use the new <span style="font-weight: bold;">-clip</span>
option of window elements.</li>
+
</ul>
+
<h2>Misc Changes</h2>
+
<ul>
+
<li>The tail column header will not be drawn if the tail
column's <span style="font-weight: bold;">-visible</span>
option is false. This can look nicer with some themes.</li>
+
<li>The <span style="font-weight: bold;">-itembackground</span>
colors for a column are now extended below any items in the simplest
(and most typical) case where the treectrl's <span style="font-weight: bold;">-orient</span> option is
@@ -1452,34 +1897,42 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
colors are not drawn below the items.</li>
+
<li>If <span style="font-weight: bold;">-itembackground</span>
colors are specified for the tail column, then they are drawn.</li>
+
<li>Memory usage is improved, especially for text elements.</li>
+
</ul>
+
<h2>Bug Fixes</h2>
+
<ul>
+
<li><span style="font-weight: bold;">item create</span>:
Fixed bug where <span style="font-weight: bold;">-nextsibling</span>
and <span style="font-weight: bold;">-prevsibling</span>
options could specify an orphan item.</li>
+
<li><span style="font-weight: bold;">item delete</span>:
Stopped items possibly being double-deleted by nested calls through <span style="font-weight: bold;">&lt;Selection&gt;</span>
and <span style="font-weight: bold;">&lt;ItemDelete&gt;</span>
binding scripts.</li>
+
<li><span style="font-weight: bold;">item expand</span>,&nbsp;<span style="font-weight: bold;">item collapse</span>,&nbsp;<span style="font-weight: bold;">item toggle</span>: Only
operate on items which exist when the command is called, not any that
might get created by <span style="font-weight: bold;">&lt;Expand&gt;</span>
@@ -1487,114 +1940,146 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
binding scripts.</li>
+
<li>Fixed a crash and a redisplay problem when a master element
was
configured with a -textvariable and the associated variable changed.</li>
+
<li>When a style with window elements spanned more than one
column, the window might be improperly sized during display updates.</li>
+
<li>Windows in window elements would not always be unmapped if
columns or items were hidden, or if the span of an item-column changed.</li>
+
<li>The disclosure triangles (i.e., the item buttons) are drawn
without a white background under OSX.</li>
+
</ul>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.1.1</h1>
+
<h2>Column Command</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">Arguments/Result
Changed</th>
+
<th style="background-color: rgb(204, 255, 255);">What
changed</th>
+
</tr>
+
<tr>
+
<td>column delete<br>
+
</td>
+
<td>Added an optional second argument allowing a range of
columns to be deleted.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Bug Fixes</h2>
+
<ul>
+
<li>The <span style="font-weight: bold;">item sort</span>
command
will be much faster in many cases. There was a silly error in the
pivot-finding code of quicksort which resulted in the slow-down.</li>
+
<li>A&nbsp;column header will be redisplayed if an image in
the header is altered.</li>
+
<li>Fixed bus errors on some Unix systems due to alignment
problems.</li>
+
</ul>
+
<h2>Other Changes</h2>
+
<ul>
+
<li>The Tk caret is now positioned over the active item when it
changes. The Tk caret is used for the Magnifier accessibility
application and IME on Windows, as well as XIM under Unix.</li>
+
<li>Improved the appearance of the column headers under OSX.</li>
+
<li>Added &lt;MouseWheel&gt; support to OSX.</li>
+
<li>Changing the -visible option of an item could be slow if
any
items were selected. That is because non-visible items may not be part
@@ -1603,388 +2088,509 @@ <h3 style="margin-left: 40px;">treectrl.tcl:</h3>
the next display update.</li>
+
</ul>
+
<h2>Demo Changes</h2>
+
<ul>
+
<li>New demo "Column Spanning". Demonstrates a 100-column list
where styles span from 1 to 20 columns each.</li>
+
<li>The&nbsp;<span style="font-weight: bold;">loupe</span>
command (which performs screen capture to an image) is now implemented
on Windows and OSX thanks to Jeff Hobbs.</li>
+
<li>The screen-magnifier image now resizes with the "loupe"
window.</li>
+
</ul>
+
<hr style="width: 100%; height: 2px;">
<h1>What's New in TkTreeCtrl 2.1</h1>
+
This version should be backwards compatible with 2.0, except for a few
obscure changes.<br>
+
<h2>TreeCtrl Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">New</th>
+
<th style="background-color: rgb(204, 255, 255);">Comment</th>
+
</tr>
+
<tr>
+
<td>-itemwidth</td>
+
<td><br>
+
</td>
+
</tr>
+
<tr>
+
<td>-itemwidthequal</td>
+
<td>Deprecates the column -widthhack option.</td>
+
</tr>
+
<tr>
+
<td>-itemwidthmultiple</td>
+
<td>Deprecates the column -stepwidth option.</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Column Configuration Options</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+
<tbody>
+
<tr>
+
<th style="background-color: rgb(255, 255, 204); width: 50%;">Deprecated</th>
+
<th style="background-color: rgb(204, 255, 255);">What
to use
instead</th>
+
</tr>
+
<tr>
+
<td>-stepwidth</td>
+
<td>treectrl's -itemwidthmultiple option</td>
+
</tr>
+
<tr>
+
<td>-widthhack</td>
+
<td>treectrl's -itemwidthequal option</td>
+
</tr>
+
+
</tbody>
</table>
+
<h2>Element Command</h2>
+
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">