Tk::Mwm - Communicate with the Motif(tm) window manager.


use Tk::Mwm;


$toplevel->mwm(option ?,args?)


Interface to special extentions supported by mwm.


$toplevel->mwmDecoration?(?option??=>value? ?,...?)?

When no options are given, this method returns the values of all the decorations options for the toplevel window with the $toplevel. When only one option is given without specifying the value, the current value of that option is returned. When more than one "option-value" pairs are passed to this method, the specified values will be assigned to the corresponding options. As a result, the appearance of the Motif decorations around the toplevel window will be changed. Possible options are: -border, -menu, -maximize, -minimize, -resizeh and -title. The value must be a Boolean value. The values returned by this command are undefined when the window is not managed by mwm.


This returns value is true if mwm is running on the screen where the specified window is located, false otherwise.


When no additional options are given, this method returns all protocols associated with this toplevel window.

$toplevel->mwmProtocol(activate => protocol_name)

Activate the mwm protocol message in mwm's menu.

$toplevel->MwmProtocol(add => protocol_name, menu_message)

Add a new mwm protocol message for this toplevel window. The message is identified by the string name specified in protocol_name. A menu item will be added into mwm's menu as specified by menu_message. Once a new mwm protocol message is added to a toplevel, it can be caught by the TK protocol method. Here is an example:

$toplevel->mwmProtocol('add' => 'MY_PRINT_HELLO', '"Print Hello" _H Ctrl<Key>H');

$toplevel->protocol('MY_PRINT_HELLO' => sub {print "Hello"});

$toplevel->mwmProtocol('deactivate' => protocol_name)

Deactivate the mwm protocol message in mwm's menu.

$toplevel->mwmProtocol('delete' => protocol_name)

Delete the mwm protocol message from mwm's menu. Please note that the window manager protocol handler associated with this protocol (by the protocol method) is not deleted automatically. You have to delete the protocol handle explicitly. E.g.:

$mw->mwmProtocol('delete' => 'MY_PRINT_HELLO');

$mw->protocol('MY_PRINT_HELLO' => '');


This is a Tix extension which perl/Tk has adopted. It has not been tested as perl/Tk's author has not got round to installing a Motif Window Manager.

On some versions of mwm, the -border will not disappear unless -resizeh is turned off. Also, the -title will not disappear unless all of -title, -menu, -maximize and -minimize are turned off.


Tk::Wm Tk::tixWm Tk::Toplevel


window manager, mwm, TIX


Ioi Kim Lam -