357 lines
19 KiB
HTML
357 lines
19 KiB
HTML
|
<html>
|
||
|
<head>
|
||
|
<title>The Official FVWM Homepage - Fvwm-to-Module Communication</title>
|
||
|
</head>
|
||
|
<body BACKGROUND="black-stone1.jpg"
|
||
|
bgcolor="#000000" text="#ffffff"
|
||
|
link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
|
||
|
<center>
|
||
|
<h1><font color="pink">The Official FVWM Homepage - Fvwm-to-Module Communication</font></h1>
|
||
|
</center>
|
||
|
<H2> <font color="turquoise">When communication takes place</font></h2>
|
||
|
Fvwm
|
||
|
can send messages to the modules in either a broadcast mode, or a
|
||
|
module specific mode. Certain messages regarding important window or
|
||
|
desktop manipulations are broadcast to all modules, whether they
|
||
|
want it or not. Modules are able to request information about current windows
|
||
|
from fvwm, via the Send_WindowList built-in. When invoked this way,
|
||
|
only requesting module receives the data.
|
||
|
<H2> <font color="turquoise">Communication packet format</font></h2>
|
||
|
Packets from fvwm to modules conform to a standard format, so modules
|
||
|
which are not interested in broadcast messages can easily ignore them.
|
||
|
A header consisting of 4 unsigned long integers, followed by a body of
|
||
|
a variable length make up a packet. The header always begins with
|
||
|
0xffffffff. This is provided to help modules re-synchronize to the
|
||
|
data stream if necessary. The next entry describes the packet type.
|
||
|
Existing packet types are listed in the file fvwm/module.h:
|
||
|
<font color="yellow"><PRE>
|
||
|
#define <A href="#M_NEW_PAGE">M_NEW_PAGE</A> (1)
|
||
|
#define <A href="#M_NEW_DESK">M_NEW_DESK</A> (1<<1)
|
||
|
#define <A href="#M_ADD_WINDOW">M_ADD_WINDOW</A> (1<<2)
|
||
|
#define <A href="#M_RAISE_WINDOW">M_RAISE_WINDOW</A> (1<<3)
|
||
|
#define <A href="#M_LOWER_WINDOW">M_LOWER_WINDOW</A> (1<<4)
|
||
|
#define <A href="#M_CONFIGURE_WINDOW">M_CONFIGURE_WINDOW</A> (1<<5)
|
||
|
#define <A href="#M_FOCUS_CHANGE">M_FOCUS_CHANGE</A> (1<<6)
|
||
|
#define <A href="#M_DESTROY_WINDOW">M_DESTROY_WINDOW</A> (1<<7)
|
||
|
#define <A href="#M_ICONIFY">M_ICONIFY</A> (1<<8)
|
||
|
#define <A href="#M_DEICONIFY">M_DEICONIFY</A> (1<<9)
|
||
|
#define <A href="#M_WINDOW_NAME">M_WINDOW_NAME</A> (1<<10)
|
||
|
#define <A href="#M_ICON_NAME">M_ICON_NAME</A> (1<<11)
|
||
|
#define <A href="#M_RES_CLASS">M_RES_CLASS</A> (1<<12)
|
||
|
#define <A href="#M_RES_NAME">M_RES_NAME</A> (1<<13)
|
||
|
#define <A href="#M_END_WINDOWLIST">M_END_WINDOWLIST</A> (1<<14)
|
||
|
#define <A href="#M_ICON_LOCATION">M_ICON_LOCATION</A> (1<<15)
|
||
|
#define <A href="#M_MAP">M_MAP</A> (1<<16)
|
||
|
#define <A href="#M_ERROR">M_ERROR</A> (1<<17)
|
||
|
#define <A href="#M_CONFIG_INFO">M_CONFIG_INFO</A> (1<<18)
|
||
|
#define <A href="#M_END_CONFIG_INFO">M_END_CONFIG_INFO</A> (1<<19)
|
||
|
#define <A href="#M_ICON_FILE">M_ICON_FILE</A> (1<<20)
|
||
|
#define <A href="#M_DEFAULTICON">M_DEFAULTICON</A> (1<<21)
|
||
|
#define <A href="#M_STRING">M_STRING</A> (1<<22)
|
||
|
#define <A href="#M_MINI_ICON">M_MINI_ICON</A> (1<<23)
|
||
|
#define <A href="#M_WINDOWSHADE">M_WINDOWSHADE</A> (1<<24)
|
||
|
#define <A href="#M_DEWINDOWSHADE">M_DEWINDOWSHADE</A> (1<<25)
|
||
|
#define <A href="#M_LOCKONSEND">M_LOCKONSEND</A> (1<<26)
|
||
|
#define <A href="#M_SENDCONFIG">M_SENDCONFIG</A> (1<<27)
|
||
|
</PRE></font>
|
||
|
<P>
|
||
|
Additional packet types will be defined in the future. The third entry
|
||
|
in the header tells the total length of the packet, in unsigned longs,
|
||
|
including the header. The fourth entry is the last time stamp received
|
||
|
from the X server, which is expressed in milliseconds.
|
||
|
<P>
|
||
|
The body information is packet specific, as described below.
|
||
|
<H2><A NAME="M_NEW_PAGE">M_NEW_PAGE</A></H2>
|
||
|
<P>
|
||
|
These packets contain 5 integers. The first two are the x and y
|
||
|
coordinates of the upper left corner of the current viewport on the
|
||
|
virtual desktop. The third value is the number of the current desktop.
|
||
|
The fourth and fifth values are the maximum allowed values of the
|
||
|
coordinates of the upper-left hand corner of the viewport.
|
||
|
<P>
|
||
|
<H2><A NAME="M_NEW_DESK">M_NEW_DESK</A></H2>
|
||
|
<P>
|
||
|
The body of this packet consists of a single long integer, whose value
|
||
|
is the number of the currently active desktop. This packet is
|
||
|
transmitted whenever the desktop number is changed.
|
||
|
<P>
|
||
|
<H2><A NAME="M_ADD_WINDOW">M_ADD_WINDOW</A>, and <A NAME="M_CONFIGURE_WINDOW">M_CONFIGURE_WINDOW</A></H2>
|
||
|
<P>
|
||
|
These packets contain 24 values. The first 3 identify the window, and
|
||
|
the next twelve identify the location and size, as described in the
|
||
|
table below. Configure packets will be generated when the
|
||
|
viewport on the current desktop changes, or when the size or location
|
||
|
of the window is changed. The flags field is an bitwise OR of the
|
||
|
flags defined in fvwm.h.
|
||
|
<P>
|
||
|
<P><DIV ALIGN=CENTER><P ALIGN=CENTER><TABLE COLS=2 BORDER FRAME=BOX RULES=GROUPS>
|
||
|
<COLGROUP><COL ALIGN=LEFT><COLGROUP><COL ALIGN=LEFT>
|
||
|
<TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=CENTER NOWRAP COLSPAN=2>
|
||
|
Format for Add and Configure Window Packets</TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Byte </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Significance </TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>0 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> 0xffffffff - Start of packet </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
1 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> packet type </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
2 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> length of packet, including header, expressed in long integers
|
||
|
</TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>3 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the application's top level window </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
4 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the Fvwm frame window </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
5 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pointer to the Fvwm database entry </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
6 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> X location of the window's frame </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
7 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Y location of the window's frame</TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
8 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Width of the window's frame (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
9 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Height of the window's frame (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
10 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Desktop number</TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
11 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Windows flags field</TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
12 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Title Height (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
13 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Border Width (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
14 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Base Width (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
15 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Base Height (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
16 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Resize Width Increment(pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
17 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Resize Height Increment (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
18 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Minimum Width (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
19 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Minimum Height (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
20 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Maximum Width Increment(pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
21 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Maximum Height Increment (pixels) </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
22 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Icon Label Window ID, or 0</TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
23 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Icon Pixmap Window ID, or 0</TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
24 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Window Gravity</TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> \
|
||
|
25 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pixel value of the text color </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
26 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pixel value of the window border color </TD></TR>
|
||
|
</TBODY>
|
||
|
</TABLE>
|
||
|
</P></DIV><P><H2>
|
||
|
<A NAME="M_LOWER_WINDOW">M_LOWER_WINDOW</A>,
|
||
|
<A NAME="M_RAISE_WINDOW">M_RAISE_WINDOW</A>, and
|
||
|
<A NAME="M_DESTROY_WINDOW">M_DESTROY_WINDOW</A>
|
||
|
</H2>
|
||
|
<P>
|
||
|
These packets contain 3 values, all of the same size as an unsigned
|
||
|
long. The first value is the ID of the affected application's top level
|
||
|
window, the next is the ID of the Fvwm frame window, and the final
|
||
|
value is the pointer to Fvwm's internal database entry for that
|
||
|
window. Although the pointer itself is of no use to a module, it can
|
||
|
be used as a reference number when referring to the window.
|
||
|
<P>
|
||
|
<P><DIV ALIGN=CENTER><P ALIGN=CENTER><TABLE COLS=2 BORDER FRAME=BOX RULES=GROUPS>
|
||
|
<COLGROUP><COL ALIGN=LEFT><COLGROUP><COL ALIGN=LEFT>
|
||
|
<TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=CENTER NOWRAP COLSPAN=2>
|
||
|
Format for Lower, Raise, and Focus Change Packets</TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Byte </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Significance </TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>0 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> 0xffffffff - Start of packet </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
1 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> packet type </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
2 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> length of packet, including header, expressed in long integers
|
||
|
</TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>3 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the application's top level window </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
4 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the Fvwm frame window </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
5 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pointer to the Fvwm database entry </TD></TR>
|
||
|
</TBODY>
|
||
|
</TABLE>
|
||
|
</P></DIV><P><H2><A NAME="M_FOCUS_CHANGE">M_FOCUS_CHANGE</A></H2>
|
||
|
<P>
|
||
|
These packets contain 5 values, all of the same size as an unsigned
|
||
|
long. The first value is the ID of the affected application's (the
|
||
|
application which now has the input focus) top level
|
||
|
window, the next is the ID of the Fvwm frame window, and the final
|
||
|
value is the pointer to Fvwm's internal database entry for that
|
||
|
window. Although the pointer itself is of no use to a module, it can
|
||
|
be used as a reference number when referring to the window. The fourth
|
||
|
and fifth values are the text focus color's pixel value and the window
|
||
|
border's focus color's pixel value. In the
|
||
|
event that the window which now has the focus is not a window which
|
||
|
fvwm recognizes, only the ID of the affected application's top level
|
||
|
window is passed. Zeros are passed for the other values.
|
||
|
<P>
|
||
|
<H2>
|
||
|
<A NAME="M_ICONIFY">M_ICONIFY</A> and
|
||
|
<A NAME="M_ICON_LOCATION">M_ICON_LOCATION</A>
|
||
|
</H2>
|
||
|
<P>
|
||
|
These packets contain up to 11 values. The first 3 are the usual identifiers,
|
||
|
and the next four describe the location and size of the window being iconified,
|
||
|
as described in the table.
|
||
|
Under the conditons where an actual builtin icon is created or destroyed,
|
||
|
the next 4 values describe the location and size of the icon.
|
||
|
Note that M_ICONIFY packets are sent
|
||
|
whenever a window is first iconified, or when the icon window is changed
|
||
|
via the XA_WM_HINTS in a property notify event. An M_ICON_LOCATION
|
||
|
packet will be sent when the icon is moved.
|
||
|
In addition, if a window which has transients is
|
||
|
iconified, then an M_ICONIFY packet is sent for each transient
|
||
|
window, with the x, y, width, and height fields set to 0. This packet
|
||
|
will be sent even if the transients were already iconified. Note that
|
||
|
no icons are actually generated for the transients in this case.
|
||
|
<P>
|
||
|
<P><DIV ALIGN=CENTER><P ALIGN=CENTER><TABLE COLS=2 BORDER FRAME=BOX RULES=GROUPS>
|
||
|
<COLGROUP><COL ALIGN=LEFT><COLGROUP><COL ALIGN=LEFT>
|
||
|
<TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=CENTER NOWRAP COLSPAN=2>
|
||
|
Format for Iconify and Icon Location Packets</TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Byte </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>Significance </TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>0 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> 0xffffffff - Start of packet </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
1 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> packet type </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
2 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> length of packet, including header, expressed in long integers
|
||
|
</TD></TR>
|
||
|
</TBODY><TBODY>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>3 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the application's top level window </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
4 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> ID of the Fvwm frame window </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
5 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Pointer to the Fvwm database entry </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
6 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> X location of the window's frame </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
7 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Y location of the window's frame</TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
8 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Width of the window's frame </TD></TR>
|
||
|
<TR><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP>
|
||
|
9 </TD><TD VALIGN=BASELINE ALIGN=LEFT NOWRAP> Height of the window's frame </TD></TR>
|
||
|
</TBODY>
|
||
|
</TABLE>
|
||
|
</P></DIV><P><H2><A NAME="M_DEICONIFY">M_DEICONIFY</A></H2>
|
||
|
<P>
|
||
|
These packets contain up to 11 values, starting with the usual window
|
||
|
identifiers. The packet is sent when a window is de-iconified.
|
||
|
Like M_ICONIFY, window and icon location and size are sent except
|
||
|
that icon information comes first followed by window information.
|
||
|
<P>
|
||
|
<H2><A NAME="M_MAP">M_MAP</A></H2>
|
||
|
<P>
|
||
|
These packets contain 3 values, which are the usual window
|
||
|
identifiers. The packets are sent when a window is mapped, if it is
|
||
|
not being deiconified. This is useful to determine when a window is
|
||
|
finally mapped, after being added.
|
||
|
<P>
|
||
|
<H2>
|
||
|
<A NAME="M_WINDOW_NAME">M_WINDOW_NAME</A>,
|
||
|
<A NAME="M_ICON_NAME">M_ICON_NAME</A>,
|
||
|
<A NAME="M_RES_CLASS">M_RES_CLASS</A>,
|
||
|
<A NAME="M_RES_NAME">M_RES_NAME</A>,
|
||
|
</H2>
|
||
|
<P>
|
||
|
These packets contain 3 values, which are the usual window
|
||
|
identifiers, followed by a variable length character string. The
|
||
|
packet size field in the header is expressed in units of unsigned
|
||
|
longs, and the packet is zero-padded until it is the size of an
|
||
|
unsigned long. The RES_CLASS and RES_NAME fields are fields in the
|
||
|
XClass structure for the window. Icon and Window name packets will
|
||
|
will be sent upon window creation or whenever the name is changed. The
|
||
|
RES_CLASS and RES_NAME packets are sent on window creation. All
|
||
|
packets are sent in response to a Send_WindowList request from a module.
|
||
|
<P>
|
||
|
<H2><A NAME="M_END_WINDOWLIST">M_END_WINDOWLIST</A></H2>
|
||
|
<P>
|
||
|
These packets contain no values. This packet is sent to mark the end
|
||
|
of transmission in response to a Send_WindowList request. A module
|
||
|
which request Send_WindowList, and processes all packets received
|
||
|
between the request and the M_END_WINDOWLIST will have a snapshot of
|
||
|
the status of the desktop.
|
||
|
<P>
|
||
|
<H2><A NAME="M_ERROR">M_ERROR</A></H2>
|
||
|
<P>
|
||
|
When fvwm has an error message to report, it is echoed to the modules
|
||
|
in a packet of this type. This packet has 3 values, all zero, followed
|
||
|
by a variable length string which contains the error message.
|
||
|
<P>
|
||
|
<H2><A NAME="M_CONFIG_INFO">M_CONFIG_INFO</A></H2>
|
||
|
<P>
|
||
|
Fvwm records all configuration commands that it encounters which
|
||
|
begins with the character ``*''. When the built-in command
|
||
|
``Send_ConfigInfo'' is invoked by a module, this entire list is
|
||
|
transmitted to the module in packets (one line per packet) of this
|
||
|
type. The packet consists of three zeros, followed by a variable
|
||
|
length character string. In addition, the PixmapPath, IconPath, and
|
||
|
ClickTime are sent to the module.
|
||
|
<P>
|
||
|
Note that all the module configuration commands are sent. Each
|
||
|
module has to check the configuration commands to see if
|
||
|
it is a command for that specific module. This is actually
|
||
|
a feature. This way one module can learn about all other
|
||
|
modules configurations. Also fvwm2 doesn't currently know
|
||
|
anything about module aliases so all module configuration
|
||
|
commands have to be sent for at least 2 reasons.
|
||
|
It is unlikely that this behavior will ever change.
|
||
|
<P>
|
||
|
Starting with release 2.0.47, a module can set M_SENDCONFIG on in its
|
||
|
mask and recieve M_CONFIG_INFO packets while it is running.
|
||
|
(M_CONFIG_INFO has to be on also.) A module can use M_SENDCONFIG
|
||
|
to be able to change configuration while it is running.
|
||
|
Refer to module FvwmAnimate for an example.
|
||
|
<P>
|
||
|
<H2><A NAME="M_END_CONFIG_INFO">M_END_CONFIG_INFO</A></H2>
|
||
|
<P>
|
||
|
After fvwm sends all of its M_CONFIG_INFO packets to a module, it
|
||
|
sends a packet of this type to indicate the end of the configuration
|
||
|
information. This packet contains no values.
|
||
|
This packet it not sent for subsequent config lines sent when the
|
||
|
M_SENDCONFIG mask bit is on.
|
||
|
<H2><A NAME="M_ICON_FILE">M_ICON_FILE</A></H2>
|
||
|
This packet is broadcast when a window is added or during
|
||
|
send window list. It is only sent for windows that have icons
|
||
|
defined, and contains the filename of the icon.
|
||
|
<H2><A NAME="M_DEFAULTICON">M_DEFAULTICON</A></H2>
|
||
|
This packet is sent during
|
||
|
send window list. This is the icon associated with Style "*".
|
||
|
The packet contains the filename of the icon.
|
||
|
<H2><A NAME="M_STRING">M_STRING</A></H2>
|
||
|
This packet is sent when a "SendToModule" command is processed.
|
||
|
<H2><A NAME="M_MINI_ICON">M_MINI_ICON</A></H2>
|
||
|
This packet is broadcast when a window is added or during
|
||
|
send window list. It is only sent for windows that have mini_icons
|
||
|
defined, and contains the filename of the mini_icon.
|
||
|
<H2><A NAME="M_WINDOWSHADE">M_WINDOWSHADE</A> and
|
||
|
<A NAME="M_DEWINDOWSHADE">M_DEWINDOWSHADE</A>
|
||
|
</H2>
|
||
|
This packet is sent when a window is window shaded.
|
||
|
It contains no additional information.
|
||
|
<H2><A NAME="M_LOCKONSEND">M_LOCKONSEND</A></H2>
|
||
|
This is a request sent from modules to fvwm and is described
|
||
|
under <a href="mod_m2f_communication.html">Module to Fvwm communication</a>.
|
||
|
<H2><A NAME="M_SENDCONFIG">M_SENDCONFIG</A></H2>
|
||
|
This is a request sent from modules to fvwm and is described
|
||
|
under <a href="mod_m2f_communication.html">Module to Fvwm communication</a>.
|
||
|
<P>
|
||
|
<hr>
|
||
|
</body>
|
||
|
</html>
|