From cf436c12cdc13de9e5e3bbe5b8d546e3a14169e5 Mon Sep 17 00:00:00 2001 From: treectrl Date: Sun, 19 Nov 2006 00:56:19 +0000 Subject: Added 2 optional arguments to [selection get] to perform lindex- and lrange-like operations on the sorted list of selected items. --- doc/What's New in TkTreeCtrl.html | 11105 ++++-------------------------------- doc/treectrl.html | 23 +- doc/treectrl.man | 19 +- doc/treectrl.n | 23 +- 4 files changed, 1228 insertions(+), 9942 deletions(-) diff --git a/doc/What's New in TkTreeCtrl.html b/doc/What's New in TkTreeCtrl.html index 4fc90c5..df316b7 100644 --- a/doc/What's New in TkTreeCtrl.html +++ b/doc/What's New in TkTreeCtrl.html @@ -1,10817 +1,2080 @@ - + + + What's New in TkTreeCtrl + + + +

What's New in TkTreeCtrl 2.2

+

TreeCtrl Configuration Options

+ + - - - - - - - - - - - + + + + + + + + + +
DeprecatedWhat +to use +instead
-defaultstyleThe -itemstyle option of a column.
+

TreeCtrl Command

- + + - - - - - - - - - - - - - - - - - - - - What's New in TkTreeCtrl - - + + - + + + + + + + + + -

What's New in TkTreeCtrl 2.2

+ + +
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 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
+
+

Column Configuration Options

+ + + + + + + -

TreeCtrl Configuration Options

+ + + + + + + + + + + + + + + + + + - -
Renamed
+
New +name
-tag-tags
NewComment
-lockThis 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.
-itemstyleSpecifies the name of a style to set in this column for +newly-created items. This option replaces the treectrl option +-defaultstyle.
-uniformThese two options +operate the same as the grid geometry manager options of the same name. +For example:
- +
.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.
+ + + + - + +
-weight
+

Column Command

+ + + + + + + + - - - - - - + + + + + + - + + + + + + + + + + + + +
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.
Deprecated
NewComment
What -to use -insteadcolumn 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-defaultstyle
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.
The -itemstyle option of a column.
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. + + + New + Comment + + + item descendants -

TreeCtrl Command

+ 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. + + + item tag add + Add 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 expr + Evaluate 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 names + Return 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. + - + + + +
.t item tag remove all {b c}
+will remove tags "b" and "c" from any items that have them. + + +
item tag removeRemove tags from items. For example:
-
+

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
- Arguments/Result -Changed +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

- contentbox + +

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
Renamed
+
-itemwidth
+
-itemwidthequalDeprecates the column -widthhack option.
-itemwidthmultipleDeprecates the column -stepwidth option.
+

Column Configuration Options

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

Element Command

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

Item Configuration Options

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

Item Command

+ + + + + + - + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + + + + + Potential +incompatibility + + + + + + +
DeprecatedWhat +to use +instead
-tags
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 createNewAdded 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
Comment
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
  • +
-
item spanA style may now be displayed over multiple adjacent +columns.
+
+

Notify +Command

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

Style Layout Changes

- 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. + +
    +
  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

+ - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + - - - - - - - - - - -
.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:
+ + + + + + + + + + +
Specifies the name of a style to set in this column for -newly-created items. This option replaces the treectrl option --defaultstyle.
ReplacedWhat +to use +instead
-openbuttonimage-buttonimage
-closedbuttonimage-buttonimage
-openbuttonbitmap-buttonbitmap
-closedbuttonbitmap-buttonbitmap-uniform
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.
-treecolumnThese two options -operate the same as the grid geometry manager options of the same name. -For example:
- +
This 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
-columnresizemode
-itemprefix
-minitemheight
-usetheme
- - - - - - - - - - -
.t column configure 0 -uniform a -weight 2
.t column configure 1 -uniform a
+

TreeCtrl Commands

+ + + + + + + + + -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
+ + + + + + + + + +
DeprecatedWhat +to use +instead
compareitem compare
indexitem id
numcolumnscolumn count
numitemsitem count
rangeitem range
-will give column 0 twice the extra space as column 1. +

Column Configuration Options

+ + + + + + + + + + + + + + + + - + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - -
RemovedWhat +to use +instead
-relief
+
-state
-sunken-state
Renamed
+
New +name
-arrowpad-arrowpadx
Usage +ChangedHow +it changed
-backgroundThis is now a per-state option. See COLUMNS in the help +file +for valid state names.-weight
New
+
-arrowbitmap
+
-arrowimage
-arrowpady
-maxwidth
- + + + + -resize + + + + -state + + -

Column Command

+ + -textlines + + + + +

Column Command

+ + + + + -
DeprecatedWhat +to use +instead
+ + + + + + + + + + + + + + + + + + + + + - - - - - - -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. + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + +
column indexcolumn id
Arguments/Result +ChangedWhat +changed
column configure
-
A column description of "all" is allowed if at least +one +option-value pair is given.
+
column createThe result is a unique identifier. Previously the +result was +an +index in the list of columns.
column deleteA column description of "all" is allowed.
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
+
NewComment
column compare
column countreplaces "numcolumns"
column dragconfigureNew
column dragcget
column idreplaces "column index"
column listComment
column order
+

Item Command

+ + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + - + + + + + +
RemovedWhat +to use +instead
item indexitem order
NewComment
item comparereplaces "compare"
item countreplaces "numitems"
item idreplaces "index"column tag add
item orderreplaces "item index"
Columns 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.
item rangereplaces "range"
+

Notify Command

+ + + + + + + + - - - - - + + + + + - - + + + + + + + +
Arguments/Result +ChangedWhat +changed
notify generate
+
Added optional percentsCommand +argument
notify installOld syntax (supported but deprecated):
+
notify install event eventName
+
notify install detail eventName detail
+New syntax:
+
notify install <eventName>
+
notify install <eventName-detail>
+
column tag exprnotify linkageOld syntax (supported but deprecated):
+
+
notify linkage eventName
+
notify linkage eventName detail
+
+New syntax:
+
+
notify linkage <eventName>
+
notify linkage <eventName-detail>
+
+
notify uninstallsee notify +install +above
+

Style Layout Options

+ - - + + + + + + + + +Keep in mind that -union elements are not affected by -iexpand xy, +since the size of a -union element is determined by the elements it +surrounds. + + + + + + + + + + + + + + + - - + + + + + + + + + + + - - + + + + + + +
Usage +ChangedHow +it changed
-iexpandTwo new flags "x' and "y" are allowed. Previously, only +the +-ipadx and -ipady padding could be expanded by this option. The new xy +flags expand the display area of the element, not the padding. To +update your code, you will probably want to change this:
+
+
$T style layout $S $E -iexpand we
+
+to this:
+
+
$T style layout $S $E -iexpand x
-
column tag names
New
+
-height
-maxheight
-maxwidth
-minheight
-minwidth
-stickycolumn tag remove
-width
+

Element Changes

+ +

Event Changes

+ +

Library Script Changes

+

filelist-bindings.tcl:

+ +

treectrl.tcl:

+ +

Other Changes

+ +

Demo Changes

+