/* $XConsortium: README /main/3 1996/07/15 14:06:45 drk $ */

                                Panner
                                ------

************************************************************************
*  This demo only works with Mwm 2.0.  It does not work with Mwm 2.1.  *
************************************************************************

Panner demonstrates how an application can interface to Mwm's virtual
screen support protocol.  The protocol allows other application to pan
the desktop Mwm is running on.  With Panner, you can see a miniature
version of your desktop and interactively pan the display. Panner
also allows you to connect to other displays and pan them as well.
Please use this feature with discretion; it can be most anoying to
others >:-)

Panner starts-up displaying a notebook widget with one page.  Each page
in the notebook represents a display screen.  As you add other
displays to Panner, they appear as new pages in the notebook.  In the
notebook page, you should see several colored rectangles. Each
rectangle represents a window on the display.  The is also a dashed
rectangle which represents the display screen.  You can grab hold of
this rectangle using Button1 and interactively move it about the page
causing the display to pan.  If you wish to quickly 'hop' to another
location on the desktop, press Button1 on the destination and the
screen will be centered around that point.

The Display item in the menu bar contains the following items:

	Update - This will refresh the notebook page and redraw
		 each miniature window.

	New Display - This will prompt you for the name of a new
	              Display connection name.

In Mwm's Virtual Screen Protocol, it is possible to 'pin' windows so
that they are not effected by the panning.  This can be done by using
the following Mwm resources:

	clientPinned - tells Mwm to ignore a particular client's
	               window(s) when panning windows.

	iconPinned   - tells Mwm to ignore a particular client's
	               icon(s) when panning windows.

Since you do not want to have Panner move while you are panning,
you must tell Mwm to pin the panner window using the following
line in your .Xdefaults file:

	Mwm*Panner*ClientPinned:    True


To find out more about Mwm's Virtual Screen Protocol, see the
Motif 2.0 Programmer's Reference or User's Guide.



If you wish to interactively pin and unpin windows, there is a new,
but unsupported function in Mwm call f.toggle_pin_state.  This function
can be added to a window's menu and allows you to pin and unpin
windows.

There are five associated resources. These resources modify the label
used in the window menu to show the state of the window.  The default
for this label is to display the string "make pinned" when the
associated window is not pinned, and "make unpinned" when it is
pinned.  You can specify a new set of labels or pixmaps using the
following resources:

	
	pinStateLabelType
		This specifies the label type.

		XmPIXMAP Displays a pixmap using pinnedPixmap
		and unpinnedPixmap.

		XmSTRING Displays text using pinnedString and
		unpinnedString.

	pinnedString
		This specifies the string to display when the
		pinStateLabelType is XmSTRING and the associated
		window is pinned.

	unpinnedString
		This specifies the string to display when the
		pinStateLabelType is XmSTRING and the associated
		window is unpinned.

	pinnedPixmap
		This specifies the pixmap to display when the
		pinStateLabelType is XmPIXMAP and the associated
		window is pinned.

	unpinnedPixmap
		This specifies the pixmap to display when the
		pinStateLabelType is XmPIXMAP and the associated
		window is unpinned.


Enjoy,
Andrew deBlois


