In addition to the properties and protocols described in ICCCM,
Motif uses properties and protocols of its own. A Motif application
usually specifies these properties using VendorShell and BulletinBoard
resources.
Decorations
An application expresses preferences for MWM window decorations by
supplying a value for the decorations field of the
_MOTIF_WM_HINTS property on the window. A Motif application does this
by supplying a value for the VendorShell resource XmNmwmDecorations.
The value is the bitwise inclusive OR of one or more flag bit
constants, each of which indicates a preference for or against a
particular decoration. If a value has been supplied for this
resource, MWM displays only those decorations specified by both
XmNmwmDecorations
and the MWM clientDecoration resource (for primary
windows) or specified by both XmNmwmDecorations
and the MWM transientDecoration resource (for
transient windows). If no value has been supplied for XmNmwmDecorations,
MWM displays the decorations specified by the
clientDecoration or
transientDecoration resource.
Functions
An application expresses preferences for MWM window functions by supplying a value for the functions field of the _MOTIF_WM_HINTS property on the window. A Motif application does this by supplying a value for the VendorShell resource XmNmwmFunctions. The value is the bitwise inclusive OR of one or more flag bit constants, each of which indicates a preference for or against a particular function. If a value has been supplied for this resource, MWM displays only those functions specified by both XmNmwmFunctions and the MWM clientFunctions resource (for primary windows) or specified by both XmNmwmFunctions and the MWM transientFunctions resource (for transient windows). If no value has been supplied for XmNmwmFunctions, MWM displays the functions specified by the clientFunctions or transientFunctions resource.
BulletinBoard may change the initial value of XmNmwmFunctions
if its parent is a subclass of VendorShell. The BulletinBoard
resource XmNnoResize
determines whether the decorations of the VendorShell parent include
resize controls.
Input Mode
An application can inform MWM that it should impose constraints on which windows can obtain input. It does so by setting the input_mode field of the _MOTIF_WM_HINTS property on a window. A Motif application does this by supplying a value for the VendorShell resource XmNmwmInputMode. For a BulletinBoard whose parent is a DialogShell, the application can set XmNmwmInputMode indirectly by specifying a value for the BulletinBoard resource XmNdialogStyle.
The possible modes are as follows:
An application can supply items for MWM to add to the end of the
window menu for a window by specifying a value for the _MOTIF_WM_MENU
property. A Motif application does this by supplying a value for the
VendorShell resource XmNmwmMenu.
The window menu itself is the value of the MWM
windowMenu resource.
MWM Messages
An application can specify a message for MWM to send the
application when the user invokes the f.send_msg
function. The application places a _MOTIF_WM_MESSAGES atom on the
WM_PROTOCOLS property for the window. The application also places an
atom on the _MOTIF_WM_MESSAGES property. When the
f.send_msg function is invoked with this atom as the
argument, MWM sends the application a ClientMessage. The application
can use XmAddWMProtocols
to place a _MOTIF_WM_MESSAGES atom on the WM_PROTOCOLS property, and
it can use XmAddProtocolCallback
to place an atom on the _MOTIF_WM_MESSAGES property and associate it
with a routine to be called when MWM sends the ClientMessage.
MWM Information
MWM maintains a _MOTIF_WM_INFO property on the root window of each screen it manages. This property is available for applications to inspect but not to change. The XmIsMotifWMRunning routine examines this property when determining whether or not MWM is running.