----- Original Message -----
From: "Paul Rohr" <[EMAIL PROTECTED]>
To: "Karl Ove Hufthammer" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Thursday, March 08, 2001 6:33 PM
Subject: Re: status matrices and XSL
> Karl,
>
> You're making me a very happy guy! Thanks.
:)
Here's some preliminary work. It contains the few first rows of the UI matrix.
Does it look OK, or does it need radical changing? (The HTML file *does* work in
Netscape 4.x, atleast somewhat, but please do yourself a favour and use Mozilla
0.8!) I'll add the legend and support for other colours later.
The format of the XML file goes like this (see ui_matrix.xml):
matrices (language and date info)
metainfo (document title and a few paragraphs with various information)
header (names and description of the header cells)
section (for dividing the document into sections)
info (section heading and description)
heading (section heading)
description (short section description)
matrix (one or more matrices)
info (matrix info)
heading (the heading of the current matrix)
body (the actual matrix content)
row (one or (usually) more row(s))
cell (with attribute value 'yes', 'no', 'partially' &c. and
possibly textual content, e.g. BugZilla links)
--
Karl Ove Hufthammer
<!-- Add DC info --> <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon" extension-element-prefixes="saxon" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output encoding="iso-8859-1" indent="yes" method="html" omit-xml-declaration="no" doctype-public="-//W3C//DTD HTML 4.01//EN"/> <xsl:template match="matrices"> <html><xsl:attribute name="lang"><xsl:value-of select="@xml:lang"/></xsl:attribute> <head> <meta http-equiv="Content-Language"><xsl:attribute name="content"><xsl:value-of select="@xml:lang"/></xsl:attribute></meta> <title><xsl:value-of select="metainfo/title"/></title> </head> <style type="text/css"> <![CDATA[ body { color: black; background: white; font-family: "Myriad Web", "Arial Unicode MS", Helvetica, Arial, Geneva, sans-serif; padding: 1em 5%; margin: 0; } p, ul { max-width: 32em; margin-left: auto; margin-right: auto; } li { margin-left: 3em; } h1 { text-align: center; } dt { font-weight: bold; } table { margin: 0 auto 2em auto; } th { padding: .5em 1em; } td { padding: 0.1em .2em; margin: 0; } td, th { text-align: center; } td.yes { background: #73ab73; color: white; border-color: #73ab73; } td.no { background: #9a6262; color: white; border-color: #9a6262; } td.partially { background: #d8d89c; color: black; border-color: #d8d89c; } td.unknown { background: #b38fbf; color: black; border-color: #b38fbf; } td.na { background: white; color: black; border-color: #9a6262; } td :link, td :visited { color: white !important; background: transparent; } td.partially :link, td.partially :visited, td.na :link, td.na :visited { color: black !important; background: transparent; } td[class] { border-style: outset; border-width: 1px; /* border-left: none; border-right: none; */ } ]]> </style> <body> <h1><xsl:apply-templates select="metainfo/title"/></h1> <xsl:apply-templates select="metainfo"/> <hr/> <h2>Column explanation</h2> <dl> <xsl:for-each select="//header/row/cell"> <xsl:if test="text()"> <dt><xsl:value-of select="@value"/></dt> <dd><xsl:apply-templates/></dd> </xsl:if> </xsl:for-each> </dl> <xsl:for-each select="section"> <hr/> <xsl:apply-templates select="info"/> <xsl:for-each select="matrix"> <xsl:apply-templates/> </xsl:for-each> </xsl:for-each> </body> </html> </xsl:template> <xsl:template match="header"> <thead> <xsl:for-each select="row"> <tr><xsl:apply-templates/></tr> </xsl:for-each> </thead> </xsl:template> <xsl:template match="cell"> <xsl:apply-templates/> </xsl:template> <xsl:template match="header/row/cell"> <th><xsl:value-of select="@value"/></th> </xsl:template> <xsl:template match="emph"> <em><xsl:apply-templates/></em> </xsl:template> <xsl:template match="metainfo"> <xsl:apply-templates select="shortdesc | longdesc"/> </xsl:template> <xsl:template match="longdesc"> <xsl:apply-templates/> </xsl:template> <xsl:template match="para | shortdesc"> <p><xsl:apply-templates/></p> </xsl:template> <xsl:template match="list"> <ul><xsl:apply-templates/></ul> </xsl:template> <xsl:template match="list/item"> <li><xsl:apply-templates/></li> </xsl:template> <xsl:template match="section/info"> <xsl:apply-templates/> </xsl:template> <xsl:template match="section/info/heading"> <h2><xsl:apply-templates/></h2> </xsl:template> <xsl:template match="info/description"> <p><xsl:apply-templates/></p> </xsl:template> <xsl:template match="matrix/info/heading"> <h3><xsl:apply-templates/></h3> </xsl:template> <xsl:template match="matrix/body"> <table cellspacing="0"> <xsl:apply-templates select="//header"/> <tbody> <xsl:for-each select="row"> <tr> <xsl:for-each select="cell"> <td> <xsl:if test="@value"> <xsl:attribute name="class"> <xsl:value-of select="@value"/> </xsl:attribute> </xsl:if> <xsl:choose> <xsl:when test="text()"> <xsl:apply-templates/> </xsl:when> <xsl:otherwise> <xsl:value-of select="@value"/> </xsl:otherwise> </xsl:choose> </td> </xsl:for-each> </tr> </xsl:for-each> </tbody> </table> </xsl:template> <xsl:template match="bug"> <a><xsl:attribute name="href">http://www.abisource.com/bugzilla/show_bug.cgi?id=<xsl:value-of select="@id"/></xsl:attribute>bug <xsl:value-of select="@id"/></a> </xsl:template> <xsl:template match="abbr"> <abbr> <xsl:if test="@title"> <xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute> </xsl:if> <xsl:apply-templates/></abbr> </xsl:template> </xsl:stylesheet>Title: AbiWord UI details
AbiWord UI details
This matrix describes the current extent of platform-specific support for various UI features in AbiWord.
Unlike most applications, AbiWord was designed from the beginning to be part of a cross-platform suite consisting of multiple applications. Thus, each port of AbiWord combines together a mix of the following four kinds of code:
- Cross-application (XAP) vs. application-specific (AP)
- cross-platform (XP) vs. platform-specific (Windows, Unix, etc.)
Any application-specific UI features which are entirely handled in XP code (such as keybindings, menu and toolbar layouts, string translations, etc.) are outside the scope of this document, and thus not listed here.
Column explanation
- XP
- Cross-platform.
- Win
- Windows version.
- Unix
- Unix version.
- Gnome
- Gnome version.
- BeOS
- BeOS version.
- QNX
- QNX version.
- Mac
- MacIntosh version.
Framework
Framework code needs to be ported once for each GUI, and can then be used in multiple applications.
Utilities (abi/src/af/util)
| Feature | XP | Win | Unix | Gnome | BeOS | QNX | Mac |
|---|---|---|---|---|---|---|---|
| Assert | yes | yes | yes | na | unknown | unknown | no |
| Debug | yes | yes | yes | na | unknown | unknown | no |
| String | yes | yes | yes | na | unknown | unknown | no |
| Timer | yes | yes | yes | na | unknown | unknown | no |
2D Graphics (abi/src/af/gr)
| Feature | XP | Win | Unix | Gnome | BeOS | QNX | Mac |
|---|---|---|---|---|---|---|---|
| Graphics | yes | yes | yes | na | unknown | unknown | no |
| Fonts | partially | yes | yes | na | unknown | unknown | no |
| Images | partially | yes | yes | na | unknown | unknown | no |
<?xml version="1.0" encoding="ISO-8859-1"?>
<matrices xml:lang="en" updated="2001-02-09">
<metainfo>
<title>AbiWord <abbr title="User Interface">UI</abbr> details</title>
<shortdesc>This matrix describes the current extent of platform-specific support for various <abbr title="User Interface">UI</abbr> features in AbiWord.</shortdesc>
<longdesc>
<para>Unlike most applications, AbiWord was designed from the beginning to be part of a cross-platform suite consisting of multiple applications. Thus, each port of AbiWord combines together a mix of the following four kinds of code:</para>
<list>
<item>Cross-application (<abbr title="cross-application">XAP</abbr>) <abbr title="versus">vs.</abbr> application-specific (<abbr title="application-specific">AP</abbr>)</item>
<item>cross-platform (<abbr title="cross-platform">XP</abbr>) <abbr>vs.</abbr> platform-specific (Windows, Unix, <abbr title="et cetera">etc.</abbr>)</item>
</list>
<para>Any application-specific <abbr>UI</abbr> features which are entirely handled in <abbr>XP</abbr> code (such as keybindings, menu and toolbar layouts, string translations, <abbr>etc.</abbr>) are outside the scope of this document, and thus not listed here.</para>
</longdesc>
</metainfo>
<header>
<row>
<cell value="Feature"/>
<cell value="XP">Cross-platform.</cell>
<cell value="Win">Windows version.</cell>
<cell value="Unix">Unix version.</cell>
<cell value="Gnome">Gnome version.</cell>
<cell value="BeOS">Be<abbr title="Operating System">OS</abbr> version.</cell>
<cell value="QNX">QNX version.</cell>
<cell value="Mac">MacIntosh version.</cell>
</row>
</header>
<section>
<info>
<heading>Framework</heading>
<description>Framework code needs to be ported once for each <abbr title="Graphical User Interface">GUI</abbr>, and can then be used in multiple applications.</description>
</info>
<matrix>
<info>
<heading>Utilities (abi/src/af/util)</heading>
</info>
<body>
<row>
<cell>Assert</cell>
<cell value="yes"/>
<cell value="yes"/>
<cell value="yes"/>
<cell value="na"/>
<cell value="unknown"/>
<cell value="unknown"/>
<cell value="no"/>
</row>
<row>
<cell>Debug</cell>
<cell value="yes"/>
<cell value="yes"/>
<cell value="yes"/>
<cell value="na"/>
<cell value="unknown"/>
<cell value="unknown"/>
<cell value="no"/>
</row>
<row>
<cell>String</cell>
<cell value="yes"/>
<cell value="yes"/>
<cell value="yes"/>
<cell value="na"/>
<cell value="unknown"/>
<cell value="unknown"/>
<cell value="no"/>
</row>
<row>
<cell>Timer</cell>
<cell value="yes"/>
<cell value="yes"/>
<cell value="yes"/>
<cell value="na"/>
<cell value="unknown"/>
<cell value="unknown"/>
<cell value="no"/>
</row>
</body>
</matrix>
<matrix>
<info>
<heading><abbr title="Two-dimensional">2D</abbr> Graphics (abi/src/af/gr)</heading>
</info>
<body>
<row>
<cell>Graphics</cell>
<cell value="yes"/>
<cell value="yes"/>
<cell value="yes"/>
<cell value="na"/>
<cell value="unknown"/>
<cell value="unknown"/>
<cell value="no"/>
</row>
<row>
<cell>Fonts</cell>
<cell value="partially"/>
<cell value="yes"/>
<cell value="yes"/>
<cell value="na"/>
<cell value="unknown"/>
<cell value="unknown"/>
<cell value="no"/>
</row>
<row>
<cell>Images</cell>
<cell value="partially"/>
<cell value="yes"/>
<cell value="yes"/>
<cell value="na"/>
<cell value="unknown"/>
<cell value="unknown"/>
<cell value="no"/>
</row>
</body>
</matrix>
</section>
</matrices>
