Sets the active child to be child
Returns the current active child.
This mixin adds single panel functionality to an implementation of the area-container<%> interface.
Single panels place all of the children in the center of the panel, and allow make one child to be visible at a time. The active-child method controls which panel is currently active.
The show method is used to hide and show the children of a single panel.
child : subarea<%>
Hides this child by calling (send child show #f), unless this is the first child in which case it does nothing.
Returns the maximum width of all the children and the maximum height of all of the children.
Returns the positions for single panels and panes.
info : (list-of (list exact-integer exact-integer boolean boolean))
Factors the border width into the size calculation.
Classes matching this interface implement a panel where the user can adjust the percentage of the space that each takes up. The user adjusts the size by clicking and dragging the empty space between the children.
This method is called when the user changes the percentage by dragging the bar between the children, or when a new child is added to the frame, but not when set-percentages is called.
Use get-percentages to find the current percentages.
new-percentages : (listof number)
Call this method to set the percentages that each window takes up of the panel.
The argument, new-percentages must be a list of numbers that sums to 1. It’s length must be equal to the number of children of the panel (see get-children) and each percentage must correspond to a number of pixels that is equal to or larger than the minimum with of the child, as reported by min-width.
Return the current percentages of the children.
This method controls the behavior of the other overridden methods in mixins that implement this interface.
If it returns #t, the panel will be vertically aligned and if it returns #f, they will be horizontally aligned.
A panel that implements panel:vertical-dragable<%>. It aligns its children vertically.
A panel that implements panel:horizontal-dragable<%>. It aligns its children horizontally.
It is not useful unless the get-vertical? method is overridden.
Updates the number of percentages to make sure that it matches the number of children and calls after-percentage-change.
receiver : (instanceof window<%>)
event : (instanceof mouse-event%)
When the cursor is dragging the middle bar around, this method handles the resizing of the two panes.
→ (list-of (list exact-int exact-int exact-int exact-int))
info : (list-of (list exact-int exact-int))
w : exact-int
h : exact-int
Places the children vertically in the panel, based on the percentages returned from get-percentages. Also leaves a little gap between each pair of children.
info : list
Computes the minimum size the panel would have to be in order to have the current percentages (see get-percentages).