001 /* 002 * Copyright 2006 Arnout Engelen <arnouten[remove] at bzzt dot net> 003 * Copyright 2004-2006 Geert Bevin <gbevin[remove] at uwyn dot com> 004 * Distributed under the terms of either: 005 * - the common development and distribution license (CDDL), v1.0; or 006 * - the GNU Lesser General Public License, v2.1 or later 007 * $Id: CppXhtmlRenderer.java 3108 2006-03-13 18:03:00Z gbevin $ 008 */ 009 package com.uwyn.jhighlight.renderer; 010 011 import com.uwyn.jhighlight.highlighter.CppHighlighter; 012 import com.uwyn.jhighlight.highlighter.ExplicitStateHighlighter; 013 import com.uwyn.jhighlight.renderer.XhtmlRenderer; 014 import java.util.HashMap; 015 import java.util.Map; 016 017 /** 018 * Generates highlighted syntax in XHTML from Cpp source. 019 * 020 * @author Arnout Engelen (arnouten[remove] at bzzt dot net) 021 * @author Geert Bevin (gbevin[remove] at uwyn dot com) 022 * @version $Revision: 0$ 023 */ 024 public class CppXhtmlRenderer extends XhtmlRenderer 025 { 026 public final static HashMap DEFAULT_CSS = new HashMap() {{ 027 put("h1", 028 "font-family: sans-serif; " + 029 "font-size: 16pt; " + 030 "font-weight: bold; " + 031 "color: rgb(0,0,0); " + 032 "background: rgb(210,210,210); " + 033 "border: solid 1px black; " + 034 "padding: 5px; " + 035 "text-align: center;"); 036 037 put("code", 038 "color: rgb(0,0,0); " + 039 "font-family: monospace; " + 040 "font-size: 12px; " + 041 "white-space: nowrap;"); 042 043 put(".cpp_plain", 044 "color: rgb(0,0,0);"); 045 046 put(".cpp_keyword", 047 "color: rgb(0,0,0); " + 048 "font-weight: bold;"); 049 050 put(".cpp_type", 051 "color: rgb(0,44,221);"); 052 053 put(".cpp_operator", 054 "color: rgb(0,124,31);"); 055 056 put(".cpp_separator", 057 "color: rgb(0,33,255);"); 058 059 put(".cpp_literal", 060 "color: rgb(188,0,0);"); 061 062 put(".cpp_comment", 063 "color: rgb(147,147,147); " + 064 "background-color: rgb(247,247,247);"); 065 066 put(".cpp_doxygen_comment", 067 "color: rgb(147,147,147); " + 068 "background-color: rgb(247,247,247); " + 069 "font-style: italic;"); 070 071 put(".cpp_doxygen_tag", 072 "color: rgb(147,147,147); " + 073 "background-color: rgb(247,247,247); " + 074 "font-style: italic; " + 075 "font-weight: bold;"); 076 077 put(".cpp_preproc", 078 "color: purple;"); 079 }}; 080 081 protected Map getDefaultCssStyles() 082 { 083 return DEFAULT_CSS; 084 } 085 086 protected String getCssClass(int style) 087 { 088 switch (style) 089 { 090 case CppHighlighter.PLAIN_STYLE: 091 return "cpp_plain"; 092 case CppHighlighter.KEYWORD_STYLE: 093 return "cpp_keyword"; 094 case CppHighlighter.TYPE_STYLE: 095 return "cpp_type"; 096 case CppHighlighter.OPERATOR_STYLE: 097 return "cpp_operator"; 098 case CppHighlighter.SEPARATOR_STYLE: 099 return "cpp_separator"; 100 case CppHighlighter.LITERAL_STYLE: 101 return "cpp_literal"; 102 case CppHighlighter.CPP_COMMENT_STYLE: 103 return "cpp_comment"; 104 case CppHighlighter.DOXYGEN_COMMENT_STYLE: 105 return "cpp_doxygen_comment"; 106 case CppHighlighter.DOXYGEN_TAG_STYLE: 107 return "cpp_doxygen_tag"; 108 case CppHighlighter.PREPROC_STYLE: 109 return "cpp_preproc"; 110 } 111 112 return null; 113 } 114 115 protected ExplicitStateHighlighter getHighlighter() 116 { 117 return new CppHighlighter(); 118 } 119 } 120