dropping-outline

Class

Package: common-graphics

Class

The class of the dropping-outline control. This is a special subclass of outline that can drop the outline itself down from a single-line widget that simply displays the current value, similar to a drop-down list widget or combo-box.

A dropping outline does not change its selection when its pixmaps are clicked to expand or collapse items. This feature allows users to expand or condense the outline hierarchy without making a selection, since making a selection un-drops the outline.

Control

An instance of the dropping-outline class. This control is similar to a combo-box, only when you it, you expose an outline rather than a list. It is a special subclass of the outline class.

Users can only see one outline item at a time in the dropping-outline display, but when the down-arrow portion of the control is clicked the outline will drop (open up) to the size you define when sizing the control. Note that the outline may be clipped by the boundaries of the dialog contain the dropping-outline control. Whether of not it is clipped is controlled by the top-level-dropper property.

Once dropped, arrow keys can be used to navigate in the outline.

Adding a dropping-outline control to your form

Click the dropping-outline tool on of the Component toolbar. Move the mouse cursor to the part of the form where you want to place the control, and click again. The control will appear with colored resizing handles.

Resizing and moving the control

Controls can only be resized and moved on forms during the design stage; the size and location of everything is fixed on a running form.

Resize the control by clicking the mouse cursor and dragging one of the handles to the new size-point. Release the mouse key when you are satisfied with the new size.

Resizing this control horizontally changes the size of the un-dropped form of the control.

Resizing the control vertically defines the full size of the window displaying the dropped version of the control. If you need a taller window to display the dropped-outline items in a running form, go back to the layout and resize the control vertically.

Resizing the dropping-outline won't mean proportional changes in the size of the characters inside the list. Change the font property if you want to change the size of the actual characters displayed.

Move the control by clicking anywhere on it except a resizing handle and dragging it to a new location on the form. Release the mouse key when you are ready to place the control.

Creating an instance of a dropping-outline control

This call to make-instance returns an instance of a dropping-outline. Properties can be initialization keyword arguments (the keyword has the same name as the property, with a prepended colon, e.g. :width). Additional arguments could be provided. Their absence indicates the default value will be used. Note that the value of the :range argument is a list of instances of outline-items.

(make-instance 'dropping-outline
               :closed-pixmap-name nil
               :closed-pixmap-source nil
               :font
                 (make-font-ex nil "MS Sans Serif" 11 nil)
               :leaf-pixmap-name nil
               :leaf-pixmap-source nil
               :left 94
               :name :dropping-outline-1
               :opened-pixmap-name nil
               :opened-pixmap-source nil
               :range
                   (list (make-instance 'outline-item
                           :value :top-1
                           :kind nil
                           :state :open
                           :range
                           (list (make-instance
                                  'outline-item 
                                  :value :middle-1
                                  :kind nil
                                  :state :open
                                  :range
                                  (list
                                   (make-instance
                                    'outline-item 
                                    :value :bottom-11
                                    :kind nil
                                    :state :closed
                                    :range nil
                                    :available t)
                                   (make-instance
                                    'outline-item

                                    :value
                                    :bottom-12
                                    :kind
                                    nil
                                    :state
                                    :closed
                                    :range
                                    nil
                                    :value
                                    :closed)
                                   (make-instance
                                    'outline-item

                                    :value
                                    :bottom-13
                                    :kind
                                    nil
                                    :state
                                    :closed
                                    :range
                                    nil
                                    :font
                                    (make-font-ex
                                     nil
                                     "Courier"
                                     15
                                     '(:bold :italic))
                                    :available
                                    t))
                                  :available
                                  t)
                                 (make-instance
                                  'outline-item

                                  :value
                                  :middle-2
                                  :kind
                                  nil
                                  :state
                                  :open
                                  :range
                                  (list
                                   (make-instance
                                    'outline-item

                                    :value
                                    :bottom-21
                                    :kind
                                    nil
                                    :state
                                    :closed
                                    :range
                                    nil
                                    :foreground-color
                                    red
                                    :available
                                    t)
                                   (make-instance
                                    'outline-item

                                    :value
                                    :bottom-22
                                    :kind
                                    nil
                                    :state
                                    :closed
                                    :range
                                    nil)
                                   (make-instance
                                    'outline-item

                                    :value
                                    :bottom-23
                                    :kind
                                    nil
                                    :state
                                    :closed
                                    :range
                                    nil
                                    :background-color
                                    yellow))
                                  :available
                                  t))
                           :available t
                           :selected t)
                         (make-instance 'outline-item
                           :value :top-2
                           :kind nil
                           :state :open
                           :range
                           (list (make-instance
                                  'outline-item
                                  :value :biff
                                  :kind nil
                                  :state :closed
                                  :range nil
                                  :background-color cyan
                                  :available t)
                                 (make-instance
                                  'outline-item
                                  :value :boff
                                  :kind nil
                                  :state :closed
                                  :range nil
                                  :available t))
                           :available t))
                   :tabs '(200 250 300 350 400)
                   :top 85
                   :value :top-1))

See About how to get sample code for creating controls in cgide.htm, which explains how to use the IDE to create such code.

Common Graphics and IDE documentation is described in About Common Graphics and IDE documentation in cgide.htm.

The documentation is described in introduction.htm and the index is in index.htm.

Copyright (c) 1998-2000, Franz Inc. Berkeley, CA., USA. All rights reserved.

Created 2000.10.5.