frame:basic-mixin
Domain: (class->interface frame%)
Implements: frame:basic<%>
This mixin provides the basic functionality that the framework
expects. It helps manage the list of frames in the
group:% object returned by
group:get-the-frame-group.
Do not give panel%s or control<%>s this frame as
parent. Instead, use the result of the
get-area-container method.
This mixin also creates a menu bar for the frame, as the
frame is initialized. It uses the class returned by
get-menu-bar%. It only passes the frame as an initialization argument.
In addition, it creates the windows menu in the menu bar.
See also
frame:reorder-menus.
( -> new frame:basic-mixin% (label _) [(parent _)] [(width _)] [(height _)] [(x _)] [(y _)] [(style _)] [(enabled _)] [(border _)] [(spacing _)] [(alignment _)] [(min-width _)] [(min-height _)] [(stretchable-width _)] [(stretchable-height _)])frame:basic-mixin% object
label : string (up to 200 characters)
parent = : #fframe% object or #f
width = : exact integer in [0, 10000] or #f#f
height = : exact integer in [0, 10000] or #f#f
x = : exact integer in [0, 10000] or #f#f
y = : exact integer in [0, 10000] or #f#f
style = : list of symbols in null'(no-resize-border no-caption no-system-menu mdi-parent mdi-child toolbar-button)
enabled = : boolean
#t
border = : exact integer in [0, 1000]
0
spacing = : exact integer in [0, 1000]
0
alignment = : two-element list: '(center top)'left, 'center, or 'right and 'top, 'center, or 'bottom
min-width = : exact integer in [0, 10000]
0
min-height = : exact integer in [0, 10000]
0
stretchable-width = : boolean
#t
stretchable-height = : boolean#t
The label string is displayed in the frame's title bar. If the
frame's label is changed (see
set-label ), the title bar is updated.
The parent argument can be #f or an existing frame. Under
Windows, if parent is an existing frame, the new frame is
always on top of its parent. Also, the parent frame may be an
MDI parent frame from a new MDI child frame. Under Windows and X (for
many window managers), a frame is iconized when its parent is iconized.
If parent is #f, then the eventspace for the new frame is
the current eventspace, as determined by
current-eventspace . Otherwise, parent's eventspace is the new frame's eventspace.
If the width or height argument is not #f, it
specifies an initial size for the frame (in pixels) assuming that it
is larger than the minimum size, otherwise the minimum size is used.
If the x or y argument is not #f, it specifies an
initial location for the frame. Otherwise, a location is selected
automatically (tiling frames and dialogs as they are created).
The style flags adjust the appearance of the frame on some
platforms:
'no-resize-border -- omits the resizeable border
around the window (Windows, X MWM) or grow box in the bottom right
corner (Mac OS)
'no-caption -- omits the title bar for the frame
(Windows, X MWM)
(X Gnome, X KDE: the frame decoration is omitted completely when
'no-resize-border and 'no-caption are combined.)
'no-system-menu -- omits the system menu
(Windows)
'mdi-child -- creates the frame as a MDI
(multiple document interface) child frame, mutually exclusive with
'mdi-parent (Windows)
'mdi-parent -- creates the frame as a MDI
(multiple document interface) parent frame, mutually exclusive with
'mdi-child (Windows)
'toolbar-button -- includes a toolbar button on the
frame's title bar (Mac OS X); a click on the toolbar button triggers
a call to
on-toolbar-button-click
If the 'mdi-child style is specified, the parent must be
a frame with the 'mdi-parent style, otherwise an exn:application:mismatch exception is raised.
Even if the frame is not shown, a few notification events may be queued for the frame on creation. Consequently, the new frame's resources (e.g., memory) cannot be reclaimed until some events are handled, or the frame's eventspace is shut down.
For information about the
enabled
argument, see window<%>. 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<%>.
Methods
after-new-child
can-close?
can-exit?
on-close
on-drop-file
on-exit
on-focus
on-superwindow-show
show
All Methods
accept-drop-files from window<%>
add-child from area-container<%>
after-new-child from frame:basic-mixin
overrides after-new-child from area-container<%>
begin-container-sequence from area-container<%>
border from area-container<%>
can-close? from frame:basic-mixin
overrides can-close? from top-level-window<%>
can-exit? from frame:basic-mixin
overrides can-exit? from top-level-window<%>
center from top-level-window<%>
change-children from area-container<%>
client->screen from window<%>
close from frame:basic<%>
container-flow-modified from area-container<%>
container-size from area-container<%>
create-status-line from frame%
delete-child from area-container<%>
enable from window<%>
end-container-sequence from area-container<%>
focus from window<%>
get-alignment from area-container<%>
get-area-container from frame:basic<%>
get-area-container% from frame:basic<%>
get-children from area-container<%>
get-client-size from window<%>
get-control-font from area-container-window<%>
get-cursor from window<%>
get-edit-target-object from top-level-window<%>
get-edit-target-window from top-level-window<%>
get-eventspace from top-level-window<%>
get-filename from frame:basic<%>
get-focus-object from top-level-window<%>
get-focus-window from top-level-window<%>
get-graphical-min-size from area<%>
get-height from window<%>
get-label from window<%>
get-label-font from area-container-window<%>
get-label-position from area-container-window<%>
get-menu-bar from frame%
get-menu-bar% from frame:basic<%>
get-parent from area<%>
get-plain-label from window<%>
get-size from window<%>
get-top-level-window from area<%>
get-width from window<%>
get-x from window<%>
get-y from window<%>
has-focus? from window<%>
has-status-line? from frame%
iconize from frame%
is-enabled? from window<%>
is-iconized? from frame%
is-shown? from window<%>
make-root-area-container from frame:basic<%>
maximize from frame%
min-height from area<%>
min-width from area<%>
modified from frame%
move from top-level-window<%>
on-activate from top-level-window<%>
on-close from frame:basic-mixin
overrides on-close from top-level-window<%>
on-drop-file from frame:basic-mixin
overrides on-drop-file from window<%>
on-exit from frame:basic-mixin
overrides on-exit from top-level-window<%>
on-focus from frame:basic-mixin
overrides on-focus from window<%>
on-menu-char from frame%
on-message from top-level-window<%>
on-move from window<%>
on-size from window<%>
on-subwindow-char from frame%
overrides on-subwindow-char from window<%>
on-subwindow-event from window<%>
on-superwindow-enable from window<%>
on-superwindow-show from frame:basic-mixin
overrides on-superwindow-show from window<%>
on-system-menu-char from top-level-window<%>
on-toolbar-button-click from frame%
on-traverse-char from top-level-window<%>
place-children from area-container<%>
popup-menu from window<%>
reflow-container from area-container<%>
refresh from window<%>
resize from top-level-window<%>
screen->client from window<%>
set-alignment from area-container<%>
set-control-font from area-container-window<%>
set-cursor from window<%>
set-icon from frame%
set-label from window<%>
set-label-font from area-container-window<%>
set-label-position from area-container-window<%>
set-status-text from frame%
show from frame:basic-mixin
overrides show from top-level-window<%>
overrides show from window<%>
spacing from area-container<%>
stretchable-height from area<%>
stretchable-width from area<%>