doc: Auto-generate Protocol/Interfaces section instead

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
This commit is contained in:
Tiago Vignatti 2012-10-08 18:39:58 +03:00 committed by Kristian Høgsberg
parent d3fe28384c
commit 7fe381861b
3 changed files with 66 additions and 128 deletions

View file

@ -17,7 +17,7 @@ noinst_DATA = Wayland $(publican_targets)
pubdir = $(docdir)/Wayland/en-US
publican_targets = $(publican_sources:$(srcdir)/en_US%=$(builddir)/en-US%) \
en-US/ProtocolSpec.xml
en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml
# The Protocol.xml is purely generated and required before running publican
en-US/ProtocolSpec.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-to-docbook.xsl
@ -25,10 +25,16 @@ en-US/ProtocolSpec.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-to
$(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-to-docbook.xsl \
$(top_srcdir)/protocol/wayland.xml > en-US/ProtocolSpec.xml
en-US/ProtocolInterfaces.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/protocol-interfaces-to-docbook.xsl
$(AM_V_GEN)$(MKDIR_P) en-US/images
$(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-interfaces-to-docbook.xsl \
$(top_srcdir)/protocol/wayland.xml > en-US/ProtocolInterfaces.xml
# Copy the en_US source files into en-US destination
# This is required for out-of-source-tree build as publican does not allow us
# to specify the location of the source code.
$(builddir)/en-US/%: $(srcdir)/en_US/% en-US/ProtocolSpec.xml $(publican_sources)
$(builddir)/en-US/%: $(srcdir)/en_US/% en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml $(publican_sources)
$(AM_V_GEN)cp -f $< $@
# Run publican for the builddir on the generated (or copied) source
@ -38,7 +44,7 @@ Wayland: $(publican_targets)
--config $(srcdir)/publican.cfg
@touch Wayland
CLEANFILES = en-US/ProtocolSpec.xml $(publican_targets)
CLEANFILES = en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml $(publican_targets)
clean-local:
$(AM_V_at)rm -fr en-US

View file

@ -163,131 +163,7 @@
</variablelist>
</para>
</section>
<section id="sect-Protocol-Interfaces">
<title>Interfaces</title>
<para>
The protocol includes several interfaces which are used for
interacting with the server. Each interface provides requests,
events, and errors (which are really just special events) as described
above. Specific compositor implementations may have their own
interfaces provided as extensions, but there are several which are
always expected to be present.
</para>
<para>
Core interfaces:
<variablelist>
<varlistentry>
<term>wl_display</term>
<listitem>
<para>
provides global functionality like object binding and
fatal error events
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_callback</term>
<listitem>
<para>
callback interface for done events
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_compositor</term>
<listitem>
<para>
core compositor interface, allows surface creation
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_shm</term>
<listitem>
<para>
buffer management interface with buffer creation and format
handling
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_buffer</term>
<listitem>
<para>
buffer handling interface for indicating damage and object
destruction, also provides buffer release events from the
server
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_data_offer</term>
<listitem>
<para>
for accepting and receiving specific mime types
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_data_source</term>
<listitem>
<para>
for offering specific mime types
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_data_device</term>
<listitem>
<para>
lets clients manage drag &amp; drop, provides pointer enter/leave events and motion
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_data_device_manager</term>
<listitem>
<para>
for managing data sources and devices
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_shell</term>
<listitem>
<para>
shell surface handling
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_shell_surface</term>
<listitem>
<para>
shell surface handling and desktop-like events (e.g. set a
surface to fullscreen, display a popup, etc.)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_seat</term>
<listitem>
<para>
cursor setting, motion, button, and key events, etc.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>wl_output</term>
<listitem>
<para>
events describing an attached output (subpixel orientation,
current mode &amp; geometry, etc.) </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<xi:include href="ProtocolInterfaces.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<section id="sect-Protocol-Connect-Time">
<title>Connect Time</title>
<para>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:output method="xml" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<!-- insert docbook's DOCTYPE blurb -->
<xsl:text disable-output-escaping = "yes"><![CDATA[
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "Wayland.ent">
%BOOK_ENTITIES;
]>
]]></xsl:text>
<section id="sect-Protocol-Interfaces">
<title>Interfaces</title>
<para>
The protocol includes several interfaces which are used for
interacting with the server. Each interface provides requests,
events, and errors (which are really just special events) as described
above. Specific compositor implementations may have their own
interfaces provided as extensions, but there are several which are
always expected to be present.
</para>
<para>
Core interfaces:
<variablelist>
<xsl:apply-templates select="protocol/interface" />
</variablelist>
</para>
</section>
</xsl:template>
<!-- Interfaces summary -->
<xsl:template match="interface" >
<varlistentry>
<xsl:attribute name="id">protocol-summary-<xsl:value-of select="name()"/>-<xsl:value-of select="@name" />
</xsl:attribute>
<term>
<xsl:value-of select="@name" />
<xsl:if test="description/@summary">
- <xsl:value-of select="description/@summary" />
</xsl:if>
</term>
<listitem>
<para>
<xsl:value-of select="description"/>
</para>
</listitem>
</varlistentry>
</xsl:template>
</xsl:stylesheet>
<!-- vim: set expandtab shiftwidth=2: -->