Username: Password:

List Plug-in Scripting Reference



Overview

The list plugin implements scrollable lists and outlines in a variety of styles.

The default script for lists allows for containment in a border.

Messages: nodemove, nodechange, nodeselect, nodeactive

Nodemove is sent when the position of the list changes.

Nodechange is sent when the items in the list change.

Nodeselect is sent when the select state of the list changes.

Nodeactive is sent when the active state of the list changes.

 

Commands and Functions



activeget, activeset

active TF = activeget(node name $)
activeset(node name $, active TF)

Turn on or off the active state of the entire list.

Inactive lists are drawn in gray, items are not selectable.

Individual items can be activated or deactivated with the itemactiveset property
See: itemactiveset, itemactiveget



alignget, alignset

text align # = alignget(node name $)
alignset(node name $, text align #)

Get or set the alignment of the entire list.

Values are -1 to 1 for left, center, and right.



boundsget, boundsset

rectangle $ = boundsget(node name $)
boundsset(node name $, rectangle $)

Get or set the boundary rectangle of the object.



clipopenget, clipopenset

clip open TF = clipopenget(node name $)
clipopenset(node name $, clip open TF)

Get or set the clipopen property. If true, the list does not clip its children.

This is useful for children that need to extend outside the list.




counticons, deleteicon, inserticon

total icons # = counticons(node name $)
deleteicon(node name $, icon index #)
inserticon(node name $, after index #)

These routines create, delete, and count icons for the given list.

In general, you should insert and name an icon, import data for it, and set the icon name of a list item to display.
See: itemiconset, itemiconget


countitems

total items # = countitems(node name $)

Returns the total number of items in the list.


cursorset

cursorset(node name $, icon name $)

Any list bar icon can be turned into a cursor as needed.

This allows a list to store and use custom cursors.



dataget, dataset

data $ = dataget(node name $)
dataset(node name $, data $)

Insert tabbed text data into a list for outline view. This is very helpful for XML.

Dataget returns the tabbed data with a return at the end of each line.


deleteitem

deleteitem(node name $, item index #)

Deletes the given item.



enabledget, enabledset

enabled TF = enabledget(node name $)
enabledset(node name $, enabled TF)

Get or set the enabled attribute of the list. If enabled, the list inverts selected items.
See: itemselectget, itemselectset, selectget, selectset, multiselectget, multiselectset



fillcolorget, fillcolorset

fill color $ = fillcolorget(node name $)
fillcolorset(node name $, fill color $)

Get or set the fillcolor for the list.



fillget, fillset

fill TF = fillget(node name $)
fillset(node name $, fill TF)

Get or set if the list is filled or transparent.



fontnameget, fontnameset

font name $ = fontnameget(node name $)
fontnameset(node name $, font name $)

Get or set the font name for the entire list.



fontsizeget, fontsizeset

font size # = fontsizeget(node name $)
fontsizeset(node name $, font size #)

Get or set the font size for the entire list.





fullget, fullset, infoget, infoset

full $ = fullget(node name $)
fullset(node name $, full $)
info $ = infoget(node name $)
infoset(node name $, info $)

Get or set XML data that describes all the settings for this node.

The fullget and fullset routines have a header element with appropriate namespaces, infoget and infoset are an XML snippet for access as a property. Example:

mynode.info.title = "new title"



handlesget, handlesset

handles TF = handlesget(node name $)
handlesset(node name $, handles TF)

Turn on or off dragable handles for reshaping the node.

This routine is used by the system tool palettes for manual positioning.
See: markersget, markersset, partget, partset




hittest, hittestall, hittestarrow

hit item index # = hittest(node name $, hor #, ver #)
hit item index # = hittestall(node name $, hor #, ver #)
hit item index # = hittestarrow(node name $, hor #, ver #)

Returns the index of the item clicked on, or zero if the mouse is not in an item.

Hittestall tests items even if they are inactive.

Hittestarrow tests for points in the open and close outlining arrows.



iconbinaryget, iconbinaryset

binary data $ = iconbinaryget(node name $, icon index #)
iconbinaryset(node name $, icon index #, binary data $)

Get or set binary data for any icon.

This routine is useful for serialization into xml and trading icons between nodes.



iconexport, iconimport

iconexport(node name $, icon index #, file name $)
iconimport(node name $, icon index #, file name $)

Import and export icon pictures. These are small 16 X 16 bitmapped images.



iconnameget, iconnameset

icon name $ = iconnameget(node name $, icon index #)
iconnameset(node name $, icon index #, icon name $)

Get and set the name of the icon. This should match the icon name in the item.


insertitem

insertitem(node name $, after index #)

Inserts a new item after the given position. Use zero to insert at the beginning of the list.
See: itemnameset



itemactiveget, itemactiveset

active TF = itemactiveget(node name $, item index #)
itemactiveset(node name $, item index #, active TF)

Get or set the active property of an item. Inactive items are drawn in gray and are not selectable.

The entire list can be activated or deactivated with the activeset property.
See: activeset, activeget



itembounds, itemextraspacebounds

the bounds $ = itembounds(node name $, item index #)
extra space bounds $ = itemextraspacebounds(node name $, item index #)

This returns the bounds of any list item, or the bounds of the extra space at the bottom of the list item.
See: itemextraspaceset, itemextraspaceget



itemdividinglineget, itemdividinglineset

dividing line TF = itemdividinglineget(node name $, item index #)
itemdividinglineset(node name $, item index #, dividing line TF)

Get or set the dividing line property of a list item. Dividing lines cannot be selected.





itemextrasaveget, itemextrasaveset, itemextraspaceget, itemextraspaceset

extra save # = itemextrasaveget(node name $, item index #)
itemextrasaveset(node name $, item index #, extra save #)
extra space # = itemextraspaceget(node name $, item index #)
itemextraspaceset(node name $, item index #, extra space #)

This gets and sets the extra space at the bottom of any item.

Use this for expand lists to make them open and close.

Use the extrasaveset and extrasaveget functions to remember the desired value of extra space for that item.

Negative values will unify the extra space and the item visually.



itemfillcolorget, itemfillcolorset

color $ = itemfillcolorget(node name $, item index #)
itemfillcolorset(node name $, item index #, color $)

Get or set the fill color of an individual item in the list.
See: fillcolorget, fillcolorset



itemfontstyleget, itemfontstyleset

font style name $ = itemfontstyleget(node name $, item index #)
itemfontstyleset(node name $, item index #, font style name $)

Get or set the font style of an item. Available styles include: plain, bold, italic, and underline.



itemhiliteget, itemhiliteset

item hilite $ = itemhiliteget(node name $, item index #)
itemhiliteset(node name $, item index #, item hilite $)

Get or set the hilite for each item, which draws a special border on the item showing mouse control.

Hilites include: thin, thick, gray, thick gray, dark, light, very dark, very light, and none.



itemiconget, itemiconset

icon name $ = itemiconget(node name $, item index #)
itemiconset(node name $, item index #, icon name $)

Get or set the icon name for a list item. List icons are small 16 X 16 bitmapped images.
See: inserticon, deleteicon, counticons



itemisopenget, itemisopenset

open TF = itemisopenget(node name $, item index #)
itemisopenset(node name $, item index #, open TF)

Get or set the open attribute. If an item is open in an outline list, the subitems are displayed.



itemnameget, itemnameset

item name $ = itemnameget(node name $, item index #)
itemnameset(node name $, item index #, item name $)

Get or set the item name for a list item. Generally you will inset an item and then name it.
See: insertitem



itemrefget, itemrefset

item ref # = itemrefget(node name $, item index #)
itemrefset(node name $, item index #, item ref #)

Get or set the item ref, which is a user definable number that sticks to the list.



itemselectget, itemselectset

select TF = itemselectget(node name $, item index #)
itemselectset(node name $, item index #, select TF)

Get or set the selected attribute. Selected items appear inverted.

Selecting a new item will deselect the old one, unless multiselect is true.
See: multiselectset, multiselectget, enabledget, enabledset, selectget, selectset



itemtabcountget, itemtabcountset

tab count # = itemtabcountget(node name $, item index #)
itemtabcountset(node name $, item index #, tab count #)

Get or set the tabcount attribute. This shows up in tabbed or outline style lists.

In tabbed lists, the tab count controls how many tabs are used from the left.

In outline lists, the number of tabs should only increase or decrease by 1 from item to item for outlining.



itemtextcolorget, itemtextcolorset

color $ = itemtextcolorget(node name $, item index #)
itemtextcolorset(node name $, item index #, color $)

Get or set the text color of an item.



leadingget, leadingset

text leading # = leadingget(node name $)
leadingset(node name $, text leading #)

Get or set the leading, which is extra pixels between items.



linecolorget, linecolorset

line color $ = linecolorget(node name $)
linecolorset(node name $, line color $)

Get or set the color of the line around the list.



linesizeget, linesizeset

linesize # = linesizeget(node name $)
linesizeset(node name $, linesize #)

Get or set the linesize, which is the border around the list.
See: linecolorset, linecolorget



markersget, markersset

markers TF = markersget(node name $)
markersset(node name $, markers TF)

Turn on or off the node outline to show selection.

This routine is used by the system tool palettes to show that a node is selected.
See: handlesset, handlesget, partget, partset


moveitem

moveitem(node name $, item index #, new index #)

Moves the item to a new position.



multiselectget, multiselectset

multiselect TF = multiselectget(node name $)
multiselectset(node name $, multiselect TF)

If true, multiple items can be selected, if false, only one item at a time can be selected.
See: selectset, selectget, itemselectset, itemselectget, enabledget, enabledset



partget, partset

part # = partget(node name $, hor #, ver #)
partset(node name $, hor #, ver #, part #)

Get or set the points for an individual handle.
See: markersget, markersset, handlesset, handlesget


reset

reset(node name $)

Resets the height of the list to include all items. This is useful for scrolling.



selectcolorget, selectcolorset

select color $ = selectcolorget(node name $)
selectcolorset(node name $, select color $)

Get and set the color of the selected list item. Use black to invert the list item and icon.

Be sure to have some contrast between the selection color and the item text color.



selectget, selectset

item index # = selectget(node name $)
selectset(node name $, item index #)

Get or set the currently selected item, or zero for no item selected.

If multiple items are selected, selectget will return the first selected item.
See: enabledget, enabledset, multiselectget, multiselectset, itemselectset, itemselectget



selectnameget, selectnameset

item name $ = selectnameget(node name $)
selectnameset(node name $, item name $)

Get or set the currently selected item by name.

If multiple items are selected, selectnameget will return the first selected item name.

If no item is selected, selectnameget will return the empty string.

If selectnameset cannot find an item with the given name, all items are deselected.
See: selectset, selectget



sortbyname, sortbyref

sortbyname(node name $, ascending TF)
sortbyref(node name $, ascending TF)

These routines sort lists by name or item ref in ascending or descending order.





sortdatestring, sortdatetimestring, sortfloatstring, sortlongstring

string $ = sortdatestring(date string $)
string $ = sortdatetimestring(date time string $)
string $ = sortfloatstring(float #.#)
string $ = sortlongstring(long #)

These are utility functions for converting dates and numbers into sortable strings.

The date format is "7/23/2003" and the date and time format is "7/24/1998 5:37 pm".




sortfouradd, sortfourfinish, sortfourstart

sortfouradd(node name $, string1 $, string2 $, string3 $, string4 $)
index list $ = sortfourfinish(node name $, swaplist TF, ascending TF)
sortfourstart(node name $)

First call sortfourstart followed by any number of calls to sortfouradd with the strings and substrings to be sorted.

Sortfourfinish will return the sorted index list of all the strings, if the swaplist flag is true, sortfourfinish will return the item swaps necessary to sort the list.

This is useful for sorting four-dimensional arrays of strings.
See: sortdatestring, sortlongstring, sortfloatstring, sortdatetimestring




sortoneadd, sortonefinish, sortonestart

sortoneadd(node name $, string1 $)
index list $ = sortonefinish(node name $, swaplist TF, ascending TF)
sortonestart(node name $)

First call sortonestart followed by any number of calls to sortoneadd with the strings to be sorted.

Sortonefinish will return the sorted index list of all the strings, if the swaplist flag is true, sortonefinish will return the item swaps necessary to sort the list.

This is useful for sorting one-dimensional arrays of strings.
See: sortdatestring, sortlongstring, sortfloatstring, sortdatetimestring




sortthreeadd, sortthreefinish, sortthreestart

sortthreeadd(node name $, string1 $, string2 $, string3 $)
index list $ = sortthreefinish(node name $, swaplist TF, ascending TF)
sortthreestart(node name $)

First call sortthreestart followed by any number of calls to sortthreeadd with the strings and substrings to be sorted.

Sortthreefinish will return the sorted index list of all the strings, if the swaplist flag is true, sortonefinish will return the item swaps necessary to sort the list.

This is useful for sorting three-dimensional arrays of strings.
See: sortdatestring, sortlongstring, sortfloatstring, sortdatetimestring




sorttwoadd, sorttwofinish, sorttwostart

sorttwoadd(node name $, string1 $, string2 $)
index list $ = sorttwofinish(node name $, swaplist TF, ascending TF)
sorttwostart(node name $)

First call sorttwostart followed by any number of calls to sorttwoadd with the strings and substrings to be sorted.

Sorttwofinish will return the sorted index list of all the strings, if the swaplist flag is true, sortonefinish will return the item swaps necessary to sort the list.

This is useful for sorting two-dimensional arrays of strings.
See: sortdatestring, sortlongstring, sortfloatstring, sortdatetimestring



styleget, styleset

style name $ = styleget(node name $)
styleset(node name $, style name $)

Get or set the style of the list: outline, tabbed, standard, expanded, beveled, cascade, and control.

Outline lists have controls at left for opening and closing tabbed items.

Expanded lists are for opening and closing list items as menus.

Control lists draw a tree control, this is often combined with icons for file systems or document navigation.
See: itemisopenset, itemtabcountset



tabwidthget, tabwidthset

tab width # = tabwidthget(node name $)
tabwidthset(node name $, tab width #)

Get or set the tab width for tabbed and outlined list items.
See: styleset, styleget



titlehorget, titlehorset

title hor # = titlehorget(node name $)
titlehorset(node name $, title hor #)

Get or set the title horizontal offset of every list item.



titleverget, titleverset

title ver # = titleverget(node name $)
titleverset(node name $, title ver #)

Get or set the title vertical offset of every list item.

There must be some leading at the bottom of the item for the title to be moved down.
See: leadingget, leadingset