SYNOPSIS

#include <Xm/BulletinB.h>

DESCRIPTION

BulletinBoard is a composite widget that provides simple geometry management for child widgets. It does not force positioning on its children, but can be set to reject geometry requests that result in overlapping children. BulletinBoard is the base widget for most dialog widgets and is also used as a general container widget.

Modal and modeless dialogs are implemented as collections of widgets that include a DialogShell, a BulletinBoard (or subclass) child of the shell, and various dialog components (buttons, labels, and so on) that are children of BulletinBoard. BulletinBoard defines callbacks useful for dialogs (focus, map, unmap), which are available for application use. If its parent is a DialogShell, BulletinBoard passes title and input mode (based on dialog style) information to the parent, which is responsible for appropriate communication with the window manager.

The default value for XmNinitialFocus is the value of XmNdefaultButton.

BulletinBoard uses the XmQTtakesDefault trait, and holds the XmQTdialogShellSavvy and XmQTspecifyRenderTable traits.

Classes

BulletinBoard inherits behavior, resources, and traits from the Core, Composite, Constraint, and XmManager classes.

The class pointer is xmBulletinBoardWidgetClass.

The class name is XmBulletinBoard.

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).

XmBulletinBoard Resource Set
Name Class Type Default Access
_ _ _ _ _
XmNallowOverlap XmCAllowOverlap Boolean True
CSG _ _ _ _
_ XmNautoUnmanage XmCAutoUnmanage Boolean
True CG _ _ _
_ _ XmNbuttonFontList XmCButtonFontList
XmFontList dynamic CSG _ _
_ _ _ XmNbuttonRenderTable
XmCButtonRenderTable XmRenderTable dynamic CSG _
_ _ _ _
XmNcancelButton XmCWidget Widget NULL SG
_ _ _ _ _
XmNdefaultButton XmCWidget Widget NULL
SG _ _ _ _
_ XmNdefaultPosition XmCDefaultPosition Boolean
True CSG _ _ _
_ _ XmNdialogStyle XmCDialogStyle
unsigned char dynamic CSG _ _
_ _ _ XmNdialogTitle
XmCDialogTitle XmString NULL CSG _
_ _ _ _
XmNfocusCallback XmCCallback XtCallbackList NULL C
_ _ _ _ _
XmNlabelFontList XmCLabelFontList XmFontList dynamic
CSG _ _ _ _
_ XmNlabelRenderTable XmCLabelRenderTable XmRenderTable
dynamic CSG _ _ _
_ _ XmNmapCallback XmCCallback
XtCallbackList NULL C _ _
_ _ _ XmNmarginHeight
XmCMarginHeight Dimension 10 CSG _
_ _ _ _
XmNmarginWidth XmCMarginWidth Dimension 10 CSG
_ _ _ _ _
XmNnoResize XmCNoResize Boolean False
CSG _ _ _ _
_ XmNresizePolicy XmCResizePolicy unsigned char
XmRESIZE_ANY CSG _ _ _
_ _ XmNshadowType XmCShadowType
unsigned char XmSHADOW_OUT CSG _ _
_ _ _ XmNtextFontList
XmCTextFontList XmFontList dynamic CSG _
_ _ _ _
XmNtextRenderTable XmCTextRenderTable XmRenderTable dynamic CSG
_ _ _ _ _
XmNtextTranslations XmCTranslations XtTranslations NULL
C _ _ _ _
_ XmNunmapCallback XmCCallback XtCallbackList
NULL C _ _ _
_ _
XmNallowOverlap

Controls the policy for overlapping child widgets. If this resource is True, BulletinBoard allows geometry requests that result in overlapping children.

XmNautoUnmanage

Controls whether or not BulletinBoard is automatically unmanaged after a button is activated. If this resource is True on initialization and if the BulletinBoard's parent is a DialogShell, BulletinBoard adds a callback to button children (PushButtons, PushButtonGadgets, and DrawnButtons) that unmanages the BulletinBoard when a button is activated. If this resource is False on initialization or if the BulletinBoard's parent is not a DialogShell, the BulletinBoard is not automatically unmanaged. For BulletinBoard subclasses with Apply or Help buttons, activating those buttons does not automatically unmanage the BulletinBoard.

XmNbuttonFontList

Specifies the font list used for button descendants. See the XmNbuttonRenderTable resource.

XmNbuttonRenderTable

