From 83be72176d8d2702f1fd4adf62171a5e3811da13 Mon Sep 17 00:00:00 2001 From: treectrl Date: Mon, 22 Jan 2007 22:43:58 +0000 Subject: Update version to 2.2.2. --- configure | 2 +- configure.ac | 4 +- demos/demo.tcl | 4 +- doc/What's New in TkTreeCtrl.html | 8002 ++++++++++++++++++++++++++++++------- doc/treectrl.html | 22 +- doc/treectrl.man | 20 +- doc/treectrl.n | 17 +- shellicon/pkgIndex.tcl | 2 +- 8 files changed, 6555 insertions(+), 1518 deletions(-) diff --git a/configure b/configure index da634a4..1b166b3 100644 --- a/configure +++ b/configure @@ -1772,7 +1772,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -PACKAGE_PATCHLEVEL=2.2 +PACKAGE_PATCHLEVEL=2.2.2 cat >>confdefs.h <<_ACEOF #define PACKAGE_PATCHLEVEL "$PACKAGE_PATCHLEVEL" diff --git a/configure.ac b/configure.ac index b711c13..3576041 100644 --- a/configure.ac +++ b/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.19 2006/11/21 19:27:31 treectrl Exp $ +# RCS: @(#) $Id: configure.ac,v 1.20 2007/01/22 22:43:58 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]) +AC_SUBST([PACKAGE_PATCHLEVEL], [2.2.2]) AC_DEFINE_UNQUOTED(PACKAGE_PATCHLEVEL, "$PACKAGE_PATCHLEVEL") TEA_INIT([3.5]) diff --git a/demos/demo.tcl b/demos/demo.tcl index 7bbf9b8..3bf1f25 100644 --- a/demos/demo.tcl +++ b/demos/demo.tcl @@ -1,8 +1,8 @@ #!/bin/wish84.exe -# RCS: @(#) $Id: demo.tcl,v 1.62 2007/01/21 22:57:24 treectrl Exp $ +# RCS: @(#) $Id: demo.tcl,v 1.63 2007/01/22 22:44:26 treectrl Exp $ -set VERSION 2.2 +set VERSION 2.2.2 package require Tk 8.4 diff --git a/doc/What's New in TkTreeCtrl.html b/doc/What's New in TkTreeCtrl.html index c168628..2df1413 100644 --- a/doc/What's New in TkTreeCtrl.html +++ b/doc/What's New in TkTreeCtrl.html @@ -1,13 +1,23 @@ - + + + + + + + + + + + @@ -19,6 +29,11 @@ + + + + + @@ -31,6 +46,16 @@ + + + + + + + + + + What's New in TkTreeCtrl @@ -43,286 +68,247 @@ -

What's New in TkTreeCtrl 2.2.x

-

Column Configuration Options

+

What's New in TkTreeCtrl 2.2.2

- - - +

Column Configuration Options

- - - +
NewComment
- - + - - - - - - -
-itemjustify
This option allows item styles to to justified separately -from the image/text in the column header. If the value of this -option is unspecified (the default), then item styles are justified -according to the -justify option of the column.
+ -

Item Configuration Options

- + - - + - - + - - + - - + - - - - - - -
New
CommentUsage -ChangedHow -it changed
-buttonThe value of this option can now be the word auto (or any abbreviation) in which case a button is drawn only when the item has at least one child item with its item option -visible set to true.-itemjustify
+ This option allows item styles to be justified separately +from the image/text in the column header. If the value of this +option is unspecified (the default), then item styles are justified +according to the -justify option of the column. -

Style Layout Changes

- + + + + + + + + + + -

Item Descriptions

- + -
-
.t item id "root child end-1" ; # get the second-to-last child of the root item
-
-

Bug Fixes

