yeah agreed again. the debate would center around which icons got included. and they would have to be generic enough, yet usable by all. plus, i could see a schism evolve between icons related to network logins and icons related to network admin scripts.

all that aside, i've been to a few sites that have hundreds upon hundreds of icons. but to be honest - they all suck. getting free professional looking icons seems to be tough to do. unless you know of a site in particular, any recommendations ?

I think the way things are going to shape-up is like follows (and this is strictly psuedo-code mind you). Leverage the ImageList object to host all the icons, the way this would work is as follows:

code:
 
;; Build an ImageList, a control that contains a
;; collection of icons or bitmaps ...

$ImageList = $Form.ImageList

;; the default is 16x16 but well set it up to support 32x32 ...

$ImageList.Size = 32,32

; Add some icons to the imagelist ...

$ImageList.Images.Add("c:\off.ico")
$ImageList.Images.Add("c:\on.ico")

;; Create a button that supports Hot Tracking ... hot tracking
;; is where the icon that is displayed in the button changes
;; depending on whether the mouse cursor is over the button or
;; not ...

$Button = $Form.Button
$Button.ImageList = $ImageList

Now, I'm not sure if this particular object model makes things easier or tougher to script. I know for sure it makes things powerfull, but our we sacrificing too much here ?

Having the icon property there is kinda nice as well, and this should be supported going forward. We should be able to assign one-shot icons using the following syntax:

code:
 $Button.Icon = $ImageList.Images(#)

Where $ImageList is a previously initiallized and loaded ImageList, and # is the index of the icon in the collection.

The the ImageList control is going to happen anyways (to support icons in the other un-implemented ListView report modes), so in keeping with dotnet, extend the ImageList to other controls as well. Personnaly myself, I like this image list approach.