/*
* Copyright 2006 Arnout Engelen <arnouten[remove] at bzzt dot net>
* Copyright 2004-2006 Geert Bevin <gbevin[remove] at uwyn dot com>
* Distributed under the terms of either:
* - the common development and distribution license (CDDL), v1.0; or
* - the GNU Lesser General Public License, v2.1 or later
* $Id: CppXhtmlRenderer.java 3108 2006-03-13 18:03:00Z gbevin $
*/
package com.uwyn.jhighlight.renderer;
import com.uwyn.jhighlight.highlighter.CppHighlighter;
import com.uwyn.jhighlight.highlighter.ExplicitStateHighlighter;
import com.uwyn.jhighlight.renderer.XhtmlRenderer;
import java.util.HashMap;
import java.util.Map;
/**
* Generates highlighted syntax in XHTML from Cpp source.
*
* @author Arnout Engelen (arnouten[remove] at bzzt dot net)
* @author Geert Bevin (gbevin[remove] at uwyn dot com)
* @version $Revision: 0$
*/
public class CppXhtmlRenderer extends XhtmlRenderer
{
public final static HashMap DEFAULT_CSS = new HashMap() {{
put("h1",
"font-family: sans-serif; " +
"font-size: 16pt; " +
"font-weight: bold; " +
"color: rgb(0,0,0); " +
"background: rgb(210,210,210); " +
"border: solid 1px black; " +
"padding: 5px; " +
"text-align: center;");
put("code",
"color: rgb(0,0,0); " +
"font-family: monospace; " +
"font-size: 12px; " +
"white-space: nowrap;");
put(".cpp_plain",
"color: rgb(0,0,0);");
put(".cpp_keyword",
"color: rgb(0,0,0); " +
"font-weight: bold;");
put(".cpp_type",
"color: rgb(0,44,221);");
put(".cpp_operator",
"color: rgb(0,124,31);");
put(".cpp_separator",
"color: rgb(0,33,255);");
put(".cpp_literal",
"color: rgb(188,0,0);");
put(".cpp_comment",
"color: rgb(147,147,147); " +
"background-color: rgb(247,247,247);");
put(".cpp_doxygen_comment",
"color: rgb(147,147,147); " +
"background-color: rgb(247,247,247); " +
"font-style: italic;");
put(".cpp_doxygen_tag",
"color: rgb(147,147,147); " +
"background-color: rgb(247,247,247); " +
"font-style: italic; " +
"font-weight: bold;");
put(".cpp_preproc",
"color: purple;");
}};
@Override
protected Map getDefaultCssStyles()
{
return DEFAULT_CSS;
}
@Override
protected String getCssClass(int style)
{
switch (style)
{
case CppHighlighter.PLAIN_STYLE:
return "cpp_plain";
case CppHighlighter.KEYWORD_STYLE:
return "cpp_keyword";
case CppHighlighter.TYPE_STYLE:
return "cpp_type";
case CppHighlighter.OPERATOR_STYLE:
return "cpp_operator";
case CppHighlighter.SEPARATOR_STYLE:
return "cpp_separator";
case CppHighlighter.LITERAL_STYLE:
return "cpp_literal";
case CppHighlighter.CPP_COMMENT_STYLE:
return "cpp_comment";
case CppHighlighter.DOXYGEN_COMMENT_STYLE:
return "cpp_doxygen_comment";
case CppHighlighter.DOXYGEN_TAG_STYLE:
return "cpp_doxygen_tag";
case CppHighlighter.PREPROC_STYLE:
return "cpp_preproc";
}
return null;
}
@Override
protected ExplicitStateHighlighter getHighlighter()
{
return new CppHighlighter();
}
}