- -
  • Text elements were requesting some height from the style layout -when displaying an empty string. If you were depending on this -behaviour, it is suggested that you set the height of the text element -using the -minheight or -height style layout options.
  • - -
    -

    What's New in TkTreeCtrl 2.2

    + -

    TreeCtrl Configuration Options

    + -
    Usage +Changed
    - + - + - - + - + - - + - + - @@ -334,6 +320,10 @@ instead + + + +
    How +it changed
    DeprecatedWhat -to use -instead
    -button
    -defaultstyleThe value of this option can now be the word auto (or any abbreviation) in which case a button is drawn only when the item has at least one child item with its item option -visible set to true.The -itemstyle option of a column.
    @@ -342,553 +332,502 @@ instead -

    TreeCtrl Command

    +

    Style Layout Changes

    - - + +
  • The element option -draw of every element type is now deprecated. Use the new style layout option -draw instead.
  • - +
  • The new per-state style layout option -visible +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 +the layout and is not displayed. If none of the elements surrounded by an element with -union layout are visible, then the element with -union layout is not displayed.
  • - + - - +

    Item Descriptions

    - + - +
  • The index argument to the child and sibling modifiers can now take the form "end?-integer?".
  • - + - - +

    Bug Fixes

    - + - +
  • Text elements were requesting some height from the style layout +when displaying an empty string. If you were depending on this +behaviour, it is suggested that you set the height of the text element +using the -minheight or -height style layout options.
  • +
  • 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.
  • +
  • The ellipsis "..." in text elements is now always displayed if +the text element has less space than is needed to display its string. +Previously the ellipsis would disappear when there wasn't room for a +single character plus the ellipsis.
  • +
  • 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.
  • - - + - +
    +

    What's New in TkTreeCtrl 2.2.1

    - +

    Bug Fixes

    - +
    Arguments/Result -ChangedWhat -changed
    contentboxThe 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.
    selection getAccepts 2 optional arguments to allow in-place lindex and lrange queries of -the selection. For example:
    +
    +
    .t item id "root child end-1" ; # get the second-to-last child of the root item
    - - - - - -
    .t selection get 0       ; # the first selected item
    .t selection get end     ; # the last selected item
    .t selection get 1 end-1 ; # every selected item except the first and last
    +
    -
    NewComment
    bboxReturns the bounding box of different areas of the -window. For example:
    +
      - - - - - -
      .t bbox
      +
    • Fixed panic with -xscrollincrement=0, -showheader=yes, no visible items and headers wider than the window.
    • +
    • Fixed the wrong loop variable being used when calculating onscreen columns for an item which resulted in a random crash.
    • -will return the bounds of the window, and:
      +
    • Fixed a crash when invalidating a column of an item if the column wasn't the first in a span.
    • - - - - - -
      .t bbox header
      +
    • Fixed a leak on X11 where the clipping region was not being freed after drawing dotted rectangles.
    • +
    -will return the bounds of the column headers, and:
    +
    +

    What's New in TkTreeCtrl 2.2

    - - - - - -
    .t bbox content
    -will return the same result as the [contentbox] command, and:
    +

    TreeCtrl Configuration Options

    - - - - - -
    .t bbox left
    .t bbox right
    -will return the bounds of the left-locked and right-locked columns.
    - - - - - - - -
    + -

    Column Configuration Options

    - + - + - - - - + - - + - - - + - - + - - + - + + + + + + + + + + + +
    Deprecated
    Renamed
    +
    What +to use +insteadNew -name
    -tag-tags-defaultstyle
    The -itemstyle option of a column.NewComment
    - - -lock +

    TreeCtrl Command

    - 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 none (the default), left or right. - + - - + - - + - - + - - - - - - -
    .t column configure 0 -uniform a
    .t column configure 1 -uniform a
    -will give columns 0 and 1 the same requested width, whichever is the -larger of the two columns. And:
    + - - - - - -
    .t column configure 0 -uniform a -weight 2
    .t column configure 1 -uniform a
    -will give column 0 twice the maximum of the requested widths of columns -0 and 1. And:
    + - - - - - -
    .t column configure 0 -expand yes -weight 2
    .t column configure 1 -expand yes
    -will give column 0 twice the extra space as column 1. + - - + - @@ -902,383 +841,380 @@ will give column 0 twice the extra space as column 1. - - - - - - -
    -itemstyle
    Specifies the name of a style to set in this column for -newly-created items. This option replaces the treectrl option --defaultstyle.
    -uniformArguments/Result +ChangedThese two options -operate the same as the grid geometry manager options of the same name. -For example:
    +
    What +changed
    contentbox
    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.-weight
    + -

    Column Command

    - + - - + - + + + + + + + + + + +
    .t selection get 0       ; # the first selected item
    .t selection get end     ; # the last selected item
    .t selection get 1 end-1 ; # every selected item except the first and last
    - - + - - - - - - - -
    .t column count visible
    + -will return the number of columns whose -visible option is true, and:
    - - - - - -
    .t column count {tag a^b}
    + -will return the number of columns with either tag "a" or "b", but not -both. - + - - + - - + - - + - + - + + + + + + + + + + +
    .t bbox
    - - +will return the bounds of the window, and:
    - - + + + + + + + + + + +
    .t bbox header
    - - +will return the bounds of the column headers, and:
    - - + + + + + + + + + + +
    .t bbox content
    - - - - - - -
    selection get
    Accepts 2 optional arguments to allow in-place lindex and lrange queries of +the selection. For example:
    -
    Arguments/Result -ChangedWhat -changed
    column countTakes an optional column-description argument; the -result is -the number of columns that match the column description. For example:
    +
    New
    Comment
    New
    Comment
    column tag addbboxColumns can have -a list of tag names. Previously only a single tag was allowed. The tail column no -longer has the word "tail" as a tag, but it is still referred to by the -word "tail" in column descriptions. Returns the bounding box of different areas of the +window. For example:
    -
    column tag expr
    column tag names
    column tag remove
    +will return the same result as the [contentbox] command, and:
    -

    Item Configuration Options

    - + + + + + + + + + + +
    .t bbox left
    .t bbox right
    - - +will return the bounds of the left-locked and right-locked columns. - - + - - + + + + + + + + + + + +
    NewComment
    - -tags - 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 -item descriptions to operate on multiple items. More information can be -found in the man page. +

    Column Configuration Options

    - + - - - - - - -
    -

    Item Command

    - - - - + - @@ -1292,114 +1228,90 @@ found in the man page. - - - - + - + - + - -will return the number of items that are displayed (i.e., those -whose ancestors are all expanded, -visible options are true, etc), and:
    - - - - - -
    .t item count {tag a^b}
    + -will return the number of items with either tag "a" or "b", but not -both. - + - - + - @@ -1413,60 +1325,41 @@ specifies an initial list of tags for created items. - - - - - - + - -will return a list of ids for all items, and:
    - - - - - -
    .t item id "$item children"
    + -will return the ids of every child of an item. @@ -1480,50 +1373,44 @@ will return the ids of every child of an item. - - - - - - + - - + - - + - @@ -1537,106 +1424,93 @@ an item. - - - - + - - + - + - - - - - - - -
    .t item tag add all {a b c}
    -will add tags "a", "b" and "c" to every item.
    + - - + - - + - + + + + + + + + + + +
    .t column configure 0 -uniform a -weight 2
    .t column configure 1 -uniform a
    - - +will give column 0 twice the maximum of the requested widths of columns +0 and 1. And:
    - - - - - - -
    .t item tag names all
    -returns every tag assigned to any item. + - - + - - - - - - - -
    .t item tag remove all {b c}
    -will remove tags "b" and "c" from any items that have them. + - @@ -1807,6 +1674,11 @@ will remove tags "b" and "c" from any items that have them. + + + + +
    Arguments/Result -ChangedWhat -changedRenamed
    -
    item countNew +nameTakes an optional item-description argument; the result -is the number of items that match the item description. For example:
    - - - - - -
    .t item count visible
    +
    -tag
    item create-tagsNew option -tags -specifies an initial list of tags for created items.
    item id
    Returns a list of item ids if the item description -matches multiple items. For example:
    - - - - - -
    .t item id all
    +
    NewComment
    New
    Comment
    -lock
    item descendantsThis 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 none (the default), left or right.Returns the ids of the children, grandchildren, etc of -an item.
    item enabled
    Gets and sets the enabled -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.
    -itemstyle
    Specifies the name of a style to set in this column for +newly-created items. This option replaces the treectrl option +-defaultstyle.item tag addAdd tags to items. For example:
    +
    -uniform
    item tag exprThese two options +operate the same as the grid geometry manager options of the same name. +For example:
    -
    Evaluate a tag expression against items. For example:
    @@ -1648,62 +1522,65 @@ will add tags "a", "b" and "c" to every item.
    -
    .t item tag expr $item a
    - - - - + + + + + +
    .t column configure 0 -uniform a
    .t column configure 1 -uniform a
    -returns 1 if an item has tag "a". Also:
    - - - - - -
    .t item tag expr $item a||b
    +will give columns 0 and 1 the same requested width, whichever is the +larger of the two columns. And:
    -returns 1 if  an item has tag "a" or "b".
    item tag namesReturn a list of tag names assigned to items. For -example:
    @@ -1715,87 +1592,77 @@ example:
    -
    .t item tag names $item
    + + + + + +
    .t column configure 0 -expand yes -weight 2
    .t column configure 1 -expand yes
    -returns the tag list for an item, and:
    +will give column 0 twice the extra space as column 1.
    item tag removeRemove tags from items. For example:
    +
    -weight
    @@ -1815,141 +1687,1781 @@ will remove tags "b" and "c" from any items that have them. -

    Text Element

    +

    Column Command

    -The new option -underline -draws an underline under a single character of the displayed text.
    -

    Window Element

    + -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 -to display a child of a borderless frame widget, and setting the new -clip option of the -window element to TRUE. So if your program displays a canvas widget in -a window element, you would change this code:
    -
    set canvas [canvas .t.canvas ...]
    .t item element configure $item $column myElement -window $canvas
    + -to this:
    -
    set frame [frame .t.clip -borderwidth 0]
    set canvas [canvas $frame.canvas ...]
    .t item element configure $item $column myElement -window $frame -clip yes
    + -The -clip -option tells the window element to manage the geometry of both the -window -widget (i.e, -the frame) and its first child widget (i.e., the canvas). In this case, -the frame widget is kept sized and positioned so that it is never -out-of-bounds. You can see this in the "Big List" and "Firefox Privacy" -demos. -

    Item Descriptions

    -New keywords were added to allow multiple items to be specified by an item description:
    + - - + -
  • The keyword range -operates like the item -range command: - - - - - -
    .t item id "range $first $last"
    -
  • + - -New modifiers were added to match multiple items: - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Arguments/Result +ChangedWhat +changed
    column countTakes an optional column-description argument; the +result is +the number of columns that match the column description. For example:
    + + + + + + + + + + + + + + + + + + + + + +
    .t column count visible
    + + + + + + + + + + + +will return the number of columns whose -visible option is true, and:
    + + + + + + + + + + + + + + + + + + + + + +
    .t column count {tag a^b}
    + + + + + + + + + + + +will return the number of columns with either tag "a" or "b", but not +both.
    NewComment
    column tag addColumns can have +a list of tag names. Previously only a single tag was allowed. The tail column no +longer has the word "tail" as a tag, but it is still referred to by the +word "tail" in column descriptions.
    column tag expr
    column tag names
    column tag remove
    + + + + + + + + + + + +

    Item Configuration Options

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NewComment
    -tagsTags are textual labels applied to items to group them. +Tags +do not affect the appearance or behaviour of items. Tags can be used in +item descriptions to operate on multiple items. More information can be +found in the man page.
    + + + + + + + + + + + +

    Item Command

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Arguments/Result +ChangedWhat +changed
    item countTakes an optional item-description argument; the result +is the number of items that match the item description. For example:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item count visible
    + + + + + + + + + + + +will return the number of items that are displayed (i.e., those +whose ancestors are all expanded, -visible options are true, etc), and:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item count {tag a^b}
    + + + + + + + + + + + +will return the number of items with either tag "a" or "b", but not +both.
    item createNew option -tags +specifies an initial list of tags for created items.
    item idReturns a list of item ids if the item description +matches multiple items. For example:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item id all
    + + + + + + + + + + + +will return a list of ids for all items, and:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item id "$item children"
    + + + + + + + + + + + +will return the ids of every child of an item.
    NewComment
    item descendantsReturns the ids of the children, grandchildren, etc of +an item.
    item enabledGets and sets the enabled +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.
    item tag addAdd tags to items. For example:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item tag add all {a b c}
    + + + + + + + + + + + +will add tags "a", "b" and "c" to every item.
    + + + + + + + + + + + +
    item tag exprEvaluate a tag expression against items. For example:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item tag expr $item a
    + + + + + + + + + + + +returns 1 if an item has tag "a". Also:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item tag expr $item a||b
    + + + + + + + + + + + +returns 1 if  an item has tag "a" or "b".
    item tag namesReturn a list of tag names assigned to items. For +example:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item tag names $item
    + + + + + + + + + + + +returns the tag list for an item, and:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item tag names all
    + + + + + + + + + + + +returns every tag assigned to any item.
    item tag removeRemove tags from items. For example:
    + + + + + + + + + + + + + + + + + + + + + +
    .t item tag remove all {b c}
    + + + + + + + + + + + +will remove tags "b" and "c" from any items that have them.
    + + + + + + + + + + + +

    Text Element

    + + + + + + + + + + + +The new option -underline +draws an underline under a single character of the displayed text.
    + + + + + + + + + + + +

    Window Element

    + + + + + + + + + + + +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 +to display a child of a borderless frame widget, and setting the new -clip option of the +window element to TRUE. So if your program displays a canvas widget in +a window element, you would change this code:
    + + + + + + + + + + + +
    set canvas [canvas .t.canvas ...]
    .t item element configure $item $column myElement -window $canvas
    + + + + + + + + + + + +to this:
    + + + + + + + + + + + +
    set frame [frame .t.clip -borderwidth 0]
    set canvas [canvas $frame.canvas ...]
    .t item element configure $item $column myElement -window $frame -clip yes
    + + + + + + + + + + + +The -clip +option tells the window element to manage the geometry of both the -window +widget (i.e, +the frame) and its first child widget (i.e., the canvas). In this case, +the frame widget is kept sized and positioned so that it is never +out-of-bounds. You can see this in the "Big List" and "Firefox Privacy" +demos. +

    Item Descriptions

    + + + + + + + + + + + +New keywords were added to allow multiple items to be specified by an item description:
    + + + + + + + + + + + + + + + + + + + + + + + +New modifiers were added to match multiple items: + + + + + + + + + + + + +New qualifiers were added to refine which items are matched:
    + + + + + + + + + + + + + + + + + + + + + + + +
    +
    .t item id "all depth 2" ; # find all items that are children of the root's children
    .t item id "depth 2" ; # ditto
    + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + +The keyword all +may now be followed by a list of qualifiers. For example:
    + + + + + + + + + + + +
    .t item id "all !visible state myState" ; # find every item that is not displayed with user-defined state "myState"
    + + + + + + + + + + + +A list of qualifiers may be used as the first part of an item +description. This gives the same result as  "all" followed by +the +qualifiers. For example:
    + + + + + + + + + + + +
    +
    .t item id "!visible state myState" ; # same as the previous example
    + + + + + + + + + + + +
    + + + + + + + + + + + +

    Column Descriptions

    + + + + + + + + + + + +New keywords list +and +range can be used to +match multiple columns.
    + + + + + + + + + + + +New qualifiers state, +tag, !tail and !visible can be used +to restrict which columns are specified.
    + + + + + + + + + + + +The keyword all +may be followed by a list of qualifiers.
    + + + + + + + + + + + +A list of qualifiers may used as the first part of a column +description. This gives the same result as  "all" followed by +the +qualifiers. +

    Multi-item and multi-column commands

    + + + + + + + + + + + +Many commands can now operate on multiple items and/or columns by using +the improved item descriptions and column descriptions mentioned above. +For example: +
    +
    .t column configure "range 1 10" -tags {a b c}
    .t column delete "tag a"
    .t column id "tag {a || b}"
    .t item configure "depth 1" -button yes
    .t item count visible
    .t item element configure "root children" all elem1 -text "Hello"
    .t item id "visible"
    .t item image all all image1
    .t item style map "tag {a && !b}" "tag c" style2 {style1.elem1 style2.elem2}
    .t item style set all all style1
    .t item state forcolumn all all state1
    .t item state set "tag current" ~mouseover
    .t item remove "state selected"
    .t item span "range 1 10" "range 10 last" 2
    .t item text "root children" all "Hello"
    + + + + + + + + + + + +
    + + + + + + + + + + + +

    Demo Changes

    + + + + + + + + + + + + + + + + + + + + + + + +

    Misc Changes

    + + + + + + + + + + + + + + + + + + + + + + + +

    Bug Fixes

    + + + + + + + + + + + + + + + + + + + + + + + +
    +

    What's New in TkTreeCtrl 2.1.1

    + + + + + + + + + + + +

    Column Command

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Arguments/Result +ChangedWhat +changed
    column delete
    + + + + + + + + + + + +
    Added an optional second argument allowing a range of +columns to be deleted.
    + + + + + + + + + + + +

    Bug Fixes

    + + + + + + + + + + + + + + + + + + + + + + + +

    Other Changes

    + + + + + + + + + + + + + + + + + + + + + + + +

    Demo Changes

    + + + + + + + + + + + + + + + + + + + + + + + +
    +

    What's New in TkTreeCtrl 2.1

    + + + + + + + + + + + +This version should be backwards compatible with 2.0, except for a few +obscure changes.
    + + + + + + + + + + + +

    TreeCtrl Configuration Options

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NewComment
    -itemwidth
    + + + + + + + + + + + +
    -itemwidthequalDeprecates the column -widthhack option.
    -itemwidthmultipleDeprecates the column -stepwidth option.
    + + + + + + + + + + + +

    Column Configuration Options

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DeprecatedWhat +to use +instead
    -stepwidthtreectrl's -itemwidthmultiple option
    -widthhacktreectrl's -itemwidthequal option
    + + + + + + + + + + + +

    Element Command

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NewComment
    element perstateLike [item element perstate].
    + + + + + + + + + + + +

    Item Configuration Options

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NewComment
    -heightOverrides the treectrl's -itemheight option
    + + + + + + + + + + + +

    Item Command

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DeprecatedWhat +to use +instead
    item element actualitem element perstate
    item complexitem element configure
    Behaviour +ChangedWhat +changed
    item bboxNo longer returns an error if no style had been +assigned to the column.
    item state forcolumnNo longer returns an error if no style had been +assigned to the column.
    item style setDoes nothing when replacing a style with the same +style. +Previously the old style was freed before assigning the new style, +losing the element config info if the old and new styles were the same.
    + + + + + + + + + + + + Potential +incompatibility
    Arguments/Result +ChangedWhat +changed
    item createAdded options: -count -height, -nextsibling, -open, +-parent, +-prevsibling, and -returnid. Multiple items may be created with one +call using the -count option.
    item element configureMultiple elements in multiple columns may be configured +with +a single call. Use '+' to separate elements, and ',' to separate +columns. See the docs.
    item style setWhen no column is specified, returns a list of one +style name +per column. Previously, the list would have less values than the number +of columns if no styles had ever been assigned to the rightmost +column(s).
    + + + + + + + + + + + + Potential +incompatibility
    item textWhen no column is specified, returns a list of one +string per column.
    NewComment
    item imagePartner to the [item text] command.
    item element perstateNot really new, just renamed from [item element actual] +to +better describe what it does. Accepts a new optional argument which +specifies the state to use when determining the value of the per-state +option.
    + + + + + + + + + + + +
    + + + + + + + + + + + +The following options no longer return a default value if the per-state +option itself does not have a value specified:
    + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + +
    • bitmap -foreground, -background
    • + + + + + + + + + + + +
    • border -relief
    • + + + + + + + + + + + +
    • text -fill, -font
    • + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + Potential +incompatibility
    item spanA style may now be displayed over multiple adjacent +columns.
    + + + + + + + + + + + +
    + + + + + + + + + + + +

    Notify +Command

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NewComment
    notify unbind
    + + + + + + + + + + + +
    Let's you unbind all scripts from an object with one +call.
    + + + + + + + + + + + +

    Style Layout Changes

    + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + +
    1. If a -detach element had a fixed width larger than the +other elements.
    2. + + + + + + + + + + + +
    3. If an element had -iexpand x specified as well as +-maxwidth, leaving some space available.
    4. + + + + + + + + + + + +
    + + + + + + + + + + + +

    Element Changes

    + + + + + + + + + + + + + + + + + + + + + + + +

    Event Changes

    + + + + + + + + + + + + + + + + + + + + + + + +

    Other Changes

    + + + + + + + + + + + + + + + + + + + + + + + +

    Demo Changes

    + + + + + + + + + + + + + + + + + + + + + + + +
    +

    What's New in TkTreeCtrl 2.0

    + + + + + + + + + + + +

    TreeCtrl Configuration Options

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + -
  • The modifier children -operates like the item -children command: - - - - - -
    .t item id "$item children"
    -
  • + -
  • The modifier descendants -operates like the item -descendants command: - - - - - -
    .t item id "$item descendants"
    -
  • + - -New qualifiers were added to refine which items are matched:
    + - - -
    -
    .t item id "all depth 2" ; # find all items that are children of the root's children
    .t item id "depth 2" ; # ditto
    +
    - + - - -
  • The qualifier state -matches items that have certain states set (or not set if '!' is used): - - - - - -
    .t item id "first state {selected !open}" ; # find the first item that is selected and collapsed
    +
  • - -
  • The qualifier tag -matches items that meet a tag expression: - - - - - -
    .t item id "$item children tag {a && !b}" ; # find children of $item that have tag "a" but not tag "b"
    +
  • - - + -
    -The keyword all -may now be followed by a list of qualifiers. For example:
    + -
    .t item id "all !visible state myState" ; # find every item that is not displayed with user-defined state "myState"
    + -A list of qualifiers may be used as the first part of an item -description. This gives the same result as  "all" followed by -the -qualifiers. For example:
    -
    -
    .t item id "!visible state myState" ; # same as the previous example
    +
    - -

    Column Descriptions

    + -New keywords list -and -range can be used to -match multiple columns.
    -New qualifiers state, -tag, !tail and !visible can be used -to restrict which columns are specified.
    + -The keyword all -may be followed by a list of qualifiers.
    -A list of qualifiers may used as the first part of a column -description. This gives the same result as  "all" followed by -the -qualifiers. -

    Multi-item and multi-column commands

    + -Many commands can now operate on multiple items and/or columns by using -the improved item descriptions and column descriptions mentioned above. -For example: -
    -
    .t column configure "range 1 10" -tags {a b c}
    .t column delete "tag a"
    .t column id "tag {a || b}"
    .t item configure "depth 1" -button yes
    .t item count visible
    .t item element configure "root children" all elem1 -text "Hello"
    .t item id "visible"
    .t item image all all image1
    .t item style map "tag {a && !b}" "tag c" style2 {style1.elem1 style2.elem2}
    .t item style set all all style1
    .t item state forcolumn all all state1
    .t item state set "tag current" ~mouseover
    .t item remove "state selected"
    .t item span "range 1 10" "range 10 last" 2
    .t item text "root children" all "Hello"
    -
    + -

    Demo Changes

    + - -
  • New demo "Column Locking". Demonstrates columns that do not -scroll horizontally.
  • -
  • The "Big List" and "Firefox Privacy" demos were changed to -use the new -clip -option of window elements.
  • + - -

    Misc Changes

    + - -
  • The -itembackground -colors for a column are now extended below any items in the simplest -(and most typical) case where the treectrl's -orient option is -vertical and -wrap -option is unspecified. The height of the rows is determined by the -itemheight or -minitemheight -options; if neither of those options is specified, then -itembackground -colors are not drawn below the items.
  • -
  • If -itembackground -colors are specified for the tail column, then they are drawn.
  • + -
  • Memory usage is improved, especially for text elements.
  • + - -

    Bug Fixes

    + - -
  • item delete: -Stopped items possibly being double-deleted by nested calls through <Selection> -and <ItemDelete> -binding scripts.
  • -
  • item expanditem collapseitem toggle: Only -operate on items which exist when the command is called, not any that -might get created by <Expand> -or <Collapse> -binding scripts.
  • + -
  • Fixed a crash and a redisplay problem when a master element -was -configured with a -textvariable and the associated variable changed.
  • -
  • When a style with window elements spanned more than one -column, the window might be improperly sized during display updates.
  • + -
  • Windows in window elements would not always be unmapped if -columns or items were hidden, or if the span of an item-column changed.
  • -
  • The disclosure triangles (i.e., the item buttons) are drawn -without a white background under OSX.
  • + + - + -
    -

    What's New in TkTreeCtrl 2.1.1

    -

    Column Command

    + + -
    ReplacedWhat +to use +instead
    -openbuttonimage-buttonimage
    -closedbuttonimage-buttonimage
    -openbuttonbitmap-buttonbitmap
    -closedbuttonbitmap-buttonbitmap
    Usage +ChangedHow +it changed
    -backgroundmodeThe values "index" and "visindex" are deprecated. The +value +"order" should be used instead of "index", and +"ordervisible" should be used instead of "visindex". This brings +agreement with the new "item order" command which replaces the "item +index" command.
    -treecolumnThis used to be any integer value which may or may not +have +corresponded to an actual column. Now the value must be a valid column +description, or an empty string to indicate no column should display +buttons/lines.
    New
    -backgroundimage
    -columnprefix
    - + + + + + + + @@ -2485,244 +7642,220 @@ without a white background under OSX. - + - - + - - - - + - - - - - - - -
    Arguments/Result -Changed-columnresizemodeWhat -changed
    column delete
    +
    Added an optional second argument allowing a range of -columns to be deleted.
    + -itemprefix -

    Bug Fixes

    - -

    Other Changes

    + -minitemheight - -

    Demo Changes

    + -usetheme - + + + + + + + + + + + + -
    -

    What's New in TkTreeCtrl 2.1

    -This version should be backwards compatible with 2.0, except for a few -obscure changes.
    +

    TreeCtrl Commands

    + -

    TreeCtrl Configuration Options

    @@ -2736,70 +7869,67 @@ obscure changes.
    - + - - New + - Comment - + Deprecated - - -itemwidth + What +to use +instead -
    - + - @@ -2813,252 +7943,221 @@ obscure changes.
    - -itemwidthequal - - Deprecates the column -widthhack option. + compare - + item compare - - -itemwidthmultiple + - Deprecates the column -stepwidth option. - + - - - - - - - -

    Column Configuration Options

    + index - - + - - + - + - - + - - + - - + - - + - - - - - - - -
    item id
    Deprecated
    What -to use -instead
    numcolumns-stepwidthtreectrl's -itemwidthmultiple optioncolumn count
    -widthhacktreectrl's -itemwidthequal option
    + numitems -

    Element Command

    + item count - - + - - + - - + - - + - @@ -3072,6 +8171,16 @@ instead + + + + + + + + + + @@ -3085,169 +8194,151 @@ instead -

    Item Configuration Options

    - -
    New
    Comment
    range
    element perstateitem rangeLike [item element perstate].
    +

    Column Configuration Options

    - +
    - - + - - + - - + - - + - - - - - - -
    New
    Comment
    -heightRemovedOverrides the treectrl's -itemheight option
    What +to use +instead
    -

    Item Command

    + - + - - + - + - - + - - + - @@ -3261,280 +8352,250 @@ instead - + - - + - - + - - + - - + - + - + - - + - - + - - - Potential -incompatibility - + - - + - + - - + - - + - - + - - + - - + + + - + - + + - @@ -3548,249 +8609,209 @@ incompatibility - + - + - - + - - + - - + - - + + - - -
    -The following options no longer return a default value if the per-state -option itself does not have a value specified:
    + - - - - - - -
  • border -relief
  • -
  • text -fill, -font
  • + - - - - - - - Potential -incompatibility + - + - - + - + - - - - - - - -
    -relief
    -
    DeprecatedWhat -to use -instead
    -stateitem element actualitem element perstate
    item complex-sunkenitem element configure
    -state
    Behaviour -Changed
    What -changed
    item bboxRenamed
    -
    No longer returns an error if no style had been -assigned to the column.
    New +nameitem state forcolumnNo longer returns an error if no style had been -assigned to the column.
    item style setDoes nothing when replacing a style with the same -style. -Previously the old style was freed before assigning the new style, -losing the element config info if the old and new styles were the same.
    +
    -arrowpad
    -arrowpadx
    Arguments/Result -Changed
    What -changed
    Usage +Changeditem createAdded options: -count -height, -nextsibling, -open, --parent, --prevsibling, and -returnid. Multiple items may be created with one -call using the -count option.How +it changed
    item element configureMultiple elements in multiple columns may be configured -with -a single call. Use '+' to separate elements, and ',' to separate -columns. See the docs.
    -backgrounditem style setThis is now a per-state option. See COLUMNS in the help +file +for valid state names.When no column is specified, returns a list of one -style name -per column. Previously, the list would have less values than the number -of columns if no styles had ever been assigned to the rightmost -column(s).
    - Potential -incompatibility
    item textNew
    -
    When no column is specified, returns a list of one -string per column.
    NewComment
    item image
    Partner to the [item text] command.
    -arrowbitmap
    -
    item element perstateNot really new, just renamed from [item element actual] -to -better describe what it does. Accepts a new optional argument which -specifies the state to use when determining the value of the per-state -option.
    +
    -arrowimage
    item span
    A style may now be displayed over multiple adjacent -columns.
    -
    -arrowpady
    + -

    Notify -Command

    - + - @@ -3804,369 +8825,330 @@ Command - + - - + - - - - + - - - - - - - -
    New-maxwidthComment
    notify unbind
    +
    Let's you unbind all scripts from an object with one -call.
    + -resize -

    Style Layout Changes

    - -
      + -
    1. If a -detach element had a fixed width larger than the -other elements.
    2. -
    3. If an element had -iexpand x specified as well as --maxwidth, leaving some space available.
    4. + -state -
    -

    Element Changes

    + - + -textlines -

    Event Changes

    - + -

    Other Changes

    - +

    Column Command

    -

    Demo Changes

    - -

    Event Changes

    + - +

    filelist-bindings.tcl:

    -

    Library Script Changes

    -

    filelist-bindings.tcl:

    +