On this page:
selected
new-item
set-no-sublists
new-list
delete-item
get-items
selectable
on-select
on-click
on-double-select
on-item-opened
on-item-closed
sort
can-do-edit-operation?
do-edit-operation
select-prev
select-next
select-first
select-last
select-in
select-out
page-up
page-down
select
click-select
on-select-always
on-click-always
allow-deselect

Inherited methods:

from editor-canvas%

allow-scroll-to-last

allow-tab-exit

call-as-primary-owner

force-display-focus

get-editor

get-line-count

horizontal-inset

lazy-refresh

on-char

on-event

on-focus

on-paint

on-size

scroll-to

scroll-with-bottom-base

set-editor

set-line-count

vertical-inset

wheel-step

from canvas<%>

get-canvas-background

get-dc

min-client-height

min-client-width

on-tab-in

set-canvas-background

set-resize-corner

warp-pointer

from window<%>

accept-drop-files

client->screen

enable

focus

get-client-size

get-cursor

get-handle

get-height

get-label

get-plain-label

get-size

get-width

get-x

get-y

has-focus?

is-enabled?

is-shown?

on-drop-file

on-move

on-subwindow-char

on-subwindow-event

on-superwindow-enable

on-superwindow-show

popup-menu

refresh

screen->client

set-cursor

set-label

show

from area<%>

get-graphical-min-size

get-parent

get-top-level-window

min-height

min-width

stretchable-height

stretchable-width

from subarea<%>

horiz-margin

vert-margin

Version: 4.1

hierarchical-list% : class?

  superclass: editor-canvas%

Creates a hierarchical-list control.

(new hierarchical-list%

 

[parent parent]

 

 

 [

[style style]])

 

  (is-a?/c hierarchical-list%)

  

parent

 

:

 

(or/c (is-a?/c frame%) (is-a?/c dialog%)

      (is-a?/c panel%) (is-a?/c pane%))

  

style

 

:

 

