Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 1a4654cdb333ad144ff9f7b2e16de416 > files > 18

cpp2html-1.2-3mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
    "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="cpp2html 1.2
by Lorenzo Bettini, bettini@gnu.org
http://w3.newnet.it/bettini
http://www.gnu.org/software/cpp2html/cpp2html.html">
<title>source file</title>
<link rel="stylesheet" href="mono.css" type="text/css">
</head>
<body>
<pre>
<tt>
<span class="comment">/*
 * Copyright (C) 1999, 2000  Lorenzo Bettini, lorenzo.bettini@penteres.it
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */</span>

<span class="comment">// decorators for html
</span>
<span class="keyword">#ifndef</span> _DECORATOR_H
<span class="keyword">#define</span> _DECORATOR_H

<span class="keyword">#include</span> <span class="string">"textgen.h"</span>
<span class="keyword">#include</span> <span class="string">"tags.h"</span>
<span class="keyword">#include</span> <span class="string">"colors.h"</span>

<span class="keyword">class</span> TagDecorator : <span class="keyword">public</span> TextDecorator {
  <span class="keyword">protected</span> :
    <span class="type">char</span> *tag ;
    <span class="type">char</span> *attr ;
    <span class="type">char</span> *val ;

  <span class="keyword">public</span> :
    TagDecorator( TextGenerator *t, <span class="type">char</span> *ta, <span class="type">char</span> *a = NULL, <span class="type">char</span> *v = NULL )
    : TextDecorator( t ), tag(ta), attr(a), val(v) {}
  
  <span class="keyword">virtual</span> <span class="type">void</span> startDecorate() <span class="keyword">const</span> { startTAG( tag, attr, val ) ; }
  
  <span class="keyword">virtual</span> <span class="type">void</span> endDecorate() <span class="keyword">const</span> { endTAG( tag ) ; }

  <span class="keyword">protected</span> :
    <span class="type">void</span> startTAG( <span class="type">char</span> *tag, <span class="type">char</span> *attr, <span class="type">char</span> *val ) <span class="keyword">const</span> {
      (*sout) &lt;&lt; <span class="string">"&lt;"</span> &lt;&lt; tag ;
      <span class="keyword">if</span> ( attr &amp;&amp; val )
	(*sout) &lt;&lt; <span class="string">" "</span> &lt;&lt; attr &lt;&lt; <span class="string">"="</span> &lt;&lt; val ;
      (*sout) &lt;&lt; <span class="string">"&gt;"</span> ;
    }

    <span class="type">void</span> endTAG( <span class="type">char</span> *tag ) <span class="keyword">const</span> {
      (*sout) &lt;&lt; <span class="string">"&lt;/"</span> &lt;&lt; tag &lt;&lt; <span class="string">"&gt;"</span> ;
    }
} ;

<span class="keyword">class</span> ColorDecorator : <span class="keyword">public</span> TagDecorator {
  <span class="keyword">public</span> :
    ColorDecorator( TextGenerator *t, <span class="type">char</span> *color ) :
      TagDecorator( t, FONT_TAG, COLOR_TAG, color ) {}
} ;

<span class="keyword">class</span> SpanDecorator : <span class="keyword">public</span> TextDecorator {
  <span class="keyword">protected</span> :
    <span class="type">char</span> *span ;

  <span class="keyword">public</span> :
    SpanDecorator( TextGenerator *t, <span class="type">char</span> *ta)
    : TextDecorator( t ), span(ta) {}

  <span class="keyword">virtual</span> <span class="type">void</span> startDecorate() <span class="keyword">const</span> { startTAG( span ) ; }

  <span class="keyword">virtual</span> <span class="type">void</span> endDecorate() <span class="keyword">const</span> { endTAG( ) ; }

  <span class="keyword">protected</span> :
    <span class="type">void</span> startTAG( <span class="type">char</span> *span ) <span class="keyword">const</span> {
      (*sout) &lt;&lt; <span class="string">"&lt;span class=\""</span> &lt;&lt; span &lt;&lt; <span class="string">"\"&gt;"</span> ;
    }

    <span class="type">void</span> endTAG( ) <span class="keyword">const</span> {
      (*sout) &lt;&lt; <span class="string">"&lt;/span&gt;"</span> ;
    }
} ;

<span class="keyword">#endif</span>
</tt>
</pre>
</body>
</html>