diff options
Diffstat (limited to 'kjsembed/tools/doxygen2cons_h.xsl')
-rw-r--r-- | kjsembed/tools/doxygen2cons_h.xsl | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/kjsembed/tools/doxygen2cons_h.xsl b/kjsembed/tools/doxygen2cons_h.xsl new file mode 100644 index 00000000..8140d52e --- /dev/null +++ b/kjsembed/tools/doxygen2cons_h.xsl @@ -0,0 +1,79 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output method="text" /> + +<xsl:template match="/doxygen/compounddef"> + +<xsl:variable name="clazz" select="compoundname" /> +<xsl:variable name="consmeth" select="sectiondef/memberdef[@kind='function' and @prot='public']" /> + +#ifndef KJSEMBED_<xsl:value-of select="$clazz" />_H +#define KJSEMBED_<xsl:value-of select="$clazz" />_H + +#include <kjs/interpreter.h> +#include <kjs/object.h> + +#include <kjsembed/jsobjectproxy_imp.h> + +class <xsl:value-of select="$clazz" />; + +/** + * Namespace containing the KJSEmbed library. + */ +namespace KJSEmbed { + +/** + * Wrapper class for <xsl:value-of select="$clazz" /> constructors. + * + * @author Richard Moore, rich@kde.org + */ +class <xsl:value-of select="$clazz" />Cons : public JSProxyImp +{ +public: + /** Enumerates the constructors supported by this class. */ + enum Constructors { +<xsl:for-each select="$consmeth"> + <xsl:choose> + <xsl:when test="name = $clazz"> + <xsl:variable name="cons_name"><xsl:value-of select="name" />_<xsl:value-of select="position()" /></xsl:variable> + <xsl:variable name="cons_id">Constructor_<xsl:value-of select="$cons_name" /></xsl:variable> + <xsl:text> </xsl:text><xsl:value-of select="$cons_id" />, +</xsl:when> + </xsl:choose> +</xsl:for-each> + LastConstuctor = -1 + }; + + // + // Constructors implemented by this class. + // +<xsl:for-each select="$consmeth"> + <xsl:variable name="cons_name"><xsl:value-of select="name" />_<xsl:value-of select="position()" /></xsl:variable> + <xsl:choose> + <xsl:when test="name = $clazz"> + KJS::Object <xsl:value-of select="$cons_name" />( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args );</xsl:when> + </xsl:choose> +</xsl:for-each> + + // + // JS binding code. + // + + /** Returns true iff this object implements the construct function. */ + virtual bool implementsConstruct() const { return true; } + + /** Invokes the construct function. */ + virtual KJS::Value construct( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args ); +private: + int id; +}; + +} // namespace KJSEmbed + +#endif // KJSEMBED_<xsl:value-of select="compoundname" />_H + +// Local Variables: +// c-basic-offset: 4 +// End: + +</xsl:template> +</xsl:stylesheet> |