Specifies the render table used for BulletinBoard's button descendants. If this value is NULL at initialization, the parent hierarchy of the widget is searched for an ancestor that holds the XmQTspecifyRenderTable trait. If such an ancestor is found, the render table is initialized to the XmBUTTON_RENDER_TABLE value of the ancestor widget. If no such ancestor is found, the default is implementation dependent. Refer to XmRenderTable(3) for more information on the creation and structure of a render table.

XmNcancelButton

Specifies the widget ID of the Cancel button. BulletinBoard's subclasses, which define a Cancel button, set this resource. BulletinBoard does not directly provide any behavior for that button.

XmNdefaultButton

Specifies the widget ID of the default button. Some BulletinBoard subclasses, which define a default button, set this resource. BulletinBoard defines translations and installs accelerators that activate that button when KActivate is pressed and the keyboard focus is not in another button.

XmNdefaultPosition

Controls the positioning of a DialogShell managing a BulletinBoard. If the BulletinBoard is not being managed by a DialogShell, then this resource has no effect. If XmNdefaultPosition is True, the DialogShell will center itself at the center of its own parent. For example, if the parent of the DialogShell is an ApplicationShell, then the center of the DialogShell will be at the same coordinates as the center of the ApplicationShell. If the DialogShell becomes unmapped (but stays managed) and then remapped, this resource has no influence on the DialogShell's position. If this resource is False, the DialogShell does not automatically center itself.

XmNdialogStyle

Indicates the dialog style associated with the BulletinBoard. If the parent of the BulletinBoard is a DialogShell, the parent's XmNmwmInputMode is set according to the value of this resource. This resource can be set only if the BulletinBoard is unmanaged. Possible values for this resource include the following:

XmDIALOG_SYSTEM_MODAL

Used for dialogs that must be responded to before any other interaction in any application.

XmDIALOG_PRIMARY_APPLICATION_MODAL

Used for dialogs that must be responded to before some other interactions in ancestors of the widget.

XmDIALOG_APPLICATION_MODAL

Used for dialogs that must be responded to before some other interactions in ancestors of the widget. This value is the same as XmDIALOG_PRIMARY_APPLICATION_MODAL, and remains for compatibility.

XmDIALOG_FULL_APPLICATION_MODAL

Used for dialogs that must be responded to before some other interactions in the same application.

XmDIALOG_MODELESS

Used for dialogs that do not interrupt interaction of any application. This is the default when the parent of the BulletinBoard is a DialogShell.

XmDIALOG_WORK_AREA

Used for BulletinBoard widgets whose parents are not DialogShells. XmNdialogStyle is forced to have this value when the parent of the BulletinBoard is not a DialogShell.

Posting a modal dialog in response to a button down or key down event (via translation actions or callbacks) can cause the corresponding button up or key up event to be lost. For example, posting a modal dialog from an XmNincrementCallback of XmScrollBar will cause the loss of the button up event, causing the XmScrollBar to auto-increment indefinitely.

XmNdialogTitle

Specifies the dialog title. If this resource is not NULL, and the parent of the BulletinBoard is a subclass of WMShell, BulletinBoard sets the XmNtitle and XmNtitleEncoding of its parent. If the only character set in XmNdialogTitle is ISO8859-1, XmNtitle is set to the string of the title, and XmNtitleEncoding is set to STRING. If XmNdialogTitle contains character sets other than ISO8859-1, XmNtitle is set to the string of the title converted to a compound text string, and XmNtitleEncoding is set to COMPOUND_TEXT. The direction of the title is based on the XmNlayoutDirection resource of the widget.

XmNfocusCallback

Specifies the list of callbacks that is called when the BulletinBoard widget or one of its descendants accepts the input focus. The callback reason is XmCR_FOCUS.

XmNlabelFontList

Specifies the font list used for label descendants. See the XmNlabelRenderTable resource.

XmNlabelRenderTable

Specifies the render table used for BulletinBoard's label descendants. If this value is NULL at initialization, the parent hierarchy of the widget is searched for an ancestor that holds the XmQTspecifyRenderTable trait. If such an ancestor is found, the render table is initialized to the XmLABEL_RENDER_TABLE value of the ancestor widget. If no such ancestor is found, the default is implementation dependent. Refer to XmRenderTable(3) for more information on the creation and structure of a render table.

XmNmapCallback

Specifies the list of callbacks that is called only when the parent of the BulletinBoard is a DialogShell. In this case, this callback list is invoked when the BulletinBoard widget is mapped. The callback reason is XmCR_MAP. DialogShells are usually mapped when the DialogShell is managed.

XmNmarginHeight

Specifies the minimum spacing in pixels between the top or bottom edge of BulletinBoard and any child widget.

XmNmarginWidth

