Frame(3I)

NAME
Frame, ShadowFrame, MarginFrame, ShowFrame, TitleFrame, BorderFrame - surrounding interactor

SYNOPSIS
#include <InterViews/frame.h>

DESCRIPTION
A frame is a monoscene subclass that outlines another interactor. A shadow frame draws an outline with a drop shadow. A margin frame surrounds its component with horizontal and vertical glue.

A show frame is an abstract class that changes its appearance in response to an EnterEvent or LeaveEvent. A title frame provides a banner that it displays in reverse video when it receives an EnterEvent. A border frame draws an outline using a solid pattern when it receives an EnterEvent and draws the outline using a gray pattern when it receives a LeaveEvent.

PUBLIC OPERATIONS

Frame(Interactor*, int width = 1)
    Construct a frame. If the given interactor is not nil, it is inserted as the frame's component. The frame extends width pixels outside of the interactor.

ShadowFrame(Interactor*, int h = 1, int v = 1)
    Construct a shadow frame. The h and v ShadowFrame parameters specify the width of the horizontal and vertical shadows, respectively. Positive values for these parameters specify shadows falling to the right and below the interactor, respectively; negative values specify shadows falling to the left and above.

MarginFrame(Interactor* = nil, int margin = 0)

MarginFrame(Interactor*, int margin, int shrink, int stretch)

MarginFrame(Interactor*, int hmargin, int vmargin)

MarginFrame(Interactor*, int hm, int hshr, int hstr, int vm, int vshr, int vstr)
    Construct a margin frame. The first constructor puts rigid, fixed-sized glue around the component, while the second surrounds it with fixed-sized glue of the given shrinkability and stretchability. Independent horizontal and vertical margins are set with the third constructor. The last constructor allows full specification of the margin frame's horizontal and vertical margins, shrinkabilities, and stretchabilities.

virtual void ShowFrame::HandleInput(Event&)
    ShowFrame objects listen for EnterEvent and LeaveEvent. When an EnterEvent is received, ShowFrame::Handle calls InsideFrame(true); when an LeaveEvent is received, it calls InsideFrame(false). For any other event, it calls HandleInput. ShowFrame::InsideFrame does nothing. ShowFrame::HandleInput calls Handle on the frame's component.

TitleFrame(Banner*, Interactor*, int width = 1)
    Construct a title frame with the given banner. TitleFrame::InsideFrame highlights and unhighlights the banner.

BorderFrame(Interactor*, int width = 1)
    Construct a border frame. BorderFrame::InsideFrame highlights and unhighlights the border.

PROTECTED OPERATIONS

Frame(Interactor*, int, int, int, int)
    This constructor is used by subclasses to explicitly set the widths of each line in the outline. The integers specify the width of the left, bottom, right, and top lines, respectively.

SEE ALSO
Banner(3I), Event(3I), Glue(3I), Scene(3I)