[ Previous | Next | Contents | Glossary | Home | Search ]
Motif 2.1 Programmer's Reference


The MainWindow widget class


#include <Xm/MainW.h>


MainWindow provides a standard layout for the primary window of an application. This layout includes a MenuBar, a CommandWindow, a work region, a MessageWindow, and ScrollBars. Any or all of these areas are optional. The work region and ScrollBars in the MainWindow behave identically to the work region and ScrollBars in the ScrolledWindow widget. The user can think of the MainWindow as an extended ScrolledWindow with an optional MenuBar and optional CommandWindow and MessageWindow.

In a fully loaded MainWindow, the MenuBar spans the top of the window horizontally. The CommandWindow spans the MainWindow horizontally just below the MenuBar, and the work region lies below the CommandWindow. The MessageWindow is below the work region. Any space remaining below the MessageWindow is managed in a manner identical to ScrolledWindow. The behavior of ScrolledWindow can be controlled by the ScrolledWindow resources. To create a MainWindow, first create the work region elements, a MenuBar, a CommandWindow, a MessageWindow, a horizontal ScrollBar, and a vertical ScrollBar widget, and then call XmMainWindowSetAreas with those widget IDs.

MainWindow can also create three Separator widgets that provide a visual separation of MainWindow's four components. The user can specify resources in a resource file for the automatically created gadgets that contain the MainWindow separators. The name of the first separator gadget is Separator1 ; the second is Separator2 ; and the third is Separator3 .

