On this page:
new
Inherited methods:
from subwindow<%>
reparent
from window<%>
accept-drop-files
client->screen
enable
focus
get-client-handle
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-focus
on-move
on-size
on-subwindow-char
on-subwindow-event
on-subwindow-focus
on-superwindow-enable
on-superwindow-show
popup-menu
refresh
screen->client
set-cursor
set-label
show
warp-pointer
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
from area-container<%>
add-child
after-new-child
begin-container-sequence
border
change-children
container-flow-modified
container-size
delete-child
end-container-sequence
get-alignment
get-children
place-children
reflow-container
set-alignment
spacing

class

panel% : class?

  superclass: object%

  extends: area-container-window<%>
 subwindow<%>
A panel is a both a container and a containee window. It serves mainly as a geometry management device, but the 'border creates a container with a border. Unlike a pane% object, a panel% object can be hidden or disabled.

A panel% object has a degenerate placement strategy for managing its children: it places each child as if it was the only child of the panel. The horizontal-panel% and vertical-panel% classes provide useful geometry management for multiple children.

Changed in version 1.3 of package gui-lib: Changed the placement strategy to stretch and align children, instead of placing all children at the top-left corner.

constructor

(new panel% 
    [parent parent] 
    [[style style] 
    [enabled enabled] 
    [vert-margin vert-margin] 
    [horiz-margin horiz-margin] 
    [border border] 
    [spacing spacing] 
    [alignment alignment] 
    [min-width min-width] 
    [min-height min-height] 
    [stretchable-width stretchable-width] 
    [stretchable-height stretchable-height]]) 
  (is-a?/c panel%)
  parent : 
(or/c (is-a?/c frame%) (is-a?/c dialog%)
      (is-a?/c panel%) (is-a?/c pane%))
  style : 
(listof (or/c 'border 'deleted
              'hscroll 'auto-hscroll
              'vscroll 'auto-vscroll))
 = null
  enabled : any/c = #t
  vert-margin : spacing-integer? = 0
  horiz-margin : spacing-integer? = 0
  border : spacing-integer? = 0
  spacing : spacing-integer? = 0
  alignment : 
(list/c (or/c 'left 'center 'right)
        (or/c 'top 'center 'bottom))
   = '(center center)
  min-width : (or/c dimension-integer? #f) = #f
  min-height : (or/c dimension-integer? #f) = #f
  stretchable-width : any/c = #t
  stretchable-height : any/c = #t
If the 'border style is specified, the window is created with a thin border (in which case the client size of the panel may be less than its total size). If style includes 'deleted, then the panel is created as hidden, and it does not affect its parent’s geometry; the panel can be made active later by calling parent’s add-child method.

If the 'hscroll or 'vscroll style is specified, then the panel includes a scrollbar in the corresponding direction, and the panel’s own size in the corresponding direction is not constrained by the size of its children subareas. The 'auto-hscroll and 'auto-vscroll styles are like 'hscroll or 'vscroll, but they cause the corresponding scrollbar to disappear when no scrolling is needed in the corresponding direction; the 'auto-vscroll and 'auto-hscroll modes assume that children subareas are placed using the default algorithm for a panel%, vertical-panel%, or horizontal-panel%.

For information about the enabled argument, see window<%>. For information about the horiz-margin and vert-margin arguments, see subarea<%>. For information about the border, spacing, and alignment arguments, see area-container<%>. For information about the min-width, min-height, stretchable-width, and stretchable-height arguments, see area<%>.