(listof (one-of/c 'no-border 'control-border 'combo

                  'no-hscroll 'no-vscroll

                  'hide-hscroll 'hide-vscroll

                  'auto-vscroll 'auto-hscroll

                  'resize-corner 'deleted 'transparent))

 

 

 

=

 

'(no-hscroll)

Creates the control.

(send a-hierarchical-list selected)

 

 

(or/c (is-a?/c hierarchical-list-item<%>)

      false/c)

Returns the currently selected item, if any.

(send a-hierarchical-list new-item [mixin])

  (is-a?/c hierarchical-list-item<%>)

  

mixin

 

:

 

((implementation?/c hierarchical-list-item<%>)

 . -> .

 (implementation?/c hierarchical-list-item<%>))

 

 

 

=

 

(lambda (%) %)

Creates and returns a new (empty) item in the list. See hierarchical-list-item<%> for methods to fill in the item’s label.

The mixin argument is applied to a class implementing hierarchical-list-item<%>, and the resulting class is instantiated as the list item.

(send a-hierarchical-list set-no-sublists no-sublists?)  void?

  no-sublists? : any/c

Enables/disables sublist mode. When sublists are disabled, space to the left of the list items (that would normally align non-list items with list items) is omitted. This method can be called only when the list is empty.

(send a-hierarchical-list new-list [mixin])

  (is-a?/c hierarchical-list-compound-item<%>)

  

mixin

 

:

 

((implementation?/c hierarchical-list-compound-item<%>)

 . -> .

 (implementation?/c hierarchical-list-compound-item<%>))

 

 

 

=

 

(lambda (%) %)

Creates and returns a new (empty) sub-list in the list. See hierarchical-list-compound-item<%> for methods to fill in the item’s label and content.

The mixin argument is applied to a class implementing hierarchical-list-compound-item<%>, and the resulting class is instantiated as the sub-list.

(send a-hierarchical-list delete-item i)  void?

  i : (is-a?/c hierarchical-list-item<%>)

Deletes immediate item or sub-list i from the list.

(send a-hierarchical-list get-items)

  (listof (is-a?/c hierarchical-list-item<%>))

Returns a list of all immediate items in the list control.

(send a-hierarchical-list selectable)  boolean?

(send a-hierarchical-list selectable on?)  void?

  on? : any/c

Reports whether items are selectable, or enables/disables item selection.

(send a-hierarchical-list on-select i)  any

  i : (or/c (is-a?/c hierarchical-list-item<%>) false/c)

Called for new select of i, where i is #f if no item is now selected.

(send a-hierarchical-list on-click i)  any

  i : (is-a?/c hierarchical-list-item<%>)

Called when an item is clicked on, but selection for that item is not allowed. Selection can be disallowed by selectable or set-allow-selection in hierarchical-list-item<%>.

(send a-hierarchical-list on-double-select i)  any

  i : (is-a?/c hierarchical-list-item<%>)

Called for a double-click on i.

(send a-hierarchical-list on-item-opened i)  any

  i : (is-a?/c hierarchical-list-compound-item<%>)

Called when the arrow for i is turned down.

(send a-hierarchical-list on-item-closed i)  any

  i : (is-a?/c hierarchical-list-compound-item<%>)

Called when the arrow for i is turned up.

(send a-hierarchical-list sort

 

less-than-proc

 

 

 

 

 

 [

recur?])

 

 

void?

  

less-than-proc

 

:

 

((is-a?/c hierarchical-list-item<%>)

 (is-a?/c hierarchical-list-item<%>)

 . -> . any/c)

  recur? : any/c = #t

Sorts items in the list by calling less-than-proc on pairs of items. If recur? is true, items in sub-lists are sorted recursively.

(send a-hierarchical-list can-do-edit-operation?

 

op

 

 

 [

recursive?])

 

  boolean?

  op : symbol?

  recursive? : any/c = #t

Like can-do-edit-operation? in editor<%>. The default implementation always returns #f.

(send a-hierarchical-list do-edit-operation

 

op

 

 

 

 

 

 [

recursive?])

 

 

void?

  op : symbol?

  recursive? : any/c = #t

Like do-edit-operation in editor<%>. The default implementation does nothing.

(send a-hierarchical-list select-prev)  void?

(send a-hierarchical-list select-next)  void?

(send a-hierarchical-list select-first)  void?

(send a-hierarchical-list select-last)  void?

(send a-hierarchical-list select-in)  void?

(send a-hierarchical-list select-out)  void?

(send a-hierarchical-list page-up)  void?

(send a-hierarchical-list page-down)  void?

Move the selection, scroll, and call on-select.

(send a-hierarchical-list select i)  void?

  i : (or/c (is-a?/c hierarchical-list-item<%>) false/c)

Moves the selection, scrolls as necessary to show it, and calls on-select unless disabled via on-select-always.

The allow-deselect method controls whether i is allowed to be #f to deselect the currently selected item.

(send a-hierarchical-list click-select i)  void?

  i : (or/c (is-a?/c hierarchical-list-item<%>) false/c)

Like select, but always calls on-select.

(send a-hierarchical-list on-select-always)  boolean?

(send a-hierarchical-list on-select-always always?)  void?

  always? : any/c

Gets/sets whether the on-select method is called in response to select (as opposed to click-select).

The initial mode enables on-select calls always.

(send a-hierarchical-list on-click-always)  boolean?

(send a-hierarchical-list on-click-always always?)  void?

  always? : any/c

Gets/sets whether the on-click method is called in response to all mouse clicks (as opposed to only when selected). on-click is called before on-select, if it is called (if the click results in selction).

This is initially disabled, by default.

(send a-hierarchical-list allow-deselect)  boolean?

(send a-hierarchical-list allow-deselect allow?)  void?

  allow? : any/c

Gets/sets whether the on-select can be called with a #f argument to deselect the current item (leaving none selected).

The initial mode does not allow deselection.