MainWindow also provides the following three child types for layout at creation time:



  4. MainWindow can use these child types at creation time instead of their associated resource values. MainWindow uses the XmQTmenuSystem trait.


    MainWindow automatically creates the descendants shown in the following table. An application can use XtNameToWidget to gain access to the named descendant. In addition, a user or an application can use the named descendant when specifying resource values.

    Named Descendant Class Identity

    HorScrollBar XmScrollBar horizontal scroll bar
    Separator1 XmSeparatorGadget optional first separator
    Separator2 XmSeparatorGadget optional second separator
    Separator3 XmSeparatorGadget optional third separator
    VertScrollBar XmScrollBar vertical scroll bar


    MainWindow inherits behavior and resources from Core, Composite, Constraint, XmManager, and XmScrolledWindow.

    The class pointer is xmMainWindowWidgetClass.

    The class name is XmMainWindow.

    New Resources

    The following table defines a set of widget resources used by the programmer to specify data. The programmer can also set the resource values for the inherited classes to set attributes for this widget. To reference a resource by name or by class in a .Xdefaults file, remove the XmN or XmC prefix and use the remaining letters. To specify one of the defined values for a resource in a .Xdefaults file, remove the Xm prefix and use the remaining letters (in either lowercase or uppercase, but include any underscores between words). The codes in the access column indicate if the given resource can be set at creation time (C), set by using XtSetValues (S), retrieved by using XtGetValues (G), or is not applicable (N/A).

    XmMainWindow Resource Set
    Name Class Type Default Access
    XmNcommandWindow XmCCommandWindow Widget NULL CSG
    XmNcommandWindowLocation XmCCommandWindowLocation unsigned char ABOVE (SeeDesc.) CG
    XmNmainWindowMarginHeight XmCMainWindowMarginHeight Dimension 0 CSG
    XmNmainWindowMarginWidth XmCMainWindowMarginWidth Dimension 0 CSG
    XmNmenuBar XmCMenuBar Widget NULL CSG
    XmNmessageWindow XmCMessageWindow Widget NULL CSG
    XmNshowSeparator XmCShowSeparator Boolean False CSG

    Specifies the widget to be laid out as the CommandWindow. This widget must have been previously created and managed as a child of MainWindow.

    Controls the position of the command window. XmCOMMAND_ABOVE_WORKSPACE locates the command window between the menu bar and the work window. XmCOMMAND_BELOW_WORKSPACE locates the command window between the work window and the message window.

    Specifies the margin height on the top and bottom of MainWindow. This resource overrides any setting of the ScrolledWindow resource XmNscrolledWindowMarginHeight.

    Specifies the margin width on the right and left sides of MainWindow. This resource overrides any setting of the ScrolledWindow resource XmNscrolledWindowMarginWidth.

    Specifies the widget to be laid out as the MenuBar. This widget must have been previously created and managed as a child of MainWindow.

    Specifies the widget to be laid out as the MessageWindow. This widget must have been previously created and managed as a child of MainWindow. The MessageWindow is positioned at the bottom of the MainWindow. If this value is NULL, no message window is included in the MainWindow.

    Displays separators between the components of the MainWindow when set to True. If set to False, no separators are displayed.

    Inherited Resources

    MainWindow inherits behavior and resources from the superclasses described in the following table. For a complete description of each resource, refer to the reference page for that superclass.

    XmScrolledWindow Resource Set
    Name Class Type Default Access
    XmNautoDragModel XmCAutoDragModel XtEnum XmAUTO_DRAG_ENABLED CSG
    XmNclipWindow XmCClipWindow Widget dynamic G
    XmNhorizontalScrollBar XmCHorizontalScrollBar Widget dynamic CSG
    XmNscrollBarDisplayPolicy XmCScrollBarDisplayPolicy unsigned char dynamic CSG
    XmNscrollBarPlacement XmCScrollBarPlacement unsigned char XmBOTTOM_RIGHT CSG
    XmNscrolledWindowMarginHeight XmCScrolledWindowMarginHeight Dimension 0 N/A
    XmNscrolledWindowMarginWidth XmCScrolledWindowMarginWidth Dimension 0 N/A
    XmNscrollingPolicy XmCScrollingPolicy unsigned char XmAPPLICATION_DEFINED CG
    XmNspacing XmCSpacing Dimension 4 CSG
    XmNtraverseObscuredCallback XmCCallback XtCallbackList NULL CSG
    XmNverticalScrollBar XmCVerticalScrollBar Widget dynamic CSG
    XmNvisualPolicy XmCVisualPolicy unsigned char dynamic G
    XmNworkWindow XmCWorkWindow Widget NULL CSG

    XmManager Resource Set
    Name Class Type Default Access
    XmNbottomShadowColor XmCBottomShadowColor Pixel dynamic CSG
    XmNbottomShadowPixmap XmCBottomShadowPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
    XmNforeground XmCForeground Pixel dynamic CSG
    XmNhelpCallback XmCCallback XtCallbackList NULL C
    XmNhighlightColor XmCHighlightColor Pixel dynamic CSG
    XmNhighlightPixmap XmCHighlightPixmap Pixmap dynamic CSG
    XmNinitialFocus XmCInitialFocus Widget NULL CSG
    XmNlayoutDirection XmCLayoutDirection XmDirection dynamic CG
    XmNnavigationType XmCNavigationType XmNavigationType XmTAB_GROUP CSG
    XmNpopupHandlerCallback XmCCallback XtCallbackList NULL C
    XmNshadowThickness XmCShadowThickness Dimension 0 CSG
    XmNstringDirection XmCStringDirection XmStringDirection dynamic CG
    XmNtopShadowColor XmCTopShadowColor Pixel dynamic CSG
    XmNtopShadowPixmap XmCTopShadowPixmap Pixmap dynamic CSG
    XmNtraversalOn XmCTraversalOn Boolean True CSG
    XmNunitType XmCUnitType unsigned char dynamic CSG
    XmNuserData XmCUserData XtPointer NULL CSG

    Composite Resource Set
    Name Class Type Default Access
    XmNchildren XmCReadOnly WidgetList NULL G
    XmNinsertPosition XmCInsertPosition XtOrderProc NULL CSG
    XmNnumChildren XmCReadOnly Cardinal 0 G

    Core Resource Set
    Name Class Type Default Access
    XmNaccelerators XmCAccelerators XtAccelerators dynamic CSG
    XmNancestorSensitive XmCSensitive Boolean dynamic G
    XmNbackground XmCBackground Pixel dynamic CSG
    XmNbackgroundPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
    XmNborderColor XmCBorderColor Pixel XtDefaultForeground CSG
    XmNborderPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
    XmNborderWidth XmCBorderWidth Dimension 0 CSG
    XmNcolormap XmCColormap Colormap dynamic CG
    XmNdepth XmCDepth int dynamic CG
    XmNdestroyCallback XmCCallback XtCallbackList NULL C
    XmNheight XmCHeight Dimension dynamic CSG
    XmNinitialResourcesPersistent XmCInitialResourcesPersistent Boolean True C
    XmNmappedWhenManaged XmCMappedWhenManaged Boolean True CSG
    XmNscreen XmCScreen Screen * dynamic CG
    XmNsensitive XmCSensitive Boolean True CSG
    XmNtranslations XmCTranslations XtTranslations dynamic CSG
    XmNwidth XmCWidth Dimension dynamic CSG
    XmNx XmCPosition Position 0 CSG
    XmNy XmCPosition Position 0 CSG


    MainWindow inherits translations from ScrolledWindow.


    Composite (3), Constraint (3), Core (3), XmCreateMainWindow (3), XmMainWindowSep1 (3), XmMainWindowSep2 (3), XmMainWindowSep3 (3), XmMainWindowSetAreas (3), XmManager (3), and XmScrolledWindow (3)

    [ Previous | Next | Contents | Glossary | Home | Search ]