Specifies the minimum spacing in pixels between the left or right edge of BulletinBoard and any child widget.

XmNnoResize

Controls whether or not resize controls are included in the window manager frame around the BulletinBoard's parent. If this resource is set to True, mwm does not include resize controls in the window manager frame containing the parent of the BulletinBoard if the parent is a subclass of VendorShell. If this resource is set to False, the window manager frame does include resize controls. Other controls provided by mwm can be included or excluded through the mwm resources provided by VendorShell.

XmNresizePolicy

Controls the policy for resizing BulletinBoard widgets. Possible values include

XmRESIZE_NONE

Fixed size

XmRESIZE_ANY

Shrink or grow as needed

XmRESIZE_GROW

Grow only

XmNshadowType

Describes the shadow drawing style for BulletinBoard. This resource can have the following values:

XmSHADOW_IN

Draws the BulletinBoard shadow so that it appears inset. This means that the bottom shadow visuals and top shadow visuals are reversed.

XmSHADOW_OUT

Draws the BulletinBoard shadow so that it appears outset.

XmSHADOW_ETCHED_IN

Draws the BulletinBoard shadow using a double line giving the effect of a line etched into the window, similar to the Separator widget.

XmSHADOW_ETCHED_OUT

Draws the BulletinBoard shadow using a double line giving the effect of a line coming out of the window, similar to the Separator widget.

XmNtextFontList

Specifies the font list used for text descendants. See the XmNtextRenderTable resource.

XmNtextRenderTable

Specifies the render table used for BulletinBoard's text descendants. If this value is NULL at initialization, the parent hierarchy of the widget is searched for an ancestor that holds the XmQTspecifyRenderTable trait. If such an ancestor is found, the render table is initialized to the XmTEXT_RENDER_TABLE value of the ancestor widget. If no such ancestor is found, the default is implementation dependent. Refer to XmRenderTable(3) for more information on the creation and structure of a render table.

XmNtextTranslations

It adds translations to any Text widget or Text widget subclass that is added as a child of BulletinBoard.

XmNunmapCallback

Specifies the list of callbacks that is called only when the parent of the BulletinBoard is a DialogShell. In this case, this callback list is invoked when the BulletinBoard widget is unmapped. The callback reason is XmCR_UNMAP. DialogShells are usually unmapped when the DialogShell is unmanaged.

Inherited Resources

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

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
dynamic CSG _ _ _
_ _ XmNlayoutDirection XmCLayoutDirection
XmDirection dynamic CG _ _
_ _ _ XmNnavigationType
XmCNavigationType XmNavigationType XmTAB_GROUP CSG _
_ _ _ _
XmNpopupHandlerCallback XmCCallback XtCallbackList NULL C
_ _ _ _ _
XmNshadowThickness XmCShadowThickness Dimension dynamic
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
N/A _ _ _ _
_ 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 _
_ _ _ _

Callback Information

A pointer to the following structure is passed to each callback:

typedef struct
{
        int reason;
        XEvent * event;
} XmAnyCallbackStruct;
reason

Indicates why the callback was invoked

event

Points to the XEvent that triggered the callback

Translations

XmBulletinBoard includes the translations from XmManager.

Additional Behavior

The XmBulletinBoard widget has the following additional behavior:

<Key><osfCancel>:

Calls the activate callbacks for the cancel button if it is sensitive. If no cancel button exists and if the parent of the BulletinBoard is a manager, passes the event to the parent.

<Key><osfActivate>:

Calls the activate callbacks for the button with the keyboard focus. If no button has the keyboard focus, calls the activate callbacks for the default button if it is sensitive. In a List widget or single-line Text widget, the List or Text action associated with <Key><osfActivate> is called before the BulletinBoard actions associated with <Key><osfActivate>.

In a multiline Text widget, any <Key><osfActivate> event except <Key><Enter> calls the Text action associated with <Key><osfActivate>, then the BulletinBoard actions associated with <Key><osfActivate>. If no button has the focus, no default button exists, and the parent of the BulletinBoard is a manager, passes the event to the parent.

<FocusIn>:

Calls the callbacks for XmNfocusCallback. When the focus policy is XmPOINTER, the callbacks are called when the pointer enters the window. When the focus policy is XmEXPLICIT, the callbacks are called when the user traverses to the widget.

<Map>:

Calls the callbacks for XmNmapCallback.

<Unmap>:

Calls the callbacks for XmNunmapCallback.

Virtual Bindings

The bindings for virtual keys are vendor specific. For information about bindings for virtual buttons and keys, see VirtualBindings(3).